AVD - Android Virtual Device

Support HackTricks

Asante sana kwa @offsecjay kwa msaada wake wakati wa kuunda maudhui haya.

Nini ni

Android Studio inaruhusu kufanya kazi na mashine za virtual za Android ambazo unaweza kutumia kujaribu APKs. Ili kuzitumia utahitaji:

Katika Windows (katika kesi yangu) baada ya kufunga Android Studio nilikuwa na Zana za SDK zilizofungwa katika: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools

Katika mac unaweza kupakua zana za SDK na kuwa nazo katika PATH ukikimbia:

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

Au kutoka Android Studio GUI kama ilivyoonyeshwa katika https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a ambayo itasakinisha katika ~/Library/Android/sdk/cmdline-tools/latest/bin/ na ~/Library/Android/sdk/platform-tools/ na ~/Library/Android/sdk/emulator/

Kwa matatizo ya Java:

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

GUI

Prepare Virtual Machine

Ikiwa umeinstall Android Studio, unaweza tu kufungua mtazamo mkuu wa mradi na kufikia: Tools --> AVD Manager.

Kisha, bonyeza Create Virtual Device

chagua simu unayotaka kutumia na bonyeza Next.

Ikiwa unahitaji simu yenye Play Store imeinstall chagua moja yenye ikoni ya Play Store!

Katika mtazamo wa sasa utaweza kuchagua na kupakua picha ya Android ambayo simu itakimbia:

Hivyo, chagua na ikiwa haijapakuliwa bonyeza alama ya Download iliyo karibu na jina (sasa subiri hadi picha ipakuliwe). Mara picha inapopakuliwa, chagua tu Next na Finish.

Mashine ya virtual itaundwa. Sasa kila wakati unapoingia AVD manager itakuwa hapo.

Run Virtual Machine

Ili kuendesha ni lazima ubonyeze Start button.

Command Line tool

Kwanza kabisa unahitaji kuamua ni simu ipi unayotaka kutumia, ili kuona orodha ya simu zinazowezekana tekeleza:

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

Mara tu umeamua jina la kifaa unachotaka kutumia, unahitaji kuamua picha ipi ya Android unayotaka kuendesha katika kifaa hiki. Unaweza kuorodhesha chaguo zote kwa kutumia sdkmanager:

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

Na pakua ile (au zote) unayotaka kutumia na:

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

Mara tu umepakua picha ya Android unayotaka kutumia unaweza orodhesha picha zote za Android zilizopakuliwa kwa:

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

Kwa wakati huu umeshafanya uamuzi kuhusu kifaa unachotaka kutumia na umepakua picha ya Android, hivyo unaweza kuunda mashine ya virtual kwa kutumia:

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"

Katika amri ya mwisho nilifanya VM inayoitwa "AVD9" kwa kutumia kifaa "Nexus 5X" na picha ya Android "system-images;android-28;google_apis;x86_64". Sasa unaweza orodhesha mashine za virtual ulizozifanya kwa:

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

Run Virtual Machine

Tumeshaona jinsi unaweza kuorodhesha mashine za virtual zilizoundwa, lakini unaweza pia kuorodhesha hizo kwa kutumia:

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

Unaweza kwa urahisi kufanya kazi na mashine yoyote ya virtual iliyoundwa kwa kutumia:

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

Au kwa kutumia chaguzi za juu zaidi unaweza kuendesha mashine ya virtual kama:

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

Command line options

Hata hivyo kuna chaguzi nyingi tofauti za mstari wa amri ambazo unaweza kutumia kuanzisha mashine ya virtual. Hapa chini unaweza kupata baadhi ya chaguzi za kuvutia lakini unaweza kupata orodha kamili hapa

Boot

  • -snapshot name : Anza VM snapshot

  • -snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img : Orodhesha snapshots zote zilizorekodiwa

Network

  • -dns-server 192.0.2.0, 192.0.2.255 : Ruhusu kuashiria seva za DNS kwa VM kwa kutumia alama ya koma.

  • -http-proxy 192.168.1.12:8080 : Ruhusu kuashiria proxy ya HTTP kutumia (ni muhimu sana kukamata trafiki kwa kutumia Burp)

  • -port 5556 : Weka nambari ya bandari ya TCP inayotumika kwa console na adb.

  • -ports 5556,5559 : Weka bandari za TCP zinazotumika kwa console na adb.

  • -tcpdump /path/dumpfile.cap : Kamatisha trafiki yote katika faili

System

  • -selinux {disabled|permissive} : Weka moduli ya usalama ya Security-Enhanced Linux kuwa katika hali ya kuzuiwa au ya ruhusa kwenye mfumo wa uendeshaji wa Linux.

  • -timezone Europe/Paris : Weka eneo la muda kwa kifaa cha virtual

  • -screen {touch(default)|multi-touch|o-touch} : Weka hali ya skrini ya kugusa iliyosimuliwa.

  • -writable-system : Tumia chaguo hili kuwa na picha ya mfumo inayoweza kuandikwa wakati wa kikao chako cha emulation. Utahitaji pia kukimbia adb root; adb remount. Hii ni muhimu sana kufunga cheti kipya katika mfumo.

Rooting a Play Store device

Ikiwa umepakua kifaa chenye Play Store huwezi kupata root moja kwa moja, na utapata ujumbe huu wa kosa

$ adb root
adbd cannot run as root in production builds

Using rootAVD with Magisk niliweza ku-root hiyo (fuata kwa mfano hii video au hii nyingine).

Install Burp Certificate

Angalia ukurasa ufuatao kujifunza jinsi ya kufunga cheti cha CA cha kawaida:

Install Burp Certificate

Nice AVD Options

Take a Snapshot

Unaweza kutumia GUI kuchukua picha ya VM wakati wowote:

Support HackTricks

Last updated