# AVD - Android Sanal Cihazı
htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hacklemeyi öğrenin! HackTricks'i desteklemenin diğer yolları: * **Şirketinizi HackTricks'te reklam vermek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**. * **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**.
Bu içeriği oluştururken [**@offsecjay**](https://twitter.com/offsecjay)'e çok teşekkür ederim. ## Nedir Android Studio, **APK'ları test etmek için kullanabileceğiniz Android sanal makinelerini çalıştırmaya izin verir**. Bunları kullanmak için aşağıdakilere ihtiyacınız olacak: * **Android SDK araçları** - [Buradan indirin](https://developer.android.com/studio/releases/sdk-tools). * Veya **Android Studio** (Android SDK araçlarıyla birlikte) - [Buradan indirin](https://developer.android.com/studio). Windows'ta (benim durumumda) **Android Studio'yu yükledikten sonra**, **SDK Araçları'nın yüklendiği konum**: `C:\Users\\AppData\Local\Android\Sdk\tools` Mac'te SDK araçlarını **indirebilir** ve PATH içinde çalıştırarak sahip olabilirsiniz: ```bash brew tap homebrew/cask brew install --cask android-sdk ``` Veya [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) adresinde belirtildiği gibi **Android Studio GUI** üzerinden yapabilirsiniz. Bu yöntem, onları `~/Library/Android/sdk/cmdline-tools/latest/bin/`, `~/Library/Android/sdk/platform-tools/` ve `~/Library/Android/sdk/emulator/` dizinlerine kuracaktır. Java sorunları için: ```java export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home ``` ## GUI ### Sanal Makineyi Hazırlama Eğer Android Studio'yu yüklediyseniz, ana proje görünümünü açabilir ve şuraya erişebilirsiniz: _**Araçlar**_ --> _**AVD Yöneticisi.**_
Ardından, _**Sanal Cihaz Oluştur**_ üzerine tıklayın.
_**Kullanmak istediğiniz telefonu seçin** ve _**İleri**_ üzerine tıklayın. {% hint style="warning" %} Play Store yüklü bir telefona ihtiyacınız varsa, üzerinde Play Store simgesi bulunan birini seçin! ![](<../../.gitbook/assets/image (672).png>) {% endhint %} Mevcut görünümde, telefonun çalışacağı **Android görüntüsünü seçip indirebileceksiniz**:
Bu yüzden, seçin ve indirilmediyse adının yanındaki _**İndir**_ simgesine tıklayın (**şimdi görüntünün indirilmesini bekleyin).**\ Görüntü indirildikten sonra, sadece **`İleri`** ve **`Bitir`** seçin. Sanal makine oluşturulacak. Şimdi **AVD yöneticisine her eriştiğinizde mevcut olacak**. ### Sanal Makineyi Çalıştırma Çalıştırmak için sadece _**Başlat düğmesine**_ basın. ![](<../../.gitbook/assets/image (334).png>) ## Komut Satırı Aracı Öncelikle kullanmak istediğiniz telefonu **belirlemeniz gerekmektedir**, olası telefonların listesini görmek için aşağıdaki komutu çalıştırın: ``` 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 [...] ``` Bir cihaz adı belirledikten sonra, bu cihazda çalıştırmak istediğiniz Android görüntüsünü belirlemelisiniz.\ Tüm seçenekleri `sdkmanager` kullanarak listeleyebilirsiniz: ```bash C:\Users\\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list ``` Ve istediğiniz bir (veya tümünü) indirin: {% code overflow="wrap" %} ```bash C:\Users\\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64" ``` {% endcode %} İstediğiniz Android görüntüsünü indirdikten sonra, **indirilen tüm Android görüntülerini listeleyebilirsiniz**: ```bash $ avdmanager list avd ``` Bu komut, indirilen tüm Android görüntülerinin bir listesini görüntüler. ``` 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 ``` Bu noktada kullanmak istediğiniz cihazı seçtiniz ve Android imajını indirdiniz, bu yüzden **aşağıdaki adımları izleyerek sanal makineyi oluşturabilirsiniz**: {% code overflow="wrap" %} ```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" ``` {% endcode %} Son komutta **AVD9** adında bir sanal makine oluşturdum. Bu makineye "_Nexus 5X_" cihazını ve "_system-images;android-28;google\_apis;x86\_64_" Android görüntüsünü kullandım. Şimdi oluşturduğunuz sanal makineleri **listelemek için** şu komutu kullanabilirsiniz: ```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 ``` ### Sanal Makineyi Çalıştır Daha önce oluşturulan sanal makineleri nasıl listeleyebileceğinizi zaten gördük, ancak **onları listeleyebilirsiniz** kullanarak: ```bash C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds AVD9 Pixel_2_API_27 ``` Aşağıdaki komutu kullanarak oluşturulan herhangi bir sanal makineyi çalıştırabilirsiniz: {% code overflow="wrap" %} ```bash C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName" C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" ``` {% endcode %} Daha gelişmiş seçeneklerle bir sanal makine çalıştırabilirsiniz: {% code overflow="wrap" %} ```bash C:\Users\\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system ``` {% endcode %} ### Komut satırı seçenekleri Ancak, bir sanal makineyi başlatmak için kullanabileceğiniz **birçok farklı komut satırı seçeneği** bulunmaktadır. Aşağıda bazı ilginç seçenekleri bulabilirsiniz, ancak [**burada tam bir liste bulabilirsiniz**](https://developer.android.com/studio/run/emulator-commandline) **Başlatma** * `-snapshot name` : VM anlık görüntüsünü başlatır * `-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img` : Kaydedilen tüm anlık görüntüleri listeler **Ağ** * `-dns-server 192.0.2.0, 192.0.2.255` : VM'ye virgülle ayrılmış DNS sunucularını belirtmeye izin verir. * **`-http-proxy 192.168.1.12:8080`** : Kullanılacak bir HTTP proxy'sini belirtmeye izin verir (trafiği Burp kullanarak yakalamak için çok kullanışlıdır) * `-port 5556` : Konsol ve adb için kullanılan TCP bağlantı noktası numarasını ayarlar. * `-ports 5556,5559` : Konsol ve adb için kullanılan TCP bağlantı noktalarını ayarlar. * **`-tcpdump /path/dumpfile.cap`** : Tüm trafiği bir dosyada yakalar **Sistem** * `-selinux {disabled|permissive}` : Bir Linux işletim sisteminde Security-Enhanced Linux güvenlik modülünü devre dışı bırakma veya izin verici moduna ayarlar. * `-timezone Europe/Paris` : Sanal cihaz için zaman dilimini ayarlar * `-screen {touch(default)|multi-touch|o-touch}` : Taklit edilen dokunmatik ekran modunu ayarlar. * **`-writable-system`** : Emülasyon oturumu sırasında yazılabilir bir sistem görüntüsüne sahip olmak için bu seçeneği kullanın. Ayrıca `adb root; adb remount` komutlarını da çalıştırmanız gerekecektir. Bu, sisteme yeni bir sertifika yüklemek için çok kullanışlıdır. ## Play Store cihazını rootlama Play Store ile indirdiyseniz, doğrudan kök erişimi elde edemezsiniz ve aşağıdaki hata mesajını alırsınız ``` $ adb root adbd cannot run as root in production builds ``` [rootAVD](https://github.com/newbit1/rootAVD) ve [Magisk](https://github.com/topjohnwu/Magisk) ile kullanarak root erişimi elde edebilirsiniz (örneğin [**bu videoyu**](https://www.youtube.com/watch?v=Wk0ixxmkzAI) **veya** [**bu videoyu**](https://www.youtube.com/watch?v=qQicUW0svB8) takip edin). ## Burp Sertifikası Yükleme Özel bir CA sertifikası nasıl yükleneceğini öğrenmek için aşağıdaki sayfayı kontrol edin: {% content-ref url="install-burp-certificate.md" %} [install-burp-certificate.md](install-burp-certificate.md) {% endcontent-ref %} ## Güzel AVD Seçenekleri ### Bir Snapshot Alın Herhangi bir zamanda VM'in bir snapshot'ını almak için **GUI'yi kullanabilirsiniz**: ![](<../../.gitbook/assets/image (336).png>)
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! HackTricks'i desteklemenin diğer yolları: * Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! * [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin * Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin * 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. * **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.