AVD - Android Virtual Device
Дуже вдячні @offsecjay за допомогу у створенні цього контенту.
Що це таке
Android Studio дозволяє запускати віртуальні машини Android, які можна використовувати для тестування APK-файлів. Для використання їх вам знадобиться:
Інструменти Android SDK - Завантажити тут.
Або Android Studio (з інструментами Android SDK) - Завантажити тут.
У Windows (у моєму випадку) після встановлення Android Studio інструменти SDK встановлені в: C:\Users\<Ім'яКористувача>\AppData\Local\Android\Sdk\tools
На Mac ви можете завантажити інструменти SDK та мати їх у PATH, запустивши:
Або з графічного інтерфейсу Android Studio, як вказано в 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.
Потім клацніть на Створити віртуальний пристрій
виберіть телефон, який ви хочете використовувати та клацніть на Далі.
Якщо вам потрібен телефон з встановленим магазином Play, виберіть той, на якому є значок магазину Play!
У поточному вигляді ви зможете вибрати та завантажити зображення Android, на якому буде працювати телефон:
Тож, виберіть його, і якщо воно не завантажене, клацніть на символ Завантажити поряд з ім'ям (зачекайте, доки зображення буде завантажено).
Після завантаження зображення, просто виберіть Далі
та Готово
.
Віртуальна машина буде створена. Тепер кожного разу, коли ви звертаєтеся до менеджера AVD, вона буде присутня.
Запуск віртуальної машини
Для запуску просто натисніть кнопку Старт.
Інструмент командного рядка
Спочатку вам потрібно вирішити, який телефон ви хочете використовувати, щоб побачити список можливих телефонів, виконайте:
Після того як ви вирішили назву пристрою, який ви хочете використовувати, вам потрібно вирішити, яке зображення Android ви хочете запустити на цьому пристрої.
Ви можете переглянути всі варіанти за допомогою sdkmanager
:
І завантажте той (або всі), які ви хочете використовувати за допомогою:
Після того, як ви завантажили образ Android, який ви хочете використовувати, ви можете переглянути всі завантажені образи Android за допомогою:
На цей момент ви вирішили, який пристрій ви хочете використовувати, і завантажили зображення Android, тому ви можете створити віртуальну машину, використовуючи:
У останній команді я створив ВМ з назвою "AVD9" використовуючи пристрій "Nexus 5X" та зображення Android "system-images;android-28;google_apis;x86_64". Тепер ви можете переглянути список віртуальних машин, які ви створили за допомогою:
Запуск віртуальної машини
Ми вже бачили, як ви можете переглянути створені віртуальні машини, але ви також можете переглянути їх за допомогою:
Ви можете просто запустити будь-яку створену віртуальну машину за допомогою:
Або використовуючи більш розширені опції, ви можете запустити віртуальну машину таким чином:
Опції командного рядка
Проте існує багато різних корисних опцій командного рядка, які можна використовувати для запуску віртуальної машини. Нижче ви можете знайти деякі цікаві опції, але можете знайти повний список тут
Завантаження
-snapshot name
: Запуск знімка віртуальної машини-snapshot-list -snapstorage ~/.android/avd/Nexus_5X_API_23.avd/snapshots-test.img
: Перелік усіх записаних знімків
Мережа
-dns-server 192.0.2.0, 192.0.2.255
: Дозволяє вказати через кому DNS-сервери для віртуальної машини.-http-proxy 192.168.1.12:8080
: Дозволяє вказати HTTP-проксі для використання (дуже корисно для захоплення трафіку за допомогою Burp)-port 5556
: Встановлює номер TCP-порту, який використовується для консолі та adb.-ports 5556,5559
: Встановлює TCP-порти, які використовуються для консолі та adb.-tcpdump /path/dumpfile.cap
: Захоплює весь трафік у файл
Система
-selinux {disabled|permissive}
: Встановлює модуль безпеки Linux у режимі вимкнено або дозволено на операційній системі Linux.-timezone Europe/Paris
: Встановлює часовий пояс для віртуального пристрою-screen {touch(default)|multi-touch|o-touch}
: Встановлює режим емульованого сенсорного екрану.-writable-system
: Використовуйте цю опцію, щоб мати записний образ системи під час сеансу емуляції. Вам також потрібно буде виконатиadb root; adb remount
. Це дуже корисно для встановлення нового сертифіката в системі.
Отримання root-доступу до пристрою Play Store
Якщо ви завантажили пристрій з Play Store, ви не зможете отримати root-доступ безпосередньо, і ви отримаєте це повідомлення про помилку
Використовуючи rootAVD з Magisk мені вдалося отримати root-доступ (див. наприклад це відео або це).
Встановлення сертифікату Burp
Перевірте наступну сторінку, щоб дізнатися, як встановити власний сертифікат CA:
Приємні опції AVD
Зробити знімок
Ви можете використовувати GUI, щоб зробити знімок віртуальної машини у будь-який момент:
Last updated