AVD - Android Virtual Device
Reading time: 8 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Thank you very much to @offsecjay for his help while creating this content.
What is
Android Studio एंड्रॉइड के वर्चुअल मशीनों को चलाने की अनुमति देता है जिन्हें आप APKs का परीक्षण करने के लिए उपयोग कर सकते हैं। उनका उपयोग करने के लिए आपको आवश्यकता होगी:
- Android SDK टूल - Download here.
- या Android Studio (Android SDK टूल के साथ) - Download here.
Windows में (मेरे मामले में) Android Studio स्थापित करने के बाद मेरे पास SDK Tools स्थापित थे: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
Mac में आप SDK टूल डाउनलोड कर सकते हैं और उन्हें PATH में रख सकते हैं:
brew tap homebrew/cask
brew install --cask android-sdk
या Android Studio GUI से जैसा कि https://stackoverflow.com/questions/46402772/failed-to-install-android-sdk-java-lang-noclassdeffounderror-javax-xml-bind-a में संकेतित है, जो उन्हें ~/Library/Android/sdk/cmdline-tools/latest/bin/
और ~/Library/Android/sdk/platform-tools/
और ~/Library/Android/sdk/emulator/
में स्थापित करेगा।
Java समस्याओं के लिए:
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jbr/Contents/Home
GUI
Prepare Virtual Machine
यदि आपने Android Studio स्थापित किया है, तो आप बस मुख्य प्रोजेक्ट दृश्य खोल सकते हैं और पहुँच सकते हैं: Tools --> AVD Manager.
.png)
फिर, Create Virtual Device पर क्लिक करें।
.png)
select वह फोन जिसे आप उपयोग करना चाहते हैं और Next. पर क्लिक करें।
warning
यदि आपको Play Store के साथ फोन की आवश्यकता है, तो उस पर Play Store आइकन वाला फोन चुनें!
.png)
वर्तमान दृश्य में आप Android इमेज का चयन और डाउनलोड करने में सक्षम होंगे जिसे फोन चलाने वाला है:
.png)
तो, इसे चुनें और यदि यह डाउनलोड नहीं हुआ है तो नाम के बगल में Download प्रतीक पर क्लिक करें (अब इमेज डाउनलोड होने तक प्रतीक्षा करें)।
एक बार इमेज डाउनलोड हो जाने के बाद, बस Next
और Finish
चुनें।
वर्चुअल मशीन बनाई जाएगी। अब हर बार जब आप AVD प्रबंधक तक पहुँचेंगे, यह मौजूद होगा।
Run Virtual Machine
इसे चलाने के लिए बस Start button दबाएँ।
Command Line tool
सबसे पहले आपको निर्धारित करना होगा कि आप कौन सा फोन उपयोग करना चाहते हैं, संभावित फोन की सूची देखने के लिए निष्पादित करें:
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
[...]
एक बार जब आप उस डिवाइस का नाम तय कर लेते हैं जिसे आप उपयोग करना चाहते हैं, तो आपको निर्णय लेना होगा कि आप इस डिवाइस में कौन सा Android इमेज चलाना चाहते हैं।
आप सभी विकल्पों को sdkmanager
का उपयोग करके सूचीबद्ध कर सकते हैं:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat --list
और डाउनलोड करें वह (या सभी) जिसे आप उपयोग करना चाहते हैं:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\bin\sdkmanager.bat "platforms;android-28" "system-images;android-28;google_apis;x86_64"
एक बार जब आप उस Android इमेज को डाउनलोड कर लेते हैं जिसे आप उपयोग करना चाहते हैं, आप सभी डाउनलोड की गई Android इमेज़ की सूची बना सकते हैं:
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
इस समय आपने उस डिवाइस का चयन कर लिया है जिसे आप उपयोग करना चाहते हैं और आपने Android इमेज डाउनलोड कर ली है, इसलिए आप वर्चुअल मशीन बना सकते हैं:
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"
अंतिम कमांड में मैंने एक VM नामित "AVD9" डिवाइस "Nexus 5X" और एंड्रॉइड इमेज "system-images;android-28;google_apis;x86_64" का उपयोग करके बनाया।
अब आप आपके द्वारा बनाए गए वर्चुअल मशीनों की सूची देख सकते हैं:
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
वर्चुअल मशीन चलाएँ
हम पहले ही देख चुके हैं कि आप बनाए गए वर्चुअल मशीनों को कैसे सूचीबद्ध कर सकते हैं, लेकिन आप उन्हें निम्नलिखित का उपयोग करके भी सूचीबद्ध कर सकते हैं:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -list-avds
AVD9
Pixel_2_API_27
आप बस किसी भी वर्चुअल मशीन को चला सकते हैं जिसका निर्माण किया गया है:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "VirtualMachineName"
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9"
या अधिक उन्नत विकल्पों का उपयोग करके आप एक वर्चुअल मशीन चला सकते हैं जैसे:
C:\Users\<UserName>\AppData\Local\Android\Sdk\tools\emulator.exe -avd "AVD9" -http-proxy 192.168.1.12:8080 -writable-system
Command line options
हालांकि कई अलग-अलग कमांड लाइन उपयोगी विकल्प हैं जिन्हें आप एक वर्चुअल मशीन शुरू करने के लिए उपयोग कर सकते हैं। नीचे कुछ दिलचस्प विकल्प दिए गए हैं लेकिन आप यहां एक पूर्ण सूची पा सकते हैं
Boot
-snapshot name
: VM स्नैपशॉट शुरू करें-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: सभी रिकॉर्ड किए गए स्नैपशॉट्स की सूची बनाएं
Network
-dns-server 192.0.2.0, 192.0.2.255
: VM के लिए DNS सर्वरों को कॉमा से अलग करके इंगित करने की अनुमति दें।-http-proxy 192.168.1.12:8080
: उपयोग करने के लिए एक HTTP प्रॉक्सी इंगित करने की अनुमति दें (Burp का उपयोग करके ट्रैफ़िक कैप्चर करने के लिए बहुत उपयोगी)-port 5556
: कंसोल और adb के लिए उपयोग किए जाने वाले TCP पोर्ट नंबर को सेट करें।-ports 5556,5559
: कंसोल और adb के लिए उपयोग किए जाने वाले TCP पोर्ट सेट करें।-tcpdump /path/dumpfile.cap
: एक फ़ाइल में सभी ट्रैफ़िक कैप्चर करें
System
-selinux {disabled|permissive}
: Linux ऑपरेटिंग सिस्टम पर सुरक्षा-संवर्धित लिनक्स सुरक्षा मॉड्यूल को या तो अक्षम या अनुमति मोड पर सेट करें।-timezone Europe/Paris
: वर्चुअल डिवाइस के लिए समय क्षेत्र सेट करें-screen {touch(default)|multi-touch|o-touch}
: अनुकरण किए गए टच स्क्रीन मोड को सेट करें।-writable-system
: अपने अनुकरण सत्र के दौरान एक लिखने योग्य सिस्टम छवि रखने के लिए इस विकल्प का उपयोग करें। आपकोadb root; adb remount
भी चलाना होगा। यह सिस्टम में एक नया प्रमाणपत्र स्थापित करने के लिए बहुत उपयोगी है।
Rooting a Play Store device
यदि आपने Play Store के साथ एक डिवाइस डाउनलोड किया है, तो आप सीधे रूट प्राप्त नहीं कर पाएंगे, और आपको यह त्रुटि संदेश मिलेगा
$ adb root
adbd cannot run as root in production builds
rootAVD का उपयोग करते हुए Magisk के साथ, मैं इसे रूट करने में सक्षम था (उदाहरण के लिए इस वीडियो या इस एक)।
Burp प्रमाणपत्र स्थापित करें
कस्टम CA प्रमाणपत्र स्थापित करने के लिए निम्नलिखित पृष्ठ की जांच करें:
अच्छे AVD विकल्प
स्नैपशॉट लें
आप किसी भी समय VM का स्नैपशॉट लेने के लिए GUI का उपयोग कर सकते हैं:
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।