Wie bekomme ich root auf dem Android Emulator (Android 7.1.1 / Nougat)
Ich freue mich, die Community über einen einfacheren Weg zum Root-Android-Emulator zu informieren (mit einem eigenständigen Android-SDK).
Anforderungen :
Hinweis: SuperSU ist jetzt veraltet, aber diese Methode funktioniert immer noch, um den Emulator zu rooten. Für neuere Root-Methoden werden weitere Updates bereitgestellt.
Anleitung
Installieren Sie die SuperSu.apk
Installieren Sie zuerst die SuperSu-App. Ziehen Sie sie einfach per Drag-and-Drop (wenn Sie die neueste Emulator-Version verwenden oder über adb von der Seite laden adb –e install supersu.apk
).
Nach der Installation wird beim Ausführen ein Bildschirm wie unten gezeigt angezeigt, der angibt, dass keine SU-Binärdatei installiert ist. Dieser Fehler bestätigt nur, dass das Gerät noch nicht gerootet ist.
Machen Sie die Systempartition des Emulators beschreibbar
Wie es nahelegt, müssen wir dem Emulator die Berechtigung zum Schreiben von Systemdateien erteilen.
Geben Sie dazu den folgenden Code ein: emulator.exe –avd {emulator_name} –writable-system
Hinweis: Navigieren Sie zum Tools- Ordner, in dem Android SDK installiert ist, und öffnen Sie dort die Eingabeaufforderung, indem Sie die Umschalttaste drücken und mit der rechten Maustaste klicken.
Pushing su binary im Systemverzeichnis
- Extrahieren Sie die Datei Recovery flashable.zip (die die su-Binärdateien verschiedener Architekturen enthält).
Wichtig! Verwenden Sie nur die su-Binärdatei, die Ihrer avd-Architektur entspricht, z. B. x86, arm usw., und notieren Sie den Pfad, in den Sie diese Binärdateien extrahiert haben.
- Stellen Sie sicher, dass Sie adb als root ausführen und erneut einbinden müssen. Geben Sie einfach diese Codes ein
adb root
adb remount
Jetzt ist es Zeit, die su-Binärdatei zu pushen:
Dies ist der Code, den ich erfolgreich verwendet habe :adb -e push C:\%USERPROFILE%\Desktop\rootemu\x86\su.pie /system/bin/su
(Egal, an welchem Ort ich bin. Jeder Ort ist in Ordnung, solange es keinen Leerraum gibt.)
Wenn dies fehlschlägt, versuchen Sie dies stattdessen in dieses Verzeichnis zu verschieben /system/xbin/su
. Auch für Emulatoren mit Android 5.1 und niedriger verwenden Sie das su
und nichtsu.pie
Ändern Sie die Berechtigungen der su-Binärdatei
- Als nächstes wollen wir ein wenig die Berechtigungen von su binary ändern. Wir müssen dies in Emulator-Gerät durch ADB tun:
adb –e shell
su root
cd /system/bin
chmod 06755 su
Wichtig!! Beachten Sie den binären Pfad su (mein Pfad ist / system / bin)
- Setzen Sie die
install
Direktive auf su binary und setzen Sie adaemon
Geben Sie die Codes ein:
su --install
und zum Einrichten des Daemons:
su --daemon&
Wichtig!! Abstand beachten
SELinux auf Permissive setzen (dh SE Linux ausschalten)
- Schließlich schalten Sie Selinux durch diesen Code aus:
setenforce 0
Das wars so ziemlich!! Öffnen Sie die SuperSU-App. Möglicherweise werden Sie aufgefordert, die Binärdateien zu aktualisieren. Verwenden Sie dazu die normale Methode.
Öffnen Sie alle Apps, für die SU-Berechtigungen erforderlich sind, und prüfen Sie, ob Sie SuperSU-Berechtigungen gewähren möchten.
Bemerkungen
Der größte Teil der Referenzinhalte betraf ältere Android-Versionen und war daher der Grund für verschiedene Befehle und Pfade, die ich geändert habe.
Besondere Anerkennungen;
Ein besonderer Dank geht an Irvin H, dessen Tutorial mich dazu inspiriert hat, diesen Leitfaden zu erstellen, nachdem ich unzählige Male gescheitert bin und auch die Notwendigkeit erkannt habe, dass viele Benutzer auch ihre Emulatoren rooten müssen. Ich hoffe, dass dies auch viel nutzen wird
Irvin H: Rooting des Android-Emulators - auf Android Studio 2.3 ((Android 4.4)
Aktualisieren
Wie von SaAtomic kommentiert,
Dieser Ansatz ist mit Android Studio 3.0.1 weiterhin möglich
Nach dem Upgrade auf die Emulator-Version 27.2.9
und höher wird das Beibehalten des Stamms durch die Snapshot-Funktion jetzt viel einfacher (wenn das Kopieren der system.img-Methode nicht funktioniert):
Im Idealfall wird das virtuelle Gerät eher mit intakter Konfiguration in den Ruhezustand versetzt, sodass alles erhalten bleibt.
Schnappschüsse
Sie können jetzt mehrere AVD-Snapshots für eine bestimmte Gerätekonfiguration speichern und auswählen, welche der gespeicherten Snapshots beim Starten des Emulators geladen werden sollen. Das Starten eines virtuellen Geräts durch Laden eines Snapshots ähnelt dem Aufwecken eines physischen Geräts aus dem Energiesparmodus und dem Starten aus dem ausgeschalteten Zustand.
Dies bedeutet, dass der Emulator nur gestartet werden muss, indem der -writable-system
Parameter zum normalen Emulatorbefehl hinzugefügt wird, um den Emulator -avd [avdname]
zu starten. (Das Ausführen des Emulators nur mit dem Emulator -avd [avdname] startet die gerootete Version / Kopie nicht oder kann zu einem Fehler führen.)
Getestet auf API Level 22