Så här lägger du till återställningsåterställningsknappen till Galaxy S7 Edge Power Menu

Många Android-användare önskar att det var ett enklare sätt att starta om i återställningsläget utan att behöva slå av enheten först. Den här guiden till Samsung Galaxy S7 Edge hjälper dig att lägga till en Reboot Recovery-knapp i Power-menyn från inuti Android-systemet.

Vi ska arbeta inom ramarna-res.apk och services.jar-filer i lager ROM, så om du är på en anpassad ROM, är den här guiden inte avsedd för dig. Jag har lämnat länkar för att ladda ner stock framework-res.apk och services.jar-filer nedan.

Krav:

  • APK Easy Tool
  • S7 Edge Framework .zip
  • S7 Edge Services jar .zip
  • ADB - se Så här installerar du ADB på Windows
  1. Så första du behöver göra är att ladda ner och extrahera ovanstående .zip-filer till ditt skrivbord.
  2. Ladda även APK Easy Tool.
  3. Aktivera nu USB-debugging på din Galaxy S7 genom att gå till Inställningar> Om> tryck på "Bygg nummer" 7 gånger tills Developer Mode är aktiverat. Gå nu till Inställningar> Utvecklaralternativ> aktivera USB-felsökning.
  4. Anslut din Galaxy S7 till din dator via USB, och håll Shift + Högerklicka inuti din huvudsakliga ADB-mapp och välj Öppna ett kommandofönster här.
  5. Kontrollera nu att ADB känner igen din enhet genom att skriva " adb-enheter " utan citat. Om det är framgångsrikt bör kommandoterminalen visa enhetens serienummer.
  6. Skriv nu följande kommandon i ADB-fönstret:

adb dra / system/framework/framework-res.apk
adb dra / system/framework/services.jar

Ändra till en mapp efter eget val.

  1. Öppna nu APK Easy Tool, och välj Välj bredvid APK-filen för att fungera . Välj ram-res.apk du drog från din Galaxy S7. Klicka nu på knappen Dekompilera.

  1. Gå nu i katalogen av den dekompilerade .APK-filen och klistra in filerna från den ram-res.zip-fil som jag tillhandahöll i den dekompilerade mappen i din ram-res.apk.
  2. Nu använder jag en textredigerare, jag rekommenderar verkligen något liknande Notepad ++ som kan organisera XML-kod, öppna res / värden / arrays.xml
  3. Nu är här vi ska bli riktigt tekniska. Du måste lägga till alla rader som jag visar med fetstil i följande kodskärningar.
  4. Hitta och lägg till vad jag har fetstil.

kraft
datamode
flygplan
omstart
lockdown
buggrapport
användare
rebootrecovery
nödläge
delskärm
screenrec

  • Gå nu till res / values ​​/ strings.xml och lägg till fetstil .

Laddning ansluten enhet via USB
10, 32, 768, 10, 60
Reboot Recovery

  • Okej, vi är färdiga med framework-res.apk. Du kan nu kompilera det i APK Easy Tool.
  • Nu ska vi jobba på Services.jar, så dekompilera Services.jar med APK Easy Tool och kopiera filerna från Services jar.zip-filen som jag angav ovan i den nyligen dekompilerade Services.jar-mappen.
  • Nu använder du en textredigerare, öppna smali / com / android / server / policy / GlobalActions.smali, och igen kommer du att lägga till den djärva raden i # -fälten

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

PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här
  • Hitta nu .metod 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/policy/GlobalActions$SinglePressAction; new-instance 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; 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;)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/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" 
  • Nästa del är knepig, du måste lägga till de djärva linjerna och ändra de understrukna.
 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/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ök nu efter const-string / jumbo v4, tyst och lägg till dessa rader ovanför den. De två fetstilade linjerna måste matcha.
 const-string/jumbo v4, "emergencymode" invoke-virtual {v4, v11}, Ljava/lang/String;->equals(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;->equals(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, "silent" 

Nästa behöver vi lägga till en saknad del av Android 7 services.jar, så vi ska lägga till det för den här moden till jobbet.
Sök linjen för .metod privat addCustomDialogItems (Landroid / Graphic / Drawable / BitmapDrawable; Ljava / lang / String; Landroid / Content / Intent; ILjava / util / ArrayList;) Z

Och lägg till den här metoden ovan:

 .method static synthetic access$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 method 

Det är det, nu kompilera services.jar, och du kan trycka både den återkompilerade ram-res.apk och services.jar tillbaka till din telefon, antingen med adb push- kommandot eller med APK Easy Tool Install to Phone-knappen.

Om du får startslinga när du trycker på telefonen startar du in i anpassad återställning och torkar Dalvik + Cache.

PRO TIPS: Om problemet är med din dator eller en bärbar dator, bör du försöka använda Reimage Plus-programvaran som kan skanna förvaret och ersätta korrupta och saknade filer. Detta fungerar i de flesta fall där problemet uppstått på grund av systemkorruption. Du kan ladda ner Reimage Plus genom att klicka här

Facebook Twitter Google Plus Pinterest