Використовуйте a віртуальна машина на мобільному пристрої Android Це більше не є чимось, що зарезервовано лише для системних гіків або висококваліфікованих розробників. Між такими програмами, як VMOS, рішення на базі QEMU або лімб А завдяки офіційному емулятору Google це цілком можливо вже сьогодні. інша операційна система, що працює всередині вашого смартфона, з більшим чи меншим комфортом залежно від того, що ви хочете зробити.
Однак не всі варіанти підходять для однієї мети, і не всі телефони витримують однакову кількість заряду. У цьому посібнику ви побачите Які типи віртуальних машин можна використовувати на Android?Наскільки добре вони працюють на практиці, для чого вони корисні (а для чого ні), які вимоги вам потрібні, а також зворотний процес: Встановлення Android як віртуальної машини у VMware або VirtualBox для розробки та тестування.
Що ж таке віртуальна машина в Android?
Коли ми говоримо про віртуальну машину (ВМ) в Android, ми маємо на увазі повноцінна операційна система, яка працює всередині програмиізольовано від основної системи Android. Це схоже на те, що ви робите на ПК з VMware або VirtualBox: мобільний пристрій виступає в ролі хоста, а всередині ви запускаєте іншу гостьову систему (інший Android, дистрибутив Linux, Windows ARM тощо).
Цей підхід відрізняється від таких речей, як створення другий користувач або приватний простір на телефоні. Ці окремі профілі використовують одне й те саме ядро та частину системного стеку, тоді як віртуальна машина емулює власне середовище, з його віртуальним сховищем, процесом завантаження, керуванням пам'яттю та, певною мірою, власною імітованою конфігурацією обладнання.
Завдяки такій інкапсуляції віртуальна машина виконує обидві функції пісочниця або пісочниця для підозрілих програм, таких як для розробки, використання двох облікових записів однієї програми або запуску систем, які мобільний телефон за замовчуванням не міг завантажити в рідному режимі.
VMOS: Android всередині Android з повною ізоляцією
Одне з найпопулярніших рішень для ведення Віртуальна машина Android на Android Це VMOS. Це програма, яка після встановлення завантажує прошивку Android (зазвичай на базі Lollipop 5.1 або новіших версій, залежно від видання) та запускає її так, ніби вона... повністю незалежний телефон у вашому.
VMOS пропонує ізольоване середовище, в якому Жодна встановлена вами програма не вплине на роботу системи.Це означає, що якщо ви встановите шкідливе програмне забезпечення, спробуєте програми з сумнівних джерел або експериментуватимете з незвичайними конфігураціями, пошкодження залишаться у віртуальній машині. Її творці наполягають на тому, що навіть вірус не повинен мати змоги втекти з фізичного телефону, тому він служить додатковим рівнем захисту. Безпека та захист ваших персональних даних.
Основна увага приділяється досвідченим користувачам та розробникам, яким потрібно незалежне середовище для тестуванняЦе також чудово підходить для тих, хто шукає приватний простір для зберігання фотографій, файлів або облікових записів, які вони не хочуть змішувати зі своїм основним профілем, оскільки VMOS дозволяє шифрувати та ізолювати файли у віртуальній машині.
Ще один цікавий момент полягає в тому, що VMOS підтримує кілька віртуальних машин паралельноНаприклад, ви можете мати «чистий» Android для роботи, інший для тестування з root-доступом і ще один для ігор у фоновому режимі, всі вони працюють одночасно на мобільному пристрої, якщо обладнання це підтримує.
Ключові функції VMOS: що ви можете зробити на практиці
За концепцією «Android в Android» стоїть низка функцій, які роблять VMOS особливо... універсальнийЗагалом, ця програма дозволяє вам:
1. Безпека та ізоляція Завдяки віртуальній системі, повністю відокремленій від фактичного телефону, вона ідеально підходить для розробка, тестування додатків та аналіз потенційно шкідливих файлівзменшення ризику пошкодження вашої основної системи або отримання вірусом доступу до ваших реальних даних.
2. Одночасне виконання кількох віртуальних машинз підтримкою роботи кількох екземплярів у фоновому режимі. Це відкриває можливості для різні профілі використання (робота, відпочинок, тести) працюють паралельно, що досить обмежено в одному фізичному Android.
3. Зручне керування за допомогою плаваючої кнопки Це дозволяє згортати вікно, перемикатися у віконний режим, перемикатися між гостьовою та хостовою системами або активувати режим «Картинка в картинці». Перемикання між середовищами відбувається досить плавно, якщо термінал має достатньо оперативної пам’яті та пристойний процесор.
4. Налаштування внутрішніх параметрів віртуальної машини, такі як роздільна здатність, обсяг виділеної пам'яті або певні властивості імітованого пристрою. Це корисно як для перевірити, як поводиться додаток у різних конфігураціях а також для оптимізації продуктивності на скромніших мобільних телефонах.
5. Передача файлів і програм між фізичним телефоном та віртуальною машиною. Ви можете передавати APK-файли, документи, фотографії або будь-який інший контент з хоста на гостьову машину та навпаки, що значно спрощує використання віртуальної машини як випробувальна лабораторія або сховище даних.
VMOS має офіційний веб-сайт (vmosapp.net) та підтримку електронною поштою, яка допомагає вирішити будь-які питання щодо сумісність пристроїв, проблеми з продуктивністю або певні збої які можуть з'являтися під час запуску певних віртуальних ПЗУ.
Практичне використання Android в Android: root, подвійні облікові записи та інше
Окрім того, як вражаюче це бачити два робочих столи Android, що працюють одночасноСправжній інтерес VMOS полягає в конкретних можливостях використання, які вона пропонує порівняно з мобільним телефоном без віртуалізації:
З одного боку, це дозволяє використовувати два облікові записи одного й того ж додатку Без потреби в зовнішніх клонаторах або спеціальних функціях виробника. Такі додатки, як WhatsApp, Facebook, Instagram або ігри, які дозволяють лише один сеанс одночасно, можуть працювати як на віртуальному, так і на реальному Android, кожен зі своїми власними даними.
Ви також можете зберегти повністю окремий простір для фотографій, документів і контактів. Це схоже на Secure Folders від Samsung або Private Space від Huawei, але з тією перевагою, що це... окрема операційна система з власними програмами та налаштуваннямине просто частковий контейнер у самому Android.
Одна з найпривабливіших функцій для досвідчених користувачів – це можливість увімкнути root-права у віртуальній машині без дотику до основного телефону. З коробки VMOS ROM зазвичай не має root-прав, але опції для розробників включають перемикач під назвою «ROOT», який після перезапуску віртуальної машини встановлює класичний додаток суперкористувача для керування дозволами.
Цей корінь обмежений віртуальним середовищем, тому Це не передбачає втрату гарантії чи розблокування завантажувача мобільного телефону.Він ідеально підходить для тестування програм, що потребують прав суперкористувача, налаштування модулів, автоматизації або системних налаштувань без побоювань блокування вашого фізичного пристрою.
Нарешті, VMOS дозволяє вам піти ігри або ресурсомісткі завдання, що працюють у фоновому режимі всередині віртуальної машини, поки ви використовуєте основний пристрій Android для інших речей. Однак таке використання є досить вимогливим, оскільки пристрій по суті одночасно працює з двома системами, одна з яких емульована.
Продуктивність, дозволи та час завантаження у VMOS
Інший бік медалі полягає в тому, що віртуальна машина такого типу має значні ресурсоємності. У випадку VMOS завантажений ПЗУ зазвичай займає порядку кількох сотень мегабайт (наприклад, урізана версія Android Lollipop 5.1 займає близько 300 МБ), що не є разючим, але помітно на телефонах з невеликим обсягом пам'яті.
El Перше завантаження віртуальної машини може тривати від п'яти до десяти хвилинЗалежно від потужності процесора та швидкості внутрішньої пам’яті пристрою, цей час очікування вперше обмежений; наступні запуски набагато швидші, хоча й ніколи не такі миттєві, як відкриття звичайної програми.
Що стосується продуктивності, слід очікувати певного зниження плинності, оскільки Мобільний телефон одночасно керує двома операційними системамиУ більшості тестів робота була достатньо плавною для використання віртуальної машини, але у важких іграх або програмах, які вимагають багато графічного процесора, ви можете помітити затримку або значне падіння кадрів.
Іншим делікатним моментом є дозволи, які програма запитує для роботиVMOS часто запитує доступ до конфіденційної інформації, такої як IMEI, місцезнаходження, повний обсяг пам’яті або навіть стан телефону. Розробники стверджують, що це необхідно для того, щоб емульована система виглядала більш «реалістичною», але доцільно знати, які дозволи ви надаєте, перш ніж натискати «Прийняти».
Тому, хоча VMOS є дуже потужним інструментом, рекомендується використовувати його в відносно сучасні пристрої з достатньою кількістю оперативної пам'яті та сховищаі з користувачами, які повністю розуміють, що передбачає надання таких розширених дозволів програмі цього типу.
Android 13 та QEMU: Windows 11, ARM та Linux як віртуальні машини на мобільних пристроях

