AVD - Android Virtual Device
Дуже дякую @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:
GUI
Підготовка віртуальної машини
Якщо ви встановили 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". Тепер ви можете переглянути віртуальні машини, які ви створили за допомогою:
Запустіть віртуальну машину
Ми вже бачили, як ви можете перерахувати створені віртуальні машини, але ви також можете перерахувати їх, використовуючи:
Ви можете просто запустити будь-яку віртуальну машину, створену за допомогою:
Або використовуючи більш просунуті опції, ви можете запустити віртуальну машину, як:
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
: Дозволити вказати через кому 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
. Це дуже корисно для встановлення нового сертифіката в систему.
Rooting a Play Store device
Якщо ви завантажили пристрій з Play Store, ви не зможете отримати root безпосередньо, і ви отримаєте це повідомлення про помилку
Використовуючи rootAVD з Magisk, я зміг отримати root-доступ (слідкуйте, наприклад, за цим відео або цим).
Встановлення сертифіката Burp
Перегляньте наступну сторінку, щоб дізнатися, як встановити власний сертифікат CA:
Install Burp CertificateГарні параметри AVD
Зробити знімок
Ви можете використовувати GUI для створення знімка віртуальної машини в будь-який час:
Last updated