AVD - Android Virtual Device
Reading time: 8 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Vielen Dank an @offsecjay für seine Hilfe bei der Erstellung dieses Inhalts.
Was ist
Android Studio ermöglicht es, virtuelle Maschinen von Android auszuführen, die Sie zum Testen von APKs verwenden können. Um sie zu nutzen, benötigen Sie:
- Die Android SDK-Tools - Hier herunterladen.
- Oder Android Studio (mit Android SDK-Tools) - Hier herunterladen.
In Windows (in meinem Fall) nach der Installation von Android Studio hatte ich die SDK-Tools installiert in: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
In mac können Sie die SDK-Tools herunterladen und sie im PATH haben, indem Sie Folgendes ausführen:
brew tap homebrew/cask
brew install --cask android-sdk
Oder über die Android Studio GUI, wie in https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a angegeben, die sie in ~/Library/Android/sdk/cmdline-tools/latest/bin/
und ~/Library/Android/sdk/platform-tools/
und ~/Library/Android/sdk/emulator/
installieren wird.
Für die Java-Probleme:
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
GUI
Virtuelle Maschine vorbereiten
Wenn Sie Android Studio installiert haben, können Sie einfach die Hauptprojektansicht öffnen und auf: Tools --> AVD Manager.
Klicken Sie dann auf Create Virtual Device
Wählen Sie das Telefon aus, das Sie verwenden möchten und klicken Sie auf Next.
warning
Wenn Sie ein Telefon mit installiertem Play Store benötigen, wählen Sie eines mit dem Play Store-Symbol aus!
In der aktuellen Ansicht können Sie das Android-Image auswählen und herunterladen, das das Telefon ausführen wird:
Wählen Sie es aus, und wenn es nicht heruntergeladen ist, klicken Sie auf das Download-Symbol neben dem Namen (warten Sie jetzt, bis das Image heruntergeladen ist).
Sobald das Image heruntergeladen ist, wählen Sie einfach Next
und Finish
.
Die virtuelle Maschine wird erstellt. Jetzt wird sie jedes Mal vorhanden sein, wenn Sie auf den AVD-Manager zugreifen.
Virtuelle Maschine ausführen
Um sie auszuführen, drücken Sie einfach die Starttaste.
Befehlszeilenwerkzeug
Zunächst müssen Sie entscheiden, welches Telefon Sie verwenden möchten. Um die Liste der möglichen Telefone anzuzeigen, führen Sie aus:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list device
d: 0 or "automotive_1024p_landscape"
Name: Automotive (1024p landscape)
OEM : Google
Tag : android-automotive-playstore
---------
id: 1 or "Galaxy Nexus"
Name: Galaxy Nexus
OEM : Google
---------
id: 2 or "desktop_large"
Name: Large Desktop
OEM : Google
Tag : android-desktop
---------
id: 3 or "desktop_medium"
Name: Medium Desktop
OEM : Google
Tag : android-desktop
---------
id: 4 or "Nexus 10"
Name: Nexus 10
OEM : Google
[...]
Sobald Sie den Namen des Geräts, das Sie verwenden möchten, festgelegt haben, müssen Sie entscheiden, welches Android-Image Sie auf diesem Gerät ausführen möchten.
Sie können alle Optionen mit sdkmanager
auflisten:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
Und lade die eine (oder alle) herunter, die du verwenden möchtest mit:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64"
Sobald Sie das Android-Image heruntergeladen haben, das Sie verwenden möchten, können Sie alle heruntergeladenen Android-Images auflisten mit:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list target
----------
id: 1 or "android-28"
Name: Android API 28
Type: Platform
API level: 28
Revision: 6
----------
id: 2 or "android-29"
Name: Android API 29
Type: Platform
API level: 29
Revision: 4
In diesem Moment haben Sie das Gerät ausgewählt, das Sie verwenden möchten, und das Android-Image heruntergeladen, sodass Sie die virtuelle Maschine mit erstellen können:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat -v create avd -k "system-images;android-28;google_apis;x86_64" -n "AVD9" -d "Nexus 5X"
Im letzten Befehl habe ich eine VM mit dem Namen "AVD9" erstellt, die das Gerät "Nexus 5X" und das Android-Image "system-images;android-28;google_apis;x86_64" verwendet.
Jetzt können Sie die virtuellen Maschinen auflisten, die Sie erstellt haben mit:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\avdmanager.bat list avd
Name: AVD9
Device: Nexus 5X (Google)
Path: C:\Users\cpolo\.android\avd\AVD9.avd
Target: Google APIs (Google Inc.)
Based on: Android API 28 Tag/ABI: google_apis/x86_64
The following Android Virtual Devices could not be loaded:
Name: Pixel_2_API_27
Path: C:\Users\cpolo\.android\avd\Pixel_2_API_27_1.avd
Error: Google pixel_2 no longer exists as a device
Virtuelle Maschine ausführen
Wir haben bereits gesehen, wie Sie die erstellten virtuellen Maschinen auflisten können, aber Sie können sie auch auflisten mit:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27
Sie können einfach jede erstellte virtuelle Maschine ausführen mit:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName"
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9"
Oder indem Sie fortgeschrittenere Optionen verwenden, können Sie eine virtuelle Maschine wie:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
Befehlszeilenoptionen
Es gibt jedoch eine Menge nützlicher Befehlszeilenoptionen, die Sie verwenden können, um eine virtuelle Maschine zu starten. Unten finden Sie einige interessante Optionen, aber Sie können eine vollständige Liste hier finden
Boot
-snapshot name
: VM-Snapshot starten-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Alle aufgezeichneten Snapshots auflisten
Netzwerk
-dns-server 192.0.2.0, 192.0.2.255
: Ermöglicht die Angabe von durch Kommas getrennten DNS-Servern für die VM.-http-proxy 192.168.1.12:8080
: Ermöglicht die Angabe eines HTTP-Proxys (sehr nützlich, um den Verkehr mit Burp zu erfassen)-port 5556
: Setzt die TCP-Portnummer, die für die Konsole und adb verwendet wird.-ports 5556,5559
: Setzt die TCP-Ports, die für die Konsole und adb verwendet werden.-tcpdump /path/dumpfile.cap
: Erfasst den gesamten Verkehr in einer Datei
System
-selinux {disabled|permissive}
: Setzt das Security-Enhanced Linux-Sicherheitsmodul entweder auf deaktiviert oder permissiv auf einem Linux-Betriebssystem.-timezone Europe/Paris
: Setzt die Zeitzone für das virtuelle Gerät-screen {touch(default)|multi-touch|o-touch}
: Setzt den emulierten Touchscreen-Modus.-writable-system
: Verwenden Sie diese Option, um während Ihrer Emulationssitzung ein beschreibbares Systemabbild zu haben. Sie müssen auchadb root; adb remount
ausführen. Dies ist sehr nützlich, um ein neues Zertifikat im System zu installieren.
Rooten eines Play Store-Geräts
Wenn Sie ein Gerät mit Play Store heruntergeladen haben, können Sie nicht direkt Root erhalten, und Sie erhalten diese Fehlermeldung
$ adb root
adbd cannot run as root in production builds
Mit rootAVD und Magisk konnte ich es rooten (siehe zum Beispiel dieses Video oder dieses hier).
Burp-Zertifikat installieren
Überprüfen Sie die folgende Seite, um zu erfahren, wie Sie ein benutzerdefiniertes CA-Zertifikat installieren:
Nette AVD-Optionen
Snapshot erstellen
Sie können die GUI verwenden, um jederzeit einen Snapshot der VM zu erstellen:
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.