Hoe voeg ik Herstel Herstel knop toe aan Galaxy S7 Edge Power Menu
Veel Android-gebruikers willen dat er een eenvoudiger manier was om opnieuw op te starten in de herstelmodus, zonder eerst hun apparaat uit te hoeven schakelen. Deze gids voor de Samsung Galaxy S7 Edge helpt je een herstartknop aan het Power-menu toe te voegen vanuit het Android-systeem.
We gaan werken binnen de framework-res.apk en services.jar-bestanden van het voorraad-ROM, dus als je een aangepast ROM gebruikt, is deze gids niet voor jou bedoeld. Ik heb links gegeven om de onderstaande bestanden framework-res.apk en services.jar te downloaden.
Vereisten:
- APK Easy Tool
- S7 Edge Framework .zip
- S7 Edge Services jar .zip
- ADB - zie ADB op Windows installeren
- Dus het eerste wat je hoeft te doen is de bovenstaande .zip-bestanden downloaden en extraheren naar je bureaublad.
- Download ook de APK Easy Tool.
- Schakel nu USB Debugging op je Galaxy S7 in via Instellingen> Info> tik 7 keer op 'Build Number', totdat de ontwikkelaarsmodus is geactiveerd. Ga nu naar Instellingen> Opties voor ontwikkelaars> USB-foutopsporing inschakelen.
- Verbind je Galaxy S7 via USB met je pc en houd Shift + Right klik in je ADB-map ingedrukt, en kies hier voor een commandovenster.
- Zorg er nu voor dat ADB uw apparaat herkent door ' adb-apparaten ' zonder de aanhalingstekens te typen. Als dit lukt, moet de opdrachtterminal het serienummer van uw apparaat weergeven.
- Typ nu de volgende opdrachten in het ADB-venster:
adb pull /system/framework/framework-res.apk
adb pull /system/framework/services.jar
Verander de naar een map van uw keuze.
- Open nu APK Easy Tool en kies Selecteren naast APK-bestand om aan te werken . Kies de framework-res.apk die u uit uw Galaxy S7 hebt getrokken. Klik nu op de knop Decompileren.
- Ga nu naar de map van het gedecapileerde .APK-bestand en plak de bestanden uit het framework-res.zip-bestand dat ik heb geleverd in de gedecompileerde map van uw framework-res.apk.
- Nu gebruik ik een teksteditor, ik raad echt iets aan als Notepad ++ dat XML-code kan organiseren, open de res / values / arrays.xml
- Nu gaan we hier echt technisch worden. U moet alle regels die ik vetgedrukt heb toevoegen in de volgende stukjes code.
- Zoek en voeg toe wat ik vetgedrukt heb .
macht
datamode
vliegtuig
herstarten
lockdown
bug report
gebruikers
rebootrecovery
noodmodus
subscherm
screenrec
- Ga nu naar res / values / strings.xml en voeg de vetgedrukte toe .
Opladen aangesloten apparaat via USB
10, 32, 768, 10, 60
Herstart herstel
- Oké, we zijn klaar met framework-res.apk. U kunt het nu opnieuw compileren in APK Easy Tool.
- Nu gaan we werken aan Services.jar, dus decompileer Services.jar met APK Easy Tool en kopieer de bestanden uit het Services jar.zip-bestand dat ik hierboven heb verstrekt naar de nieuw gedecompileerde map Services.jar.
- Gebruik nu een teksteditor, open smali / com / android / server / policy / GlobalActions.smali, en opnieuw ga je de vetgedrukte regel toevoegen in de # exemplaar velden
.field mEmergencyStringIdId: I
.field private mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction;
- Ga nu naar .method 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; 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"
- Het volgende deel is lastig, je moet de vetgedrukte lijnen toevoegen en de onderstreepte tekst wijzigen.
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
- Zoek nu naar const-string / jumbo v4, silent en voeg deze regels erboven toe. De twee vetgedrukte regels moeten overeenkomen.
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"
Vervolgens moeten we een ontbrekend deel van Android 7 services.jar toevoegen, dus we gaan het opnieuw toevoegen voor deze mod om te werken.
Zoek de regel voor .method private addCustomDialogItems (Landroid / graphics / drawable / BitmapDrawable; Ljava / lang / String; Landroid / content / Intent; ILjava / util / ArrayList;) Z
En voeg deze bovenstaande methode toe:
.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
Dat is het, compileer nu de services.jar opnieuw en u kunt zowel de opnieuw gecompileerde framework-res.apk en services.jar terug duwen naar uw telefoon, met adb -pushopdracht of met de APK Easy Tool Install to Phone-knop.
Als je een opstart-loop krijgt na pushen om te telefoneren, start je op naar aangepast herstel en veeg je Dalvik + Cache af.
PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken