Galaxy S7 Edge Güç Menüsüne Reboot Recovery düğmesi nasıl eklenir

adb çekme /system/framework/services.jar



Seçtiğiniz bir klasöre değiştirin.

  1. Şimdi APK Easy Tool'u açın ve ' Üzerinde çalışılacak APK dosyası ”. Galaxy S7'nizden aldığınız çerçeve res.apk'ı seçin. Şimdi Decompile düğmesine tıklayın.



  1. Şimdi derlenmiş .APK dosyasının dizinine gidin ve sağladığım framework-res .zip dosyasındaki dosyaları derlenmiş klasör çerçeve res.apk.
  2. Şimdi bir metin düzenleyici kullanarak, XML kodunu düzenleyebilen, res / values ​​/ arrays.xml dosyasını açabilen Notepad ++ gibi bir şeyi gerçekten öneriyorum.
  3. Şimdi gerçekten teknik olacağımız yer burası. Gösterdiğim tüm satırları eklemelisin cesur aşağıdaki kod parçacıkları.
  4. Bul ve Ekle neyim kalın.

güç
veri modu
uçak
tekrar başlat
karantina
hata raporu
kullanıcılar
yeniden başlatma
Acil modu
alt ekran
Screenrec



  • Şimdi res / values ​​/ strings.xml adresine gidin ve Ekle cesur .

Bağlı cihaz USB aracılığıyla şarj ediliyor…
10,32,768,10,60
Yeniden Başlatma Kurtarma



  • Tamam, framework-res.apk ile işimiz bitti. Artık APK Easy Tool'da yeniden derleyebilirsiniz.
  • Şimdi Services.jar üzerinde çalışacağız, bu nedenle Services.jar dosyasını APK Easy Tool ile derleyeceğiz ve dosyaları yukarıda sağladığım Hizmetler jar .zip dosyasından yeni derlenmiş Services.jar klasörüne kopyalayacağız.
  • Şimdi bir metin düzenleyici kullanarak smali / com / android / server / policy / GlobalActions.smali'yi açın ve tekrar ekleyeceksiniz. kalın # örnek alanındaki satır

.field mEmergencyStringId: I
.field özel mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction;

  • Şimdi bulun ' .method özel createDialog () Lcom / android / server / policy / GlobalActions $ GlobalActionsDialog; '
if-eqz v4,: cond_8 const v4, 0x10809f4: goto_4 const v6, 0x10406e2 move-object / from16 v0, p0 invoke-direct {v5, v0, v4, v6}, Lcom / android / server / policy / GlobalActions $ 20; - > (Lcom / android / server / policy / GlobalActions; II) V move-object / from16 v0, p0 iput-object v5, v0, Lcom / android / server / policy / GlobalActions; -> mRestart: Lcom / android / server / politika / GlobalActions $ SinglePressAction; yeni örnek v4, Lcom / android / sunucu / politika / GlobalActions 47 $; taşıma-nesne / 16'dan v0, p0 iget-nesne v0, v0, Lcom / android / server / policy / GlobalActions; -> mContext: Landroid / content / Context; invoke-virtual {v0}, Landroid / content / Context; -> getResources () Landroid / content / res / Resources; move-result-object v0 const-string v1, 'tw_ic_do_rebootrecovery' const-string v2, 'drawable' const-string v3, 'android' invoke-virtual {v0, v1, v2, v3}, Landroid / content / res / Resources ; -> getIdentifier (Ljava / lang / String; Ljava / lang / String; Ljava / lang / String;) Taşı-sonucu v5 hareket-nesnesi / 16 v0, p0 iget-nesnesi v0, v0, Lcom / android / sunucu / policy / GlobalActions; -> mContext: Landroid / content / Context; invoke-virtual {v0}, Landroid / content / Context; -> getResources () Landroid / content / res / Resources; move-result-object v0 const-string v1, 'tw_ic_do_rebootrecovery' const-string v2, 'string' const-string v3, 'android' invoke-virtual {v0, v1, v2, v3}, Landroid / content / res / Resources ; -> getIdentifier (Ljava / lang / String; Ljava / lang / String; Ljava / lang / String;) Hareket-sonucu v6 hareket-nesnesi / 16 v0'dan, p0 çağırma-doğrudan {v4, v0, v5, v6}, Lcom / android / server / policy / GlobalActions $ 47; -> (Lcom / android / server / policy / GlobalActions; II) V taşıma nesnesi / 16 v0, p0 iput-nesne v4, v0, Lcom / android / sunucu / politika / GlobalActions; -> mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction; invoke-static {}, Lcom / samsung / android / feature / SemCscFeature; -> getInstance () Lcom / samsung / android / feature / SemCscFeature; move-result-object v4 const-string / jumbo v5, 'CscFeature_Common_ConfigBikeMode'
  • Bir sonraki bölüm zor, yapmanız gereken kalın çizgiler ekleyin ve altı çizili olanı değiştirin.
const / 16 v6, 0x80 const / 4 v7, 0x1 nesneyi taşı / 16'dan v0, p0 çağırma-doğrudan {v0, v6, v4, v5, v7}, Lcom / android / server / policy / GlobalActions; -> addDialogItemsIfEnabled (ILcom / android / server / policy / GlobalActions $ Action; Ljava / util / ArrayList; Z) Z new-instance v4, Lcom / android / server / policy / GlobalActions $ BugReportAction; move-object / from16 v0, p0 invoke-direct {v4, v0}, Lcom / android / server / policy / GlobalActions $ BugReportAction; -> (Lcom / android / server / policy / GlobalActions;) V taşıma nesnesi / 16 v0'dan , p0 iget-nesne v5, v0, Lcom / android / server / policy / GlobalActions; -> mItems: Ljava / util / ArrayList; const / 16 v6, 0x100 taşıma nesnesi / 16'dan v0, p iget-nesne v4, v0, Lcom / android / sunucu / politika / GlobalActions; -> mRebootRecovery: Lcom / android / sunucu / politika / GlobalActions $ SinglePressAction; taşıma-nesne / 16'dan v0, p0 iget-nesne v5, v0, Lcom / android / sunucu / politika / GlobalActions; -> mItems: Ljava / util / ArrayList; const / 4 v7, 0x1 taşıma nesnesi / 16'dan v0, p0 doğrudan çağırma {v0, v6, v4, v5, v7}, Lcom / android / server / policy / GlobalActions; -> addDialogItemsIfEnabled (ILcom / android / server / policy / GlobalActions $ Action; Ljava / util / ArrayList; Z) Z const / 16 v6, 0x200 # önce 0x100 const / 4 v7, 0x1 move-object / from16 v0, p0 invoke-direct {v0, v6, v4, v5, v7}, Lcom / android / server / policy / GlobalActions; -> addDialogItemsIfEnabled (ILcom / android / server / policy / GlobalActions $ Action; Ljava / util / ArrayList; Z) Z
  • Şimdi arayın const-string / jumbo v4 , 'Sessiz' ve bu satırları üstüne ekleyin. Kalın yazılmış iki satır eşleşmelidir.
const-string / jumbo v4, 'acil durum modu' invoke-sanal {v4, v11}, Ljava / lang / String; -> equals (Ljava / lang / Object;) Z hareket-sonucu v4 if-eqz v4,: koşul_15 hareket- nesne / from16 v0, p0 iget-nesne v4, v0, Lcom / android / server / policy / GlobalActions; -> mItems: Ljava / util / ArrayList; taşıma-nesne / 16'dan v0, p0 iget-nesne v5, v0, Lcom / android / sunucu / politika / GlobalActions; -> acil durum: Lcom / android / sunucu / politika / GlobalActions $ ToggleAction; invoke-virtual {v4, v5}, Ljava / util / ArrayList; -> add (Ljava / lang / Object;) Z goto / 16: goto_7 : cond_15 const-string / jumbo v4, 'rebootrecovery' invoke-virtual {v4, v11}, Ljava / lang / String; -> equals (Ljava / lang / Object;) Z hareket-sonucu v4 if-eqz v4,: cond_asc1 taşıma-nesne / 16'dan v0, p0 iget-nesne v4, v0, Lcom / android / sunucu / politika / GlobalActions; -> mItems: Ljava / util / ArrayList; taşıma-nesne / 16'dan v0, p0 iget-nesne v5, v0, Lcom / android / sunucu / politika / GlobalActions; -> mRebootRecovery: Lcom / android / sunucu / politika / GlobalActions $ SinglePressAction; invoke-virtual {v4, v5}, Ljava / util / ArrayList; -> add (Ljava / lang / Object;) Z goto / 16: goto_7 : cond_asc1 const-string / jumbo v4, 'sessiz'

Daha sonra, Android 7 services.jar'ın eksik bir bölümünü eklememiz gerekiyor, bu yüzden bu modun çalışması için onu yeniden ekleyeceğiz.
.Method özel addCustomDialogItems (Landroid / graphics / drawable / BitmapDrawable; Ljava / lang / String; Landroid / content / Intent; ILjava / util / ArrayList;) Z

Ve bunu yukarıdaki yöntemi ekleyin:



.method statik sentetik erişim 500 $ (Lcom / android / server / policy / GlobalActions;) Landroid / content / Context; .locals 1 iget-object v0, p0, Lcom / android / server / policy / GlobalActions; -> mContext: Landroid / content / Context; dönüş nesnesi v0 .end yöntemi

İşte bu, şimdi services.jar dosyasını yeniden derleyin ve hem yeniden derlenmiş framework-res.apk hem de services.jar dosyasını telefonunuza geri itebilirsiniz. adb push komutu veya APK Easy Tool 'Telefona Kur' düğmesi ile.

Telefona bastıktan sonra önyükleme döngüsü alırsanız, özel kurtarmaya başlayın ve silin Dalvik + Önbellek.

3 dakika okundu