11 KiB
AVD - Android Virtual Device
{% hint style="success" %}
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Überprüfe die Abonnementpläne!
- Tritt der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folge uns auf Twitter 🐦 @hacktricks_live.
- Teile Hacking-Tricks, indem du PRs zu den HackTricks und HackTricks Cloud GitHub-Repos einreichst.
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 du zum Testen von APKs verwenden kannst. Um sie zu nutzen, benötigst du:
- 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 kannst du die SDK-Tools herunterladen und sie im PATH haben, indem du Folgendes ausführst:
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.
{% hint style="warning" %} Wenn Sie ein Telefon mit installiertem Play Store benötigen, wählen Sie eines mit dem Play Store-Symbol aus!
{% endhint %}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, wenn Sie auf den AVD-Manager zugreifen, vorhanden sein.
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 diejenige (oder alle), die du verwenden möchtest, mit:
{% code overflow="wrap" %}
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64"
{% endcode %}
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
Zu diesem Zeitpunkt haben Sie das Gerät ausgewählt, das Sie verwenden möchten, und das Android-Image heruntergeladen, sodass Sie die virtuelle Maschine mit:
{% code overflow="wrap" %}
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"
{% endcode %}
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, die Sie erstellt haben, mit folgendem Befehl auflisten:
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:
{% code overflow="wrap" %}
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName"
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9"
{% endcode %}
Oder indem Sie fortgeschrittenere Optionen verwenden, können Sie eine virtuelle Maschine wie folgt ausführen:
{% code overflow="wrap" %}
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
{% endcode %}
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
Using rootAVD with Magisk konnte ich es rooten (folgen Sie zum Beispiel diesem Video oder diesem hier).
Burp-Zertifikat installieren
Überprüfen Sie die folgende Seite, um zu lernen, wie man ein benutzerdefiniertes CA-Zertifikat installiert:
{% content-ref url="install-burp-certificate.md" %} install-burp-certificate.md {% endcontent-ref %}
Nette AVD-Optionen
Snapshot erstellen
Sie können die GUI verwenden, um jederzeit einen Snapshot der VM zu erstellen:
{% hint style="success" %}
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks unterstützen
- Ü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.