# AVD - Android Virtual Device {{#include ../../banners/hacktricks-training.md}} Baie dankie aan [**@offsecjay**](https://twitter.com/offsecjay) vir sy hulp tydens die skep van hierdie inhoud. ## Wat is Android Studio laat jou toe om **virtuele masjiene van Android te laat loop wat jy kan gebruik om APK's te toets**. Om dit te gebruik, sal jy nodig hê: - Die **Android SDK gereedskap** - [Laai hier af](https://developer.android.com/studio/releases/sdk-tools). - Of **Android Studio** (met Android SDK gereedskap) - [Laai hier af](https://developer.android.com/studio). In Windows (in my geval) **na die installering van Android Studio** het ek die **SDK Gereedskap geïnstalleer in**: `C:\Users\\AppData\Local\Android\Sdk\tools` In mac kan jy die **SDK gereedskap aflaai** en dit in die PATH hê deur te loop: ```bash brew tap homebrew/cask brew install --cask android-sdk ``` Of van **Android Studio GUI** soos aangedui in [https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a](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: ```java 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 hoofprojekweergave oopmaak en toegang verkry tot: _**Gereedskap**_ --> _**AVD Bestuurder.**_
Klik dan op _**Skep Virtuele Toestel**_
_**kies** die telefoon wat jy wil gebruik_ en klik op _**Volgende.**_ > [!WARNING] > As jy 'n telefoon met Play Store geïnstalleer nodig het, kies een met die Play Store ikoon daarop! > > In die huidige weergave gaan jy in staat wees om **te kies en die Android beeld af te laai** wat die telefoon gaan loop:
Kies dit, en as dit nie afgelaai is nie, klik op die _**Laai Af**_ simbool langs die naam (**wag nou totdat die beeld afgelaai is).**\ Sodra die beeld afgelaai is, kies net **`Volgende`** en **`Voltooi`**. Die virtuele masjien sal geskep word. Nou **elke keer wanneer jy AVD bestuurder toegang verkry, sal dit teenwoordig wees**. ### Voer Virtuele Masjien Uit Om dit te **voeren**, druk net die _**Begin knoppie**_. ![](<../../images/image (518).png>) ## Opdraglyn hulpmiddel Eerstens moet jy **besluit watter telefoon jy wil gebruik**, om die lys van moontlike telefone te sien, voer uit: ``` C:\Users\\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 **besluit watter Android-beeld jy in hierdie toestel wil laat loop.**\ Jy kan al die opsies lys met `sdkmanager`: ```bash C:\Users\\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list ``` En **aflaai** die een (of al die) wat jy wil gebruik met: ```bash C:\Users\\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 **alle afgelaaide Android-beelde lys** met: ``` C:\Users\\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 oomblik het jy die toestel besluit wat jy wil gebruik en jy het die Android-beeld afgelaai, so **jy kan die virtuele masjien skep met**: ```bash C:\Users\\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 genaamd** "_AVD9_" geskep met die **toestel** "_Nexus 5X_" en die **Android beeld** "_system-images;android-28;google_apis;x86_64_".\ Nou kan jy **die virtuele masjiene** wat jy geskep het lys met: ```bash C:\Users\\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 Ons het reeds gesien hoe jy die geskepte virtuele masjiene kan lys, maar **jy kan hulle ook lys met**: ```bash C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds AVD9 Pixel_2_API_27 ``` U kan eenvoudig **enige virtuele masjien wat geskep is** gebruik: ```bash C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName" C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" ``` Of deur meer gevorderde opsies te gebruik, kan jy 'n virtuele masjien soos: ```bash C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system ``` ### Opdraglyn opsies Daar is egter **'n baie verskillende nuttige opsies op die opdraglyn** wat jy kan gebruik om 'n virtuele masjien te begin. Hieronder kan jy 'n paar interessante opsies vind, maar kan [**'n volledige lys hier vind**](https://developer.android.com/studio/run/emulator-commandline) **Boot** - `-snapshot name` : Begin VM-snapshot - `-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img` : Lys al die geregistreerde snapshots **Netwerk** - `-dns-server 192.0.2.0, 192.0.2.255` : Laat toe om komma-geskeide DNS-bedieners aan die VM 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 die verkeer met Burp te vang) - `-port 5556` : Stel die TCP-poortnommer wat vir die konsole en adb gebruik word. - `-ports 5556,5559` : Stel die TCP-poorte wat vir die konsole 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 op ofwel gedeaktiveer of permissiewe 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 aanraakskermmodus. - **`-writable-system`** : Gebruik hierdie opsie om 'n skryfbare stelselfoto tydens jou emulasiesessie te hê. Jy sal ook `adb root; adb remount` moet uitvoer. Dit is baie nuttig om 'n nuwe sertifikaat in die stelsel te installeer. ## Rooting 'n Play Store toestel As jy 'n toestel met Play Store afgelaai het, gaan jy nie in staat wees om direk root te kry nie, en jy sal hierdie foutboodskap ontvang ``` $ adb root adbd cannot run as root in production builds ``` Gebruik [rootAVD](https://github.com/newbit1/rootAVD) saam met [Magisk](https://github.com/topjohnwu/Magisk) kon ek dit root (volg byvoorbeeld [**hierdie video**](https://www.youtube.com/watch?v=Wk0ixxmkzAI) **of** [**hierdie een**](https://www.youtube.com/watch?v=qQicUW0svB8)). ## Installeer Burp Sertifikaat Kyk na die volgende bladsy om te leer hoe om 'n pasgemaakte CA sertifikaat te installeer: {{#ref}} install-burp-certificate.md {{#endref}} ## Lekker AVD Opsies ### Neem 'n Snapshot Jy kan **die GUI** gebruik om 'n snapshot van die VM op enige tyd te neem: ![](<../../images/image (234).png>) {{#include ../../banners/hacktricks-training.md}}