Az Újraindítás helyreállítása gomb hozzáadása a Galaxy S7 Edge Power Menu-hez

adb pull /system/framework/services.jar



Váltson át egy kívánt mappára.

  1. Most nyissa meg az APK Easy Tool alkalmazást, és válassza a Kiválaszt lehetőséget a “ APK fájl, amelyen dolgozni lehet ”. Válassza ki a Galaxy S7-ből előhívott framework-res.apk fájlt. Most kattintson a Decompile gombra.



  1. Most menjen be a lefejtett .APK fájl könyvtárába, és illessze be a fájlokat az általam megadott framework-res .zip fájlból a dekompilált mappa a keret-res.apk.
  2. Most egy szövegszerkesztő segítségével nagyon ajánlok valami hasonlót a Notepad ++ programhoz, amely képes szervezni az XML kódot, megnyitni a res / values ​​/ arrays.xml fájlt.
  3. Most itt vagyunk, ahol valóban technikává válunk. Hozzá kell adnia az összes sort, amelyben megjelenítem bátor a következő kódrészletekben.
  4. Keresse meg és hozzá amit én félkövér.

erő
datamode
repülőgép
újrakezd
lezárás
Hibajelentés
felhasználók
újraindítás helyreállítása
szükségállapot
almenü
screenrec



  • Most lépjen a res / values ​​/ strings.xml és a hozzá a bátor .

A csatlakoztatott eszköz töltése USB-n keresztül…
10,32,768,10,60
Indítsa újra a helyreállítást



  • Oké, elkészültünk a framework-res.apk-val. Mostantól újrafordíthatja az APK Easy Tool alkalmazásban.
  • Most a Services.jar-n fogunk dolgozni, ezért fordítsuk le a Services.jar fájlt az APK Easy Tool segítségével, és másoljam a fájlokat a fent megadott Services jar .zip fájlból az újonnan lefejtett Services.jar mappába.
  • Most egy szövegszerkesztő használatával nyissa meg a smali / com / android / server / policy / GlobalActions.smali fájlt, és ismét hozzáadja a félkövér sor a # példány mezőkben

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

  • Most keresse meg a .metode private 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 / policy / GlobalActions $ SinglePressAction; új példány v4, Lcom / android / server / policy / GlobalActions 47 USD; move-object / from16 v0, p0 iget-object 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;) I move-result v5 move-object / from16 v0, p0 iget-object 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, '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;) áthelyezem az eredményt v6 move-object / from16 v0, p0 invoke-direct {v4, v0, v5, v6}, Lcom / android / server / policy / GlobalActions $ 47; -> (Lcom / android / server / policy / GlobalActions; II) V mozgásobjektum / from 16 v0, p0 iput-object v4, v0, Lcom / android / server / policy / 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'
  • A következő rész trükkös, meg kell add hozzá a félkövér vonalakat és módosítsa az aláhúzottakat.
const / 16 v6, 0x80 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 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 move-object / from16 v0 , p0 iget-object v5, v0, Lcom / android / server / policy / GlobalActions; -> mItems: Ljava / util / ArrayList; const / 16 v6, 0x100 move-object / from16 v0, p iget-object v4, v0, Lcom / android / server / policy / GlobalActions; -> mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction; move-object / from16 v0, p0 iget-object v5, v0, Lcom / android / server / policy / GlobalActions; -> mItems: Ljava / util / ArrayList; 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 const / 16 v6, 0x200 #before was 0x100 const / 4 v7, 0x1 move-object / from 16 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
  • Most keressen rá const-string / jumbo v4 , „Csendes”, és adja hozzá ezeket a sorokat felette. A két félkövér sornak egyeznie kell.
const-string / jumbo v4, 'emergencymode' invoke-virtual {v4, v11}, Ljava / lang / String; -> egyenlő (Ljava / lang / Object;) Z move-result v4 if-eqz v4,: cond_15 move- object / from16 v0, p0 iget-object v4, v0, Lcom / android / server / policy / GlobalActions; -> mItems: Ljava / util / ArrayList; move-object / from16 v0, p0 iget-object v5, v0, Lcom / android / server / policy / GlobalActions; -> mEmergency: Lcom / android / server / policy / 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; -> egyenlő (Ljava / lang / Object;) Z move-result v4 if-eqz v4,: cond_asc1 move-object / from16 v0, p0 iget-object v4, v0, Lcom / android / server / policy / GlobalActions; -> mItems: Ljava / util / ArrayList; move-object / from16 v0, p0 iget-object v5, v0, Lcom / android / server / policy / GlobalActions; -> mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction; invoke-virtual {v4, v5}, Ljava / util / ArrayList; -> add (Ljava / lang / Object;) Z goto / 16: goto_7 : cond_asc1 const-string / jumbo v4, 'néma'

Ezután hozzá kell adnunk az Android 7 services.jar hiányzó részét, ezért újra hozzáadjuk, hogy ez a mod működjön.
Keresse meg a .method private addCustomDialogItems sort (Landroid / graphics / drawable / BitmapDrawable; Ljava / lang / String; Landroid / content / Intent; ILjava / util / ArrayList;) Z

És add hozzá ezt a fenti módszert:



.módszeres statikus szintetikus hozzáférés 500 USD (Lcom / android / server / policy / GlobalActions;) Landroid / content / Context; .locals 1 iget-object v0, p0, Lcom / android / server / policy / GlobalActions; -> mContext: Landroid / content / Context; return-object v0 .end metódus

Ez az, most fordítsa újra a services.jar fájlt, és az újrafordított framework-res.apk-ot és a services.jar-t is visszahelyezheti a telefonjára, akár adb nyomás parancs vagy az APK Easy Tool „Telepítés a telefonra” gombbal.

Ha a telefonra való indulás után indítóhurkot kap, indítsa el az egyéni helyreállítást, és törölje Dalvik + gyorsítótár.

3 perc olvasás