Sådan tilføjes genstartgenoprettelsesknap til Galaxy S7 Edge Power Menu

adb pull /system/framework/services.jar



Skift til en mappe efter eget valg.

  1. Åbn nu APK Easy Tool, og vælg Vælg ud for “ APK-fil at arbejde på ”. Vælg framework-res.apk, du trak fra din Galaxy S7. Klik nu på dekompileringsknappen.



  1. Gå nu ind i biblioteket med den dekompilerede .APK-fil, og indsæt filerne fra den framework-res .zip-fil, jeg leverede i dekompileret mappe af din framework-res.apk.
  2. Nu ved hjælp af en teksteditor anbefaler jeg virkelig noget som Notepad ++, der kan organisere XML-kode, åbne res / værdier / arrays.xml
  3. Her er her, hvor vi bliver rigtig tekniske. Du skal tilføje alle de linjer, jeg viser i fremhævet i de følgende kodestykker.
  4. Find og tilføje hvad jeg har fed.

strøm
datamode
fly
genstart
nedlukning
fejlrapport
brugere
Genstart genopretning
nødtilstand
underskærm
screenrec



  • Gå nu til res / values ​​/ strings.xml og tilføje det fremhævet .

Oplader tilsluttet enhed via USB ...
10,32,768,10,60
Genstart genopretning



  • Okay, vi er færdige med framework-res.apk. Du kan nu kompilere det igen i APK Easy Tool.
  • Nu skal vi arbejde på Services.jar, så dekompilér Services.jar med APK Easy Tool, og kopier filerne fra Services jar .zip-filen, jeg leverede ovenfor, til den nyligt dekompilerede Services.jar-mappe.
  • Brug nu en teksteditor til at åbne smali / com / android / server / policy / GlobalActions.smali, og igen skal du tilføje fed linje i felterne # instans

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

  • Find nu “ .metode privat 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 / politik / GlobalAktioner $ SinglePressAction; ny instans v4, Lcom / android / server / policy / GlobalActions $ 47; move-object / from16 v0, p0 iget-object v0, v0, Lcom / android / server / policy / GlobalActions; -> mContext: Landroid / content / Context; påkalde-virtuel {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; påkalde-virtuel {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;) I move-result 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 move-object / from16 v0, p0 iput-object v4, v0, Lcom / android / server / policy / GlobalAction; -> mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction; påkalde-statisk {}, Lcom / samsung / android / feature / SemCscFeature; -> getInstance () Lcom / samsung / android / feature / SemCscFeature; move-result-object v4 const-string / jumbo v5, 'CscFeature_Common_ConfigBikeMode'
  • Den næste del er vanskelig, du skal tilføj de fedeste linjer og rediger det understregede.
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 ny instans 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 / GlobalAktioner $ Handling; Ljava / util / ArrayList; Z) Z const / 16 v6, 0x200 # før var 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
  • Søg nu efter const-string / jumbo v4 , 'Lydløs' og tilføj disse linjer over det. De to fed linier skal matche.
const-string / jumbo v4, 'emergencymode' påkalde-virtual {v4, v11}, Ljava / lang / String; -> er lig med (Ljava / lang / Object;) Z move-result v4 if-eqz v4,: cond_15 move- objekt / from16 v0, p0 iget-objekt 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; påkald-virtuel {v4, v5}, Ljava / util / ArrayList; -> tilføj (Ljava / lang / Object;) Z goto / 16: goto_7 : cond_15 const-string / jumbo v4, 'rebootrecovery' påkald-virtuel {v4, v11}, Ljava / lang / String; -> er lig med (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; påkald-virtuel {v4, v5}, Ljava / util / ArrayList; -> tilføj (Ljava / lang / Object;) Z goto / 16: goto_7 : cond_asc1 const-string / jumbo v4, 'lydløs'

Dernæst skal vi tilføje en manglende del af Android 7 services.jar, så vi vil tilføje den igen, så denne mod fungerer.
Find linjen til .method privat addCustomDialogItems (Landroid / grafik / tegneserie / BitmapDrawable; Ljava / lang / String; Landroid / indhold / Intent; ILjava / util / ArrayList;) Z

Og tilføj denne ovenstående metode:



.metode statisk syntetisk adgang $ 500 (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-metode

Det er det, kompilér nu services.jar igen, og du kan skubbe både den rekompilerede framework-res.apk og services.jar tilbage på din telefon, enten med ADB skub kommando eller med APK Easy Tool 'Installer til telefon' -knappen.

Hvis du får opstartsløkke efter at have skubbet til telefonen, skal du starte i brugerdefineret gendannelse og tørre Dalvik + Cache.

3 minutter læst