AVD - Android Virtual Device
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Дуже дякую @offsecjay за його допомогу під час створення цього контенту.
Android Studio дозволяє запускати віртуальні машини Android, які ви можете використовувати для тестування APK. Щоб їх використовувати, вам знадобиться:
Інструменти Android SDK - Завантажити тут.
Або Android Studio (з інструментами Android SDK) - Завантажити тут.
У Windows (в моєму випадку) після встановлення Android Studio я мав інструменти SDK, встановлені в: C:\Users\<UserName>\AppData\Local\Android\Sdk\tools
У mac ви можете завантажити інструменти SDK і додати їх у PATH, запустивши:
Або з 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:
Якщо ви встановили Android Studio, ви можете просто відкрити основний вигляд проекту та отримати доступ до: Інструменти --> AVD Manager.
Потім натисніть на Створити віртуальний пристрій
виберіть телефон, який ви хочете використовувати і натисніть на Далі.
Якщо вам потрібен телефон з встановленим Play Store, виберіть один з іконкою Play Store на ньому!
У поточному вигляді ви зможете вибрати та завантажити образ Android, який буде використовувати телефон:
Отже, виберіть його, і якщо він не завантажений, натисніть на символ Завантажити поруч з назвою (тепер чекайте, поки образ буде завантажено).
Після завантаження образу просто виберіть Далі
та Завершити
.
Віртуальна машина буде створена. Тепер кожного разу, коли ви отримуєте доступ до AVD manager, вона буде присутня.
Щоб запустити її, просто натисніть на Кнопку старт.
Перш за все, вам потрібно вирішити, який телефон ви хочете використовувати, щоб побачити список можливих телефонів, виконайте:
Якщо ви вирішили назву пристрою, який хочете використовувати, вам потрібно вирішити, який образ Android ви хочете запустити на цьому пристрої.
Ви можете перерахувати всі варіанти, використовуючи sdkmanager
:
І завантажте той (або всі), який ви хочете використовувати за допомогою:
Після того, як ви завантажили образ Android, який хочете використовувати, ви можете переглянути всі завантажені образи Android за допомогою:
На даний момент ви вирішили, який пристрій хочете використовувати, і завантажили образ Android, тому ви можете створити віртуальну машину, використовуючи:
У останній команді я створив ВМ з ім'ям "AVD9" використовуючи пристрій "Nexus 5X" та образ Android "system-images;android-28;google_apis;x86_64". Тепер ви можете переглянути віртуальні машини, які ви створили за допомогою:
Ми вже бачили, як ви можете перерахувати створені віртуальні машини, але ви також можете перерахувати їх, використовуючи:
Ви можете просто запустити будь-яку віртуальну машину, створену за допомогою:
Або використовуючи більш просунуті опції, ви можете запустити віртуальну машину, як:
Однак є багато різних корисних параметрів командного рядка, які ви можете використовувати для ініціалізації віртуальної машини. Нижче ви можете знайти деякі цікаві параметри, але ви можете знайти повний список тут
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
: Дозволити вказати через кому DNS-сервери для VM.
-http-proxy 192.168.1.12:8080
: Дозволити вказати HTTP-проксі для використання (дуже корисно для захоплення трафіку за допомогою Burp)
-port 5556
: Встановити номер TCP порту, який використовується для консолі та adb.
-ports 5556,5559
: Встановити TCP порти, що використовуються для консолі та adb.
-tcpdump /path/dumpfile.cap
: Захопити весь трафік у файл
System
-selinux {disabled|permissive}
: Встановити модуль безпеки Security-Enhanced Linux в режим або вимкнено, або дозволено на операційній системі Linux.
-timezone Europe/Paris
: Встановити часовий пояс для віртуального пристрою
-screen {touch(default)|multi-touch|o-touch}
: Встановити емуляцію режиму сенсорного екрану.
-writable-system
: Використовуйте цю опцію, щоб мати записуване системне зображення під час вашої сесії емуляції. Вам також потрібно буде виконати adb root; adb remount
. Це дуже корисно для встановлення нового сертифіката в систему.
Якщо ви завантажили пристрій з Play Store, ви не зможете отримати root безпосередньо, і ви отримаєте це повідомлення про помилку
Використовуючи rootAVD з Magisk, я зміг отримати root-доступ (слідкуйте, наприклад, за цим відео або цим).
Перегляньте наступну сторінку, щоб дізнатися, як встановити власний сертифікат CA:
Install Burp CertificateВи можете використовувати GUI для створення знімка віртуальної машини в будь-який час:
Вчіться та практикуйте Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)