Android_Emuroot ist ein Python-Skript, mit dem die auf Android Virtual-Maschinen ausgeführten Shells, die Google-bereitgestellte Emulatorbilder namens Google API PlayStore verwenden, um die Ingenieure umzukehren, um sich tiefer in ihre Ermittlungen einzulassen, die Stammberechtigungen zu gewähren .
Android_Emuroot erfordert, dass der Google API -Playstore -Emulator mit der Option QEMU GDB -Stub aktiviert wird, und verändert ihn, um die im Speicher gespeicherten Prozessmetadaten in Kernel -Taskstrukturen zu ändern. Die Hauptidee besteht darin, mit den niedrigsten Privilegien von einer Schale aus zu beginnen und dann die zugehörige Anmeldeinformationsstruktur im Kernel -Speicher zu finden, um sie durch eine andere Struktur mit den höchsten Privilegien zu ersetzen.
Das Implementieren dieser Speicheränderung in einem Google API -Playstore -Emulator zeigt die folgenden zwei Vorteile:
Android_Emuroot benötigt bereits einen funktionierenden Android -SDK. Die Installation der Befehlszeilen-Tools wird empfohlen (über die Android Studio-GUI herunterladen: Tools> Android> SDK-Manager> SDK-Tools).
Android_emuroot ist ein Python -Skript, das die ADB -Einrichtungen sowie die GDB -Einrichtungen der beiden folgenden Python -Module verwendet:
Stellen Sie sicher, dass Sie diese Module haben oder über PIP: pip3 install -r requirements.txt .
NB: Android_emuroot unterstützt Python 2 und Python 3.
Abhängig von der Hardware -Architektur und der Kernelversion des Emulators variiert das Speicherlayout des zugehörigen QEMU -Bildes. Dadurch variiert auch der Speicherort der von Android_emuroot implementierten Speicherpatches.
Im Moment unterstützt Android_emuroot die folgenden Versionen von Emulatoren:
| Android -Version | API | Architektur | Kernel | Bauen |
|---|---|---|---|---|
| Android 7.0 | 24 | x86 | 3.10 | Google-api-PlayStore |
| Android 7.1.1 | 25 | x86 | 3.10 | Google-api-PlayStore |
| Android 8.0 | 26 | x86 | 3.18 | Google-api-PlayStore |
| Android 8.1 | 27 | x86 | 3.18 | Google-api-PlayStore |
Stellen Sie sicher, dass der AVD, den Sie root haben möchten, auf einem Emulator dieser Liste basiert.
NB: Die Emulatoren können über SDKManager, ein Tool aus der Android Studio Toolchain, mit der GUI oder in der Befehlszeile heruntergeladen werden, beispielsweise wie folgt: sdkmanager --install "system-images;android-27;google_apis_playstore;x86" . Erstellen Sie dann ein Android Virtual Device (AVD) entsprechend über die AVD -Manager -GUI oder mit AVDManager wie folgt: avdmanager create avd -n my_avd_name -k "system-images;android-27;google_apis_playstore;x86" .
Android_emuroot muss mit beiden interagieren:
Das folgende Schema zeigt die Wechselwirkungen zwischen allen Elementen:

Die Android Debug Bridge (ADB) ist ein Befehlszeilen -Tool des Android Studio Toolchain, mit dem mit einem Android -Gerät kommuniziert werden kann. Der ADB -Server ist die Komponente, die die Kommunikation zwischen Android_emuroot und dem auf dem Gerät gestarteten ADB -Daemon verwaltet. Standardmäßig hören ADB -Server auf 127.0.0.1 Port 5037 an. adb start-server können Sie sicherstellen, dass ein Server ausgeführt wird.
Stellen Sie sicher, dass Ihr ADB -Server ausgeführt wird.
Die andere Anforderung zur Verwendung von Android_emuroot ist, einen GDB -Server beim Starten an Ihrem AVD anzuhängen. Emulator, ein weiteres Befehlszeilen -Tool des Android Studio Toolchain, ermöglicht AVDs mit vielen Optionen. Unter ihnen: -qemu -s (Shorthang für -qemu -gdb tcp::1234 ), das einen GDB -Server auf TCP -Port 1234 öffnet.
Verwenden Sie diese Option, um einen GDB -Server zur Verfügung zu stellen.
Hier ist ein einfaches Beispiel für den Gebrauch des Emulators:
emulator -avd my_avd_name [options] -qemu -s
Auf diese Weise wird ein GDB -Server an den AVD my_avd_name angehängt, und Android_Emuroot kann seinen GDB -Client hervorbringen und die Speicherpatches ausführen.
Sobald sowohl ADB Server als auch GDB Server in Betrieb sind, können Sie Android_emuroot verwenden.
Android_emuroot hat 3 Modi:
single --magic-name NAME : Geben Sie nur 1 Shell in Parameter Stammrechten anadbd [--stealth] : dem gesamten adbd Server Root-Berechtigungen geben; Jede neue Hülle wird als Wurzel hervorgebrachtsetuid --path NAME : So installierenWeitere Details zur Nutzung und zum Tool -Interna: Detaillierte Verwendung
Android_emuroot wurde von Mouad Abouhali und Anaïs Gantet von Airbus-Seklab geschrieben.
Android_emuroot wird unter GPLV2 veröffentlicht.