AVD - Android Virtual Device

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Hvala puno @offsecjay za njegovu pomoć prilikom kreiranja ovog sadržaja.

Šta je

Android Studio omogućava pokretanje virtuelnih mašina Androida koje možete koristiti za testiranje APK-ova. Da biste ih koristili, trebaće vam:

Na Windows-u (u mom slučaju) nakon instaliranja Android Studija imao sam SDK alate instalirane u: C:\Users\<KorisničkoIme>\AppData\Local\Android\Sdk\tools

Na Mac-u možete preuzeti SDK alate i imati ih u PATH-u pokretanjem:

brew tap homebrew/cask
brew install --cask android-sdk

Ili putem Android Studio GUI kako je naznačeno na https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a koji će ih instalirati u ~/Library/Android/sdk/cmdline-tools/latest/bin/ i ~/Library/Android/sdk/platform-tools/ i ~/Library/Android/sdk/emulator/

Za Java probleme:

export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home

GUI

Priprema virtuelne mašine

Ako ste instalirali Android Studio, možete jednostavno otvoriti glavni prikaz projekta i pristupiti: Alati --> AVD menadžer.

Zatim kliknite na Kreiraj virtuelni uređaj

izaberite telefon koji želite da koristite i kliknite na Dalje.

Ako vam je potreban telefon sa instaliranim Play prodavnicom, izaberite onaj sa ikonom Play prodavnice na sebi!

U trenutnom prikazu moći ćete izabrati i preuzeti Android sliku koju će telefon koristiti:

Dakle, izaberite je i ako nije preuzeta kliknite na simbol Preuzmi pored imena (sada sačekajte dok se slika preuzima). Kada se slika preuzme, jednostavno izaberite Dalje i Završi.

Virtuelna mašina će biti kreirana. Sada će se svaki put kada pristupite AVD menadžeru ona pojaviti.

Pokretanje virtuelne mašine

Da biste je pokrenuli, jednostavno pritisnite Dugme za pokretanje.

Alat za komandnu liniju

Prvo morate odlučiti koji telefon želite da koristite, kako biste videli listu mogućih telefona izvršite:

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
[...]

Kada ste odlučili ime uređaja koji želite da koristite, trebate odlučiti koju Android sliku želite pokrenuti na ovom uređaju. Sve opcije možete videti koristeći sdkmanager:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list

I preuzmite onaj koji želite da koristite sa:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64"

Kada preuzmete Android sliku koju želite da koristite, možete izlistati sve preuzete Android slike pomoću:

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

U ovom trenutku ste odlučili koji uređaj želite koristiti i preuzeli ste Android sliku, tako da možete kreirati virtuelnu mašinu koristeći:

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"

U poslednjoj komandi napravio sam VM nazvan "AVD9" koristeći uređaj "Nexus 5X" i Android sliku "system-images;android-28;google_apis;x86_64". Sada možete izlistati virtuelne mašine koje ste kreirali sa:

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

Pokreni virtuelnu mašinu

Već smo videli kako možete da nabrojite kreirane virtuelne mašine, ali možete ih takođe nabrojati koristeći:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27

Možete jednostavno pokrenuti bilo koju virtuelnu mašinu koju ste kreirali koristeći:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName"
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9"

Ili korišćenjem naprednijih opcija možete pokrenuti virtuelnu mašinu kao:

C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system

Opcije komandne linije

Međutim, postoji mnogo različitih korisnih opcija komandne linije koje možete koristiti za pokretanje virtuelne mašine. U nastavku možete pronaći neke zanimljive opcije, ali možete pronaći kompletan spisak ovde

Pokretanje

  • -snapshot name : Pokreni snimak VM

  • -snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img : Prikazuje sve snimljene snimke

Mreža

  • -dns-server 192.0.2.0, 192.0.2.255 : Dozvoljava da se zasebno navedu DNS serveri za VM.

  • -http-proxy 192.168.1.12:8080 : Dozvoljava da se navede HTTP proxy za korišćenje (veoma korisno za hvatanje saobraćaja korišćenjem Burp alata)

  • -port 5556 : Postavlja TCP broj porta koji se koristi za konzolu i adb.

  • -ports 5556,5559 : Postavlja TCP portove koji se koriste za konzolu i adb.

  • -tcpdump /path/dumpfile.cap : Snima sav saobraćaj u fajl

Sistem

  • -selinux {disabled|permissive} : Postavlja Security-Enhanced Linux modul bezbednosti na onemogućen ili dozvoljen režim na Linux operativnom sistemu.

  • -timezone Europe/Paris : Postavlja vremensku zonu za virtuelni uređaj

  • -screen {touch(default)|multi-touch|o-touch} : Postavlja emulirani režim dodira ekrana.

  • -writable-system : Koristite ovu opciju da imate sistemsku sliku koja se može pisati tokom vaše emulacije. Takođe će vam biti potrebno da pokrenete adb root; adb remount. Ovo je veoma korisno za instaliranje novog sertifikata u sistemu.

Rutovanje uređaja sa Play prodavnicom

Ako ste preuzeli uređaj sa Play prodavnicom, nećete moći direktno dobiti root pristup, i dobićete ovu grešku

$ adb root
adbd cannot run as root in production builds

Korišćenjem rootAVD sa Magisk uspeo sam da ga rootujem (pratite na primer ovaj video ili ovaj).

Instaliranje Burp sertifikata

Proverite sledeću stranicu da biste saznali kako instalirati prilagođeni CA sertifikat:

pageInstall Burp Certificate

Opcije AVD

Napravi snimak

Možete koristiti GUI da napravite snimak VM u bilo koje vreme:

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated