AVD - Android Virtual Device
Reading time: 11 minutes
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Baie dankie aan @offsecjay vir sy hulp tydens die skep van hierdie inhoud.
Wat is
Android Studio laat jou toe om Android virtuele masjiene te draai wat jy kan gebruik om APKs te toets. Om dit te gebruik sal jy benodig:
- Die Android SDK tools - Download here.
- Of Android Studio (with Android SDK tools) - Download here.
In Windows (in my geval) na die installering van Android Studio het ek die SDK Tools geïnstalleer in: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
Op mac kan jy die SDK tools aflaai en dit in die PATH plaas deur die volgende te hardloop:
brew tap homebrew/cask
brew install --cask android-sdk
Of vanaf Android Studio GUI soos aangedui in https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a wat hulle sal installeer in ~/Library/Android/sdk/cmdline-tools/latest/bin/
en ~/Library/Android/sdk/platform-tools/
en ~/Library/Android/sdk/emulator/
Vir die Java-probleme:
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
GUI
Berei Virtuele Masjien voor
As jy Android Studio geïnstalleer het, kan jy net die hoofprojek-oorsig oopmaak en toegang kry: Tools --> AVD Manager.
.png)
Klik dan op Create Virtual Device
.png)
Kies die foon wat jy wil gebruik en klik op Next.
warning
If you need a phone with Play Store installed select one with the Play Store icon on it!
.png)
In die huidige aansig kan jy die Android image kies en aflaai wat diefoon gaan gebruik:
.png)
Kies dit, en as dit nie afgelaai is nie klik op die Download simbool langs die naam (wag nou totdat die image afgelaai is).
Sodra die image afgelaai is, kies net Next
en Finish
.
Die virtuele masjien sal geskep word. Nou, elke keer as jy toegang kry tot AVD manager, sal dit daar wees.
Begin Virtuele Masjien
Om dit te begin druk net die Start button.
Opdraglyn-gereedskap
warning
For macOS you can find the avdmanager
tool in /Users/<username>/Library/Android/sdk/tools/bin/avdmanager
and the emulator
in /Users/<username>/Library/Android/sdk/emulator/emulator
if you have them installed.
Eerstens moet jy bepaal watter foon jy wil gebruik, om die lys van moontlike fone te sien voer uit:
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
[...]
Sodra jy die naam van die toestel wat jy wil gebruik besluit het, moet jy bepaal watter Android-image jy in hierdie toestel wil uitvoer.\ Jy kan al die opsies lys met sdkmanager
:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
En download die een (of almal) wat jy wil gebruik met:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64"
Sodra jy die Android-beeld wat jy wil gebruik afgelaai het, kan jy al die afgelaaide Android-beelde lys met:
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
Op hierdie stadium het jy besluit watter toestel jy wil gebruik en jy het die Android image afgelaai, dus kan jy die virtuele masjien skep met:
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"
In die laaste opdrag het ek 'n VM geskep met die naam "AVD9" deur die toestel "Nexus 5X" en die Android image "system-images;android-28;google_apis;x86_64" te gebruik.
Nou kan jy lys die virtuele masjiene wat jy geskep het met:
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
Voer Virtuele Masjien uit
warning
Vir macOS kan jy die avdmanager
hulpmiddel vind in /Users/<username>/Library/Android/sdk/tools/bin/avdmanager
en die emulator
in /Users/<username>/Library/Android/sdk/emulator/emulator
as jy dit geïnstalleer het.
Ons het reeds gesien hoe jy die gemaakte virtuele masjiene kan lys, maar jy kan hulle ook lys met:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27
Jy kan eenvoudig enige geskepte virtuele masjien laat loop deur gebruik te maak van:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName"
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9"
Of deur meer gevorderde opsies te gebruik kan jy 'n virtuele masjien soos:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
Command line options
Daar is egter baie verskillende nuttige opdragreëlopsies wat jy kan gebruik om 'n virtuele masjien te begin. Hieronder kan jy 'n paar interessante opsies sien, maar jy kan 'n volledige lys hier vind
Opstart
-snapshot name
: Start VM snapshot-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Lys al die opgeneemde snapshots
Netwerk
-dns-server 192.0.2.0, 192.0.2.255
: Laat toe om die DNS-bedieners vir die VM kommageskei aan te dui.-http-proxy 192.168.1.12:8080
: Laat toe om 'n HTTP-proxy aan te dui om te gebruik (baie nuttig om verkeer met Burp vas te vang)- As die proxy-instellings om een of ander rede nie werk nie, probeer dit intern te konfigureer of 'n toepassing soos "Super Proxy" of "ProxyDroid" te gebruik.
-netdelay 200
: Stel die netwerklatensie-emulasie in millisekondes.-port 5556
: Stel die TCP-poortnommer wat vir die console en adb gebruik word.-ports 5556,5559
: Stel die TCP-poorte wat vir die console en adb gebruik word.-tcpdump /path/dumpfile.cap
: Vang al die verkeer in 'n lêer
Stelsel
-selinux {disabled|permissive}
: Stel die Security-Enhanced Linux sekuriteitsmodule in op óf disabled óf permissive modus op 'n Linux-bedryfstelsel.-timezone Europe/Paris
: Stel die tydsone vir die virtuele toestel-screen {touch(default)|multi-touch|o-touch}
: Stel die geëmuleerde raakskermmodus in.-writable-system
: Gebruik hierdie opsie om 'n beskryfbare stelselbeeld gedurende jou emulasiesessie te hê. Jy sal ookadb root; adb remount
moet uitvoer. Dit is baie handig om 'n nuwe sertifikaat in die stelsel te installeer.
Linux CLI-opstelling (SDK/AVD snelbegin)
Die amptelike CLI-gereedskap maak dit maklik om vinnige, debugbare emulators te skep sonder Android Studio.
# 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
Aantekeninge
- Stelselbeeld-variante: google_apis (debuggable, laat
adb root
toe), google_apis_playstore (nie rootbaar nie), aosp/default (liggewig). - Bou-tipes: userdebug laat dikwels
adb root
toe op debug-geskikte beelde. Play Store images is produksie-boude en blokkeer root. - Op x86_64-gashere word volstelsel ARM64-emulasie nie ondersteun vanaf API 28+ nie. Vir Android 11+ gebruik Google APIs/Play images wat per-app ARM-to-x86 translation insluit om baie ARM-only apps vinnig te laat loop.
Snapshots vanaf die 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 binaire vertaling (Android 11+)
Google APIs en Play Store images op Android 11+ kan ARM-app-binaries per proses vertaal terwyl die res van die stelsel inheemse x86/x86_64 bly. Dit is dikwels vinnig genoeg om baie ARM-only apps op 'n lessenaar te toets.
Wenk: Gebruik voorkeurlik Google APIs x86/x86_64 images tydens pentests. Play images is gerieflik maar blokkeer
adb root
; gebruik dit slegs wanneer jy spesifiek Play services benodig en die gebrek aan root aanvaar.
Rooting a Play Store device
As jy 'n toestel met Play Store afgelaai het, gaan jy nie direk root kan kry nie, en jy sal hierdie foutboodskap kry
$ adb root
adbd cannot run as root in production builds
Deur rootAVD saam met Magisk te gebruik, kon ek dit root (volg byvoorbeeld this video of this one).
Installeer Burp-sertifikaat
Kyk na die volgende bladsy om te leer hoe om 'n pasgemaakte CA-sertifikaat te installeer:
Goeie AVD-opsies
Neem 'n Snapshot
Jy kan use the GUI gebruik om op enige tyd 'n snapshot van die VM te neem:
Verwysings
- Build a Repeatable Android Bug Bounty Lab: Emulator vs Magisk, Burp, Frida, and Medusa
- Android Emulator command line
- Run ARM apps on the Android Emulator (x86 translation)
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.