So fügen Sie dem Galaxy S7 Edge Power-Menü die Schaltfläche "Neustart-Wiederherstellung" hinzu
Viele Android-Nutzer wünschen sich einen einfacheren Neustart im Wiederherstellungsmodus, ohne dass das Gerät zuvor ausgeschaltet werden muss. Dieses Handbuch für das Samsung Galaxy S7 Edge hilft Ihnen, dem Power-Menü im Android-System eine Schaltfläche zur Wiederherstellung des Neustarts hinzuzufügen.
Wir werden innerhalb der framework-res.apk- und services.jar-Dateien des Lager-ROMs arbeiten. Wenn Sie also ein benutzerdefiniertes ROM verwenden, ist dieses Handbuch nicht für Sie gedacht. Ich habe Links zur Verfügung gestellt, um die Dateien stock framework-res.apk und services.jar unten herunterzuladen.
Bedarf:
- APK einfaches Werkzeug
- S7-Edge-Framework .zip
- S7-Edge-Services jar. Zip
- ADB - siehe Installieren von ADB unter Windows
- Als erstes müssen Sie die obigen ZIP-Dateien herunterladen und auf Ihren Desktop extrahieren.
- Laden Sie auch das APK Easy Tool herunter.
- Aktivieren Sie jetzt USB-Debugging auf Ihrem Galaxy S7, indem Sie unter Einstellungen> Info> 7 Mal auf "Build-Nummer" tippen, bis der Entwicklermodus aktiviert ist. Gehen Sie nun zu Einstellungen> Entwickleroptionen> USB-Debugging aktivieren.
- Verbinden Sie Ihr Galaxy S7 über USB mit Ihrem PC und halten Sie die Umschalttaste gedrückt. Klicken Sie mit der rechten Maustaste in Ihren ADB-Hauptordner und wählen Sie hier ein Befehlsfenster öffnen.
- Stellen Sie jetzt sicher, dass ADB Ihr Gerät erkennt, indem Sie " adb devices " ohne Anführungszeichen eingeben. Bei Erfolg sollte das Befehlsendgerät die Seriennummer Ihres Geräts anzeigen.
- Geben Sie nun die folgenden Befehle in das ADB-Fenster ein:
adb pull /system/framework/framework-res.apk
adb pull /system/framework/services.jar
Ändern Sie den Ordner in einen Ordner Ihrer Wahl.
- Öffnen Sie nun APK Easy Tool, und wählen Sie Auswählen neben APK-Datei, um zu arbeiten . Wählen Sie die Framework-Res.apk, die Sie aus Ihrem Galaxy S7 gezogen haben. Klicken Sie nun auf die Schaltfläche Dekompilieren.
- Wechseln Sie nun in das Verzeichnis der dekompilierten .APK-Datei und fügen Sie die Dateien aus der mitgelieferten Framework-Res .zip-Datei in den dekompilierten Ordner Ihrer Framework-res.apk ein.
- Jetzt mit einem Texteditor, ich empfehle wirklich etwas wie Notepad ++, die XML-Code organisieren können, öffnen Sie die res / values / arrays.xml
- Jetzt werden wir hier wirklich technisch werden. Sie müssen alle Zeilen hinzufügen, die in den folgenden Code-Schnitten fett dargestellt werden.
- Finde und füge hinzu, was ich geschrieben habe .
Leistung
Datamode
Flugzeug
Neustart
Sperrung
Fehlerbericht
Benutzer
Neustart Erholung
Notfallmodus
Subscreen
Bildschirmrec
- Gehe nun zu res / values / strings.xml und füge das fett hinzu .
Laden Sie das angeschlossene Gerät über USB auf
10, 32, 768, 10, 60
Neustart Erholung
- Okay, wir sind mit framework-res.apk fertig. Sie können es jetzt in APK Easy Tool neu kompilieren.
- Jetzt arbeiten wir an Services.jar, also dekompilieren Sie services.jar mit APK Easy Tool und kopieren Sie die Dateien aus der Jaz-Datei von Services jar, die ich oben zur Verfügung gestellt habe, in den neu dekompilierten Ordner Services.jar.
- Öffnen Sie jetzt mit einem Texteditor smali / com / android / server / policy / GlobalActions.smali, und fügen Sie erneut die fettgedruckte Zeile in die # Instanzfelder ein
.field mEmergencyStringId: I
.field privat mRebootRecovery: Lcom / android / server / policy / GlobalActions $ SinglePressAction;
- Jetzt finden Sie .method private createDialog () Lcom / Android / Server / Politik / 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"
- Der nächste Teil ist knifflig, Sie müssen die fett gedruckten Zeilen hinzufügen und die unterstrichenen ändern.
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
- Suchen Sie nun nach const-string / jumbo v4, silent und fügen Sie diese Zeilen darüber hinzu. Die zwei fett gedruckten Zeilen müssen übereinstimmen.
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"
Als nächstes müssen wir einen fehlenden Teil von Android 7 services.jar hinzufügen, also werden wir ihn erneut hinzufügen, damit dieser Mod funktioniert.
Suchen Sie die Zeile für .method private addCustomDialogItems (Landroid / Grafik / Zeichen / BitmapDrawable; Ljava / lang / String; Landroid / Inhalt / Intent; ILjava / util / ArrayList;) Z
Und füge diese obige Methode hinzu:
.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
Das ist es, jetzt kompilieren Sie die services.jar, und Sie können sowohl die neu kompilierten Framework-res.apk und services.jar zurück auf Ihr Telefon, entweder mit adb Push- Befehl oder mit APK Easy Tool Install to Phone-Taste.
Wenn Sie nach dem Drücken zum Telefon eine Boot-Schleife erhalten, starten Sie die benutzerdefinierte Wiederherstellung und löschen Sie Dalvik + Cache.
PRO TIPP: Wenn das Problem bei Ihrem Computer oder Laptop / Notebook auftritt, sollten Sie versuchen, die Reimage Plus Software zu verwenden, die die Repositories durchsuchen und beschädigte und fehlende Dateien ersetzen kann. Dies funktioniert in den meisten Fällen, in denen das Problem aufgrund einer Systembeschädigung auftritt. Sie können Reimage Plus herunterladen, indem Sie hier klicken