AVD - Android Virtual Device
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)
Lernen & ĂŒben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
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, Android-VMs auszufĂŒhren, die du zum Testen von APKs verwenden kannst. Um sie zu nutzen benötigst du:
- Die Android SDK tools - Download here.
- Oder Android Studio (mit Android SDK tools) - Download here.
Unter Windows (in meinem Fall) hatte ich nach der Installation von Android Studio die SDK Tools installiert in: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
Auf macOS kannst du die SDK tools herunterladen und sie mit folgendem Befehl in den PATH aufnehmen:
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 diese in ~/Library/Android/sdk/cmdline-tools/latest/bin/ und ~/Library/Android/sdk/platform-tools/ und ~/Library/Android/sdk/emulator/ installiert
FĂŒr die Java-Probleme:
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
GUI
Virtuelle Maschine vorbereiten
If you installed Android Studio, you can just open the main project view and access: Tools â> AVD Manager.
.png)
Then, click on Create Virtual Device
.png)
WÀhlen Sie das Telefon, 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 darauf!
![]()
In der aktuellen Ansicht können Sie das Android-Image auswĂ€hlen und herunterladen, das das Telefon ausfĂŒhren wird:
.png)
WĂ€hlen Sie es also aus und falls es nicht heruntergeladen ist, klicken Sie auf das Download-Symbol neben dem Namen (warten Sie nun, 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 angezeigt, wenn Sie den AVD Manager aufrufen.
Virtuelle Maschine starten
Um sie zu starten, drĂŒcken Sie einfach den Start button.
.png)
Kommandozeilen-Tool
Warning
FĂŒr macOS finden Sie das
avdmanager-Tool in/Users/<username>/Library/Android/sdk/tools/bin/avdmanagerund denemulatorin/Users/<username>/Library/Android/sdk/emulator/emulator, wenn Sie sie installiert haben.
Zuerst mĂŒssen Sie entscheiden, welches Telefon Sie verwenden möchten; um die Liste der möglichen Telefone zu sehen, 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 du den Namen des GerĂ€ts, das du verwenden möchtest, festgelegt hast, musst du entscheiden, welches Android-Image du auf diesem GerĂ€t ausfĂŒhren möchtest.
Du kannst alle Optionen mit sdkmanager auflisten:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
Und lade denjenigen (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, das Sie verwenden möchten, heruntergeladen haben, können Sie mit folgendem Befehl alle heruntergeladenen Android images auflisten:
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, daher können Sie die virtuelle Maschine mit:
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, mit dem device âNexus 5Xâ und dem Android image âsystem-images;android-28;google_apis;x86_64â.
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 starten
Warning
FĂŒr macOS findest du das
avdmanagertool in/Users/<username>/Library/Android/sdk/tools/bin/avdmanagerund denemulatorin/Users/<username>/Library/Android/sdk/emulator/emulator, falls du sie installiert hast.
Wir haben bereits gesehen, wie du die erstellten virtuellen Maschinen auflisten kannst, aber du kannst sie auch 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 starten 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 mit fortgeschritteneren Optionen können Sie eine virtuelle Maschine wie folgt ausfĂŒhren:
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 viele nĂŒtzliche Befehlszeilenoptionen, die du verwenden kannst, um eine virtuelle Maschine zu starten. Unten findest du einige interessante Optionen, du kannst aber find a complete list here
Boot
-snapshot name: Start VM snapshot-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img: List all the snapshots recorded
Netzwerk
-dns-server 192.0.2.0, 192.0.2.255: Ermöglicht es, die DNS-Server kommasepariert an die VM anzugeben.-http-proxy 192.168.1.12:8080: Ermöglicht es, einen HTTP-Proxy anzugeben (sehr nĂŒtzlich, um den Traffic mit Burp zu erfassen)- Wenn die Proxy-Einstellungen aus irgendeinem Grund nicht funktionieren, versuche, sie intern zu konfigurieren oder eine Anwendung wie âSuper Proxyâ oder âProxyDroidâ zu verwenden.
-netdelay 200: Setzt die Netzwerklatenz-Emulation in Millisekunden.-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 sĂ€mtlichen Traffic in einer Datei
System
-selinux {disabled|permissive}: Setzt das Security-Enhanced Linux Security-Modul auf disabled oder permissive Mode unter Linux.-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: Verwende diese Option, um ein beschreibbares System-Image wĂ€hrend der Emulation zu haben. Du musst auĂerdemadb root; adb remountausfĂŒhren. Das ist sehr nĂŒtzlich, um ein neues Zertifikat im System zu installieren.
Linux CLI setup (SDK/AVD quickstart)
Die offiziellen CLI-Tools machen es einfach, schnelle, debugbare Emulatoren ohne Android Studio zu erstellen.
# Directory layout
mkdir -p ~/Android/cmdline-tools/latest
# Download commandline tools (Linux)
wget https://dl.google.com/android/repository/commandlinetools-linux-13114758_latest.zip -O /tmp/cmdline-tools.zip
unzip /tmp/cmdline-tools.zip -d ~/Android/cmdline-tools/latest
rm /tmp/cmdline-tools.zip
# Env vars (add to ~/.bashrc or ~/.zshrc)
export ANDROID_HOME=$HOME/Android
export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH
# Install core SDK components
sdkmanager --install "platform-tools" "emulator"
# Install a debuggable x86_64 system image (Android 11 / API 30)
sdkmanager --install "system-images;android-30;google_apis;x86_64"
# Create an AVD and run it with a writable /system & snapshot name
avdmanager create avd -n PixelRootX86 -k "system-images;android-30;google_apis;x86_64" -d "pixel"
emulator -avd PixelRootX86 -writable-system -snapshot PixelRootX86_snap
# Verify root (debuggable images allow `adb root`)
adb root
adb shell whoami # expect: root
Hinweise
- System-Image-Varianten: google_apis (debuggable, erlaubt
adb root), google_apis_playstore (nicht rootbar), aosp/default (leichtgewichtig). - Build-Typen: userdebug erlaubt oft
adb rootauf debug-fĂ€higen Images. Play Store-Images sind Produktions-Builds und blockieren Root-Zugriff. - Auf x86_64-Hosts wird die Full-System-ARM64-Emulation ab API 28+ nicht unterstĂŒtzt. FĂŒr Android 11+ verwende Google APIs/Play-Images, die eine per-App ARM-zu-x86-Ăbersetzung bieten, um viele ARM-only Apps schnell auszufĂŒhren.
Snapshots von der CLI
# Save a clean snapshot from the running emulator
adb -s emulator-5554 emu avd snapshot save my_clean_setup
# Boot from a named snapshot (if it exists)
emulator -avd PixelRootX86 -writable-system -snapshot my_clean_setup
ARMâx86 BinĂ€rĂŒbersetzung (Android 11+)
Google APIs und Play Store images auf Android 11+ können ARM-App-Binaries pro Prozess ĂŒbersetzen, wĂ€hrend der Rest des Systems nativ x86/x86_64 bleibt. Das ist oft schnell genug, um viele ARM-only Apps auf dem Desktop zu testen.
Tipp: Bevorzuge Google APIs x86/x86_64 images wÀhrend pentests. Play images sind praktisch, blockieren aber
adb root; verwende sie nur, wenn du speziell Play services benötigst und das Fehlen von root akzeptierst.
Rooting eines Play Store-GerÀts
Wenn du ein GerÀt mit Play Store heruntergeladen hast, kannst du nicht direkt root erhalten und bekommst diese Fehlermeldung
$ adb root
adbd cannot run as root in production builds
Using rootAVD with Magisk I was able to root it (follow for example this video or this one).
Burp-Zertifikat installieren
Siehe die folgende Seite, um zu lernen, wie man ein benutzerdefiniertes CA-Zertifikat installiert:
NĂŒtzliche AVD-Optionen
Snapshot erstellen
Du kannst die GUI verwenden, um jederzeit einen Snapshot der VM zu erstellen:
.png)
Referenzen
- Ein reproduzierbares Android Bug Bounty Lab aufbauen: Emulator vs Magisk, Burp, Frida und Medusa
- Android Emulator Befehlszeile
- ARM-Apps auf dem Android Emulator ausfĂŒhren (x86 translation)
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)
Lernen & ĂŒben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
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.