З появою Android 13, Google представила внутрішні системні покращення, які значно полегшують віртуалізація повних операційних систем завдяки використанню апаратного забезпечення ARM мобільних пристроїв. Це дозволило передовим розробникам, використовуючи QEMU та інші інструменти, запускати такі вимогливі системи, як windows 11 arm на сучасному телефоні Android.
Один із широко обговорюваних випадків був випадок розробника, якому вдалося Як завантажити Windows 11 ARM на Google Pixel 6 використовуючи першу версію Developer Preview Android 13. Навіть попри те, що графічний процесор працював без вбудованого графічного прискорення (тобто без апаратної підтримки візуальної частини), система виявилася, за їхніми власними словами, «дійсно придатною для використання».
Демонстраційні відео показали, як Windows запуститься, що дозволить вам увійти в систему та запустити типові програми....з напрочуд плавною продуктивністю, враховуючи обмеження. Він навіть дозволяв запускати Doom всередині віртуальної машини, що майже обов'язково в будь-якому експерименті такого роду.
Той самий механізм віртуалізації можна застосувати до Дистрибутиви Linux для архітектури ARMЗгідно з цими тестами, багато дистрибутивів працюють з «майже ідентичною рідною» продуктивністю, принаймні в консольному режимі, що відкриває цікаві можливості для розробників, системних адміністраторів або допитливих користувачів, які хочуть мати повноцінне середовище Linux у своїй кишені.
Якщо цю можливість поєднати з док-станцією або адаптером, який дозволяє підключати мобільний телефон до зовнішній монітор, клавіатура та мишаВи можете уявити собі сценарії, де ваш смартфон поводиться практично як настільний ПК, на якому працює Windows 11 ARM або Linux у великих масштабах, але при цьому він залишається телефоном після вимкнення.
Інші способи «віртуалізації» програм на Android: ізольовані простори та пісочниці
Окрім VMOS та «чистих» віртуальних машин на базі QEMU, Android пропонує легші рішення, які частково наближаються до концепції віртуалізації. Це програми або функції, які дозволяють запускати програмне забезпечення в ізольованому або клонованому середовищі, не будучи повністю окремою операційною системою.
Простий варіант — створити інший користувач або профіль вакансії в самій системі. Android підтримує кілька профілів користувачів на багатьох пристроях, хоча й з різними обмеженнями виробника. Це дозволяє встановлювати програми лише на цей профіль користувача, з його власними даними, але використовуючи ядро та більшу частину системи спільно з основним профілем.
Також існують програми типу «пісочниці», які поводяться так контейнери для запуску APK-файлів «віртуальним» способомВони використовуються для тестування програм, запобігання прямому доступу програми до решти системи або проведення кількох сеансів одного й того ж інструменту, і все це без запуску повноцінної віртуальної машини.
Ці альтернативи споживають менше ресурсів, ніж повноцінна віртуальна машина, і підходять для тих, кому потрібно лише трохи ізоляції або дублювання деяких конкретних програм не заходячи так далеко, щоб розгортати цілу гостьову операційну систему.
Емулятор Android: Офіційна віртуальна машина для розробки (на ПК)
Якщо ваша головна мета — Розробляти та тестувати додатки для AndroidНайпотужнішим та найгнучкішим варіантом залишається офіційний емулятор Google, Емулятор Androidякий є частиною Android Studio. Тут замість запуску віртуальної машини на мобільному пристрої ви запускаєте її на своєму комп'ютері, але концепція віртуальної машини та сама.
Емулятор Android запускає так званий Віртуальний пристрій Android або AVD (віртуальний пристрій Android)Кожен AVD містить повний стек програмного забезпечення Android (ядро, фреймворк, системні програми) та поводиться так, ніби це фізичний пристрій, з власною роздільною здатністю, обсягом оперативної пам'яті, версією Android та навіть імітацією датчиків.
Перший крок до використання користувацьких образів в емуляторі включає Завантажте вихідний код Android та підготувати середовище збірки. Це включає створення каталогу для проекту, ініціалізацію репозиторію та синхронізацію всіх необхідних гілок, що зазвичай робиться за допомогою команд `repo init` та `repo sync` у дереві AOSP.
Як тільки ви отримаєте код, ви зможете компілювати образ системи для певного AVDНаприклад, для 64-бітного x86 AVD зазвичай завантажують скрипти середовища, вибирають ціль, таку як sdk_phone_x86_64, використовуючи `lunch`, а потім запускають компіляцію за допомогою `make`, використовуючи кілька потоків. Процес може зайняти значний час залежно від обчислювальної потужності машини.
Після завершення компіляції просто запустіть емулятор відповідною командою (емулятор) для Користувацький образ працюватиме в емуляторі Androidщо дозволяє тестувати ваші програми в середовищі, практично ідентичному фізичному пристрою, але з додатковими інструментами для налагодження.
Діліться власними AVD-зображеннями з іншими користувачами
У бізнес-середовищі або великих командах розробників цього зазвичай бажають кілька людей використовують один і той самий образ системи Android у своїх емуляторах, щоб гарантувати, що всі тестують та налагоджують систему в однаковому середовищі.
Для досягнення цього AOSP дозволяє генерувати спеціальні пакети, такі як sdk та sdk_repo. У новіших версіях (Android 13 та вище) використовується завдання під назвою emu_img_zip, яке Упакуйте образ системи AVD у стиснутий файл з назвою типу sdk-repo-linux-system-images-eng..zip.
У попередніх версіях (Android 12 та раніші версії) використовується команда `make sdk sdk_repo`, яка генерує як zip-файл зображення, так і XML-файл (repo-sys-img.xml) у вихідному шляху SDK. Цей XML описує сховище зображень і його можна змінити для вказувати на URL-адресу, з якої інші розробники завантажуватимуть їх.
Наступний крок – розмістити zip-файл (і, якщо можливо, XML) на доступному сервері та Налаштування власного сайту оновлень в Android StudioТаким чином, SDK Manager виявляє власний образ системи та відображає його поряд з іншими доступними офіційними образами.
Звідти кожен розробник може створити новий AVD, вибравши це зображеннящоб усі працювали в одному віртуальному середовищі без необхідності самостійно компілювати AOSP, що заощадить багато часу та головного болю.
Підтримка кількох екранів в емуляторі
Android 10 приніс значні покращення в багатоекранний режим та сценарії робочого столуЦе дуже актуально в контексті того, що починають з'являтися складні телефони, пристрої із зовнішніми екранами та режими, подібні до "ПК", під час підключення мобільного телефону до монітора.
Емулятор Android включає можливість імітувати кілька екранів на одному AVDщо дозволяє розробникам тестувати поведінку їхнього застосунку під час перетягування на другий віртуальний монітор, розгортання до додаткової області або динамічної зміни орієнтації та розміру.
Щоб увімкнути цю підтримку в користувацькій збірці, необхідно включити певні бібліотеки та пакети, пов'язані з постачальником мультидисплеїв, до файлів продукту, такі як нативні бібліотеки libemulator_multidisplay_jni (у 32- та 64-розрядних версіях) та MultiDisplayProvider apk у розділі /system/priv-app.
Крім того, ви повинні активувати певний прапорець функції у файлі розширеної конфігурації (advancedFeatures.ini), зазвичай з рядком типу MultiDisplay = on. Завдяки цьому емулятор розуміє, що зображення підтримує кілька дисплеїв, і пропонує відповідні елементи керування.
Таким чином, ви можете перевірити, як додаток реагує на зміна розміру вікон, перемикання активного екрана, презентації на другому моніторі та інші сценарії, які було б набагато складнішими або дорожчими для відтворення на одному фізичному мобільному пристрої.
Встановлення Android як віртуальної машини у VMware та VirtualBox
Інша сторона медалі, дуже корисна, якщо ви інтенсивно програмуєте або тестуєте, полягає в тому, що Встановлення Android як гостьової операційної системи на віртуальній машині робочого столу Використання VMware Workstation, VMware Player, ESXi або VirtualBox. Тут хостом є ваш ПК або сервер, а Android виступає в ролі гостя.
Такий підхід має очевидні переваги: ви можете створювати знімки, клонувати віртуальні машини, робити повні резервні копії, мігрувати віртуальні машини між хостами та, загалом, обробляти Android як будь-яку іншу лабораторну або виробничу віртуальну машину, з усією гнучкістю, яку пропонують гіпервізори VMware або VirtualBox.
Щоб налаштувати це середовище, зазвичай потрібно завантажити зображення Android-x86 або подібний, підготовлений для архітектури x86-64 замість ARM. Хоча більшість мобільних телефонів використовують ARM або ARM64, існують спеціальні збірки для роботи на ПК з настільними процесорами, які краще підходять для типового обладнання сервера або ноутбука.
У сценарії з ESXi 6.5, керованим vCenter, процес відбувається так завантажте ISO-образ Android до сховища даних На хості створіть нову віртуальну машину, вказавши Linux як сімейство гостьових систем (наприклад, "Ще одна 64-розрядна версія Linux 3.xo пізніше"), та налаштуйте ресурси: 1 віртуальний процесор, 2 ГБ оперативної пам'яті та віртуальний диск обсягом близько 8 ГБ або більше зазвичай достатньо для базового тестування.
Під час роботи майстра створення віртуальної машини віртуальний привід CD/DVD пов’язується з ISO-файл встановлення Android, вибравши опцію підключення під час увімкнення, щоб машина запускалася безпосередньо з інструкцій з встановлення після ввімкнення.
Покроковий процес встановлення Android на VMware
Після створення та завантаження віртуальної машини з ISO-образу Android-x86, інсталятор пропонує варіант типу «Встановлення – Встановлення Android-x86 на жорсткий диск» який потрібно вибрати, щоб розпочати процес встановлення на віртуальний диск.
Наступний крок — керувати розділи віртуального дискаЗазвичай використовується інструмент на кшталт cfdisk, з якого створюється новий первинний розділ, що займає весь простір 8 ГБ, позначається як завантажувальний, а зміни записуються на диск, підтверджуючи відповідь «так» після появи запиту.
Після виходу з утиліти розділення, інсталятор виявляє щойно створений розділ (наприклад, sda1) та дозволяє вам вибрати його. формат з файловою системою ext4Також бажано погодитися з встановленням менеджера завантаження GRUB та можливістю монтування каталогу /system у режимі читання-запису, щоб мати більшу гнучкість під час модифікації системи.
В кінці асистент вказує, що Android-x86 успішно встановлено і пропонує перезавантажити віртуальну машину. Це відобразить меню GRUB з різними варіантами завантаження для щойно встановленої системи.
У деяких випадках Android не завершує завантаження належним чином зі стандартною конфігурацією та залишає просте запитання. Типове рішення включає редагування вибраного запису завантаження (за допомогою клавіші «e» в GRUB) та замініть параметр quiet на nomodeset xforcevesa у рядку ядра, щоб команда включала ці прапорці для примусового використання сумісного відеорежиму.
Постійне налаштування GRUB та перші кроки у віртуальній машині Android
Після зміни параметрів завантаження та успішного завантаження Android ви побачите графічний інтерфейс системи і майстер початкового налаштування: вибір мови, мережевого підключення, облікового запису Google, дати та часу тощо, як на телефоні чи планшеті, хоча тут обладнання віртуалізоване.
Одним із цікавих моментів є виявлення мережі. Android розроблений для мобільних телефонів без порту Ethernet, тому під час роботи у віртуальній машині система, як правило, очікує мереж Wi-Fi. У середовищі VMware мережа часто відображається під назвою VirtWiFi, яка... Це відображає підключення віртуального адаптера Ethernet. до фактичної мережі хоста.
Якщо вам потрібен справжній Wi-Fi, є варіант підключити бездротовий USB-адаптер безпосередньо до віртуальної машини виконання наскрізного доступу з гіпервізора, подібно до того, що робиться в середовищах з Kali Linux або іншими дистрибутивами, орієнтованими на аудит.
Після того, як все налаштовано, Android завантажиться на головний екран. На цьому етапі бажано... зробити зміни постійними в GRUB Щоб уникнути необхідності щоразу вручну редагувати параметри, ви можете переключитися в текстову консоль за допомогою комбінації клавіш (Alt+F1) та виконати команди для монтування диска, що містить конфігурацію завантажувача.
Типова процедура включає створення каталогу монтування (наприклад, /mnt/sda), монтування туди розділу sda1, а потім Відредагуйте файл конфігурації GRUB menu.lst за допомогою текстового редактора, такого як vi, назавжди замінивши quiet на nomodeset xforcevesa у першому записі завантаження.
Після збереження змін та перезавантаження віртуальна машина Android повинна Правильний запуск без ручного втручанняЗвідти ви можете налаштувати такі речі, як час очікування екрана в Налаштуваннях > Дисплей > Сон, увімкнути 3D-прискорення в налаштуваннях віртуальної машини гіпервізора (якщо доступно) або підготувати знімки перед встановленням програм і запуском експериментів.
Віртуалізуйте Linux на Android за допомогою Limbo та інших інструментів
Окрім запуску Android всередині Android або Android на ПК, також можливо запускати повні дистрибутиви Linux як віртуальні машини на самому мобільному пристроїОдним із найвідоміших застосунків для цього є Limbo, інтерфейс для QEMU, адаптований для Android.
Основний робочий процес з Limbo складається з Встановіть програму, завантажте ISO-образ дистрибутива Linux, який ви хочете віртуалізувати (чим легший, тим краще) та створіть нову машину, вибравши цей ISO як завантажувальний носій. Наприклад, дистрибутив на кшталт Damn Small Linux (DSL), який важить ледве 50 МБ, чудово підходить для цих експериментів.
З інтерфейсу Limbo ви можете визначити такі параметри, як обсяг виділеної оперативної пам'яті, тип емульованого процесора, розмір віртуального диска та інші опції QEMU, адаптуючи їх до того, що підтримує ваш телефон, не перебільшуючи. Скромне обладнання вимагатиме дуже обмежених налаштувань.
Результат - a повний термінал Linux, що працює як гость В Android він ідеально підходить для запуску скриптів, інструментів адміністрування, компіляції невеликих утиліт або практики в середовищі, подібному до ПК, але з власного смартфона.
Однак важливо розуміти, що емуляція процесора та повне графічне середовище можуть мати проблеми на багатьох мобільних пристроях, особливо якщо дистрибутив не дуже оптимізований або якщо ви маєте намір запускати ресурсомісткі середовища робочого столу. Головне — вибрати легкі образи та припускати, що продуктивність буде обмежена порівняно зі справжнім ПК.
Сучасна екосистема пропонує дуже широкий спектр способів використання Віртуальні машини, пов'язані з AndroidВід наявності ще одного пристрою Android у вашому телефоні з VMOS та root-доступом до запуску дистрибутивів Windows 11 ARM або Linux на потужних телефонах Android 13, професійного використання офіційного емулятора на ПК або встановлення Android-x86 у VMware та VirtualBox. Кожен варіант має свої переваги, недоліки та вимоги, але всі вони мають одну основну ідею: використання віртуалізації для експериментів, розробки та розділення середовищ без ризику для вашої основної системи.