- Виртуализация и эмуляция ОС на Android — OS virtualization and emulation on Android
- СОДЕРЖАНИЕ
- Виртуализация рабочего стола
- Виртуализация платформы
- Эмуляция
- Типы эмуляций
- Эмуляция других операционных систем
- Терминальная эмуляция внутренней операционной системы
- Расширения
- Ограничения
- Улучшения внутренней безопасности ОС
- SELinux
- Использование ADB, PRoot, $ HOME и $ PREFIX
- Сам Android является модифицированным ядром Linux
- Для чего нужна виртуальная машина андроид
Виртуализация и эмуляция ОС на Android — OS virtualization and emulation on Android
На устройствах Android есть возможность запускать виртуальные машины или эмулировать другие операционные системы . Это достигается либо посредством виртуализации рабочего стола , либо виртуализации платформы , либо посредством эмуляции через уровень совместимости .
СОДЕРЖАНИЕ
Виртуализация рабочего стола
Приложения виртуализации настольных компьютеров являются наименее ресурсоемкими и занимают меньше места по сравнению с другими типами виртуализации, поскольку операционная система, отображаемая на устройстве Android, фактически расположена на другом компьютере в локальной сети или в другом месте, например в Интернете. В зависимости от того, как работает приложение виртуализации настольных компьютеров, они используют RDP или могут использовать другой собственный протокол. Большинству бизнес-приложений для виртуализации настольных компьютеров требуются определенные типы оборудования или услуг для полноценной работы приложения. Например, для работы приложения VMware Horizon Client требуется определенное оборудование VMware.
Основным недостатком приложений виртуализации настольных компьютеров по сравнению с другими типами технологий виртуализации или эмуляции является то, что они требуют сетевого подключения к серверу, как указано выше.
Виртуализация платформы
Виртуализация платформы дает разработчику больше возможностей, поскольку все, что связано с гостевой операционной системой, влияет только на гостевую операционную систему, а не на операционную систему хоста. Благодаря этому гостевая операционная система может быть рутирована, в то время как операционная система хоста остается не рутированной. Из-за природы виртуализации платформы и того факта, что она может виртуализировать гостевую ОС с root-доступом, она имеет большее преимущество перед эмуляторами, поскольку может запускать приложения или использовать пакеты, требующие доступа к самой базовой системе.
Как и все программное обеспечение и приложения для виртуализации платформ, они занимают много ресурсов хоста для выполнения виртуализации.
Эмуляция
Типы эмуляций
Эмуляция других операционных систем
Эмуляция других операционных систем на Android требует использования некоторой формы уровня совместимости, где уровень совместимости должен использовать какую-либо форму технологий или API для запуска ОС внутри контейнера приложения. Это имеет ограничения, поскольку некоторые эмуляторы используют PRoot, который является средой, подобной chroot. В отличие от эмуляторов терминала, которые эмулируют внутреннюю ОС с поддержкой пакетов расширения или без нее, он может устанавливать фактические (например) пакеты Ubuntu, поскольку не слишком полагается на системные ограничения Android. Однако не все пакеты и приложения могут работать.
Терминальная эмуляция внутренней операционной системы
Терминальная эмуляция самого устройства Android выполняется либо через фактическую локальную обратную связь с устройством, либо через эмуляцию, которая кажется локальной петлей. Большинство этих эмуляций терминала самого устройства используют библиотеку и функции набора инструментов Toybox собственного терминала , которые поставляются с каждым устройством Android. Однако из-за того, что большинство функций легко доступны без использования уровня совместимости, это означает, что функции Toybox можно использовать только. Для того, чтобы пользователь мог добавить какие-либо другие функции или библиотеки, потребовалось бы, чтобы пользователь рутировал свое собственное устройство и добавлял функции или библиотеки вручную. Некоторые из этих эмуляторов терминала позволяют пользователям неявно вводить команды Toybox, тогда как те, которые не требуют использования «toybox COMMAND».
С улучшениями за счет полуэмуляции
Некоторые эмуляторы терминала, такие как Termux, позволяют пользователям добавлять пакеты. Это делается посредством полуэмуляции другой среды с использованием PRoot и / или Toybox в серверной части. При полуэмуляции некоторые предопределенные портированные пакеты можно использовать и устанавливать без необходимости рутирования устройства, поскольку они не используют системные файлы Android, а находятся и запускаются в собственных контейнерах данных и каталогах приложений. Поскольку Toybox используется в основном в серверной части, это зависит от того, как было разработано приложение, для доступа к Toybox из полуэмулированного расширенного терминала.
Расширения
Многие эмуляторы других ОС позволяют использовать расширения. Помимо использования стандартного SSH , некоторые эмуляторы позволяют использовать такие технологии, как VNC и XSDL . Используя эти расширения, пользователь может запустить эмулируемую / виртуализированную ОС в среде, подобной настольной.
Ограничения
Большинство ограничений наблюдается в приложениях на основе эмуляции, а не в приложениях на основе виртуализации платформы, поскольку приложения эмуляции должны использовать уровень совместимости. Таким образом, чтобы библиотеки и пакеты работали так, как ожидалось, как в реальной ОС, уровень совместимости должен работать должным образом и предоставлять точную информацию. Однако для этого требуется, чтобы уровень совместимости или любое предопределенное программное обеспечение, которое он использует (например, Docker), имело доступ ко многим типам информации, связанной с системой и устройством. Это можно сделать либо с помощью Toybox, либо с помощью языковых библиотек программирования, из которых можно создавать приложения для Android (например, Java , C # ). Однако, начиная с Android 8, на приложения было наложено много новых ограничений безопасности; из-за этих ограничений некоторые библиотеки / классы API больше не доступны или были заменены более ограниченными библиотеками / классами API.
Одно из известных ограничений, которое было реализовано, заключается в том, что приложения могут иметь доступ только к собственному корневому каталогу песочницы или подкаталогам на SD-карте. Приложения, желающие получить доступ к файлам или папкам за пределами SD-карты, должны использовать собственный системный селектор файлов Android. Из-за этого ограничения гостевые ОС, работающие в приложениях эмуляции, виртуализации платформы или совместимости, больше не могут получать доступ к файлам за пределами их собственной изолированной программной среды SD-карты.
Большинство этих ограничений можно обойти путем рутирования устройства Android. Однако использование Linux через использование эмулятора или приложения виртуализации было бы излишним, поскольку можно было бы превратить само устройство в среду Linux.
Улучшения внутренней безопасности ОС
Было замечено, что более современные версии Android имеют больше улучшений внутренней безопасности системы, так что некоторые системные папки и файлы больше не доступны или даже недоступны для просмотра в течение существования этого каталога. Версии Android до 9 позволяли терминальным приложениям просматривать корневой каталог Android «/» (но не разрешали модификации или выполнение).
SELinux
Android использует SELinux ; из-за этого все файлы конфигурации системы не редактируются, а некоторые даже не читаются. Таким образом, приложения могут использовать API Android только для получения информации о конфигурации или настройках устройства или системы. Однако приложениям доступна не вся информация; из-за этого многие уровни совместимости с ОС или приложения-эмуляторы не могут запускать каждый пакет или приложение.
Вот некоторые известные приложения и пакеты, которые не могут быть запущены:
- Udisks2 требует udev, который не работает в большинстве сред уровня совместимости, как указано в подразделе ниже.
- Фырканье
- Открыть vSwitch
- mininet (для запуска требуется открытый vSwitch)
Вот некоторые команды, которые не работают из-за SELinux:
Использование ADB, PRoot, $ HOME и $ PREFIX
Поскольку все приложения Android работают в непривилегированном пространстве контейнера, приложения виртуализации или эмуляции должны использовать собственное пространство приложений для выполнения виртуализации или эмуляции. Это можно сделать либо с помощью ADB, PRroot, либо с использованием $ HOME и $ PREFIX, однако большинство из этих трех используются приложениями эмуляции, поскольку приложения виртуализации платформы обычно используют разные методы. Каждый из них используется для разных целей. ADB используется для эмуляции среды, подобной терминалу, для всей системы Android, но обычно в качестве непривилегированного пользователя. $ HOME и $ PREFIX могут использовать $ HOME как «
» и $ PREFIX для «.». Однако $ HOME нельзя установить вне каталога «/ data / apps data space» в файловой системе Android, а также нельзя переместить $ PREFIX в другое место, например на SD-карту.
Чтобы эмуляторы или уровни совместимости могли эмулировать или виртуализировать ОС на базе Linux на Android, необходимо использовать PRoot . Однако, когда используется PRoot, среда внутри Proot может действовать как Chroot среда, и / или отдельный монтаж среды. В этом сценарии (особенно в случае уровня совместимости и эмулятора для гостевых ОС) есть пакеты и приложения, которые не могут работать, поскольку они никогда не были предназначены для работы в среде, подобной chroot. Некоторые из них являются хорошо известными, известными пакетами, приложениями или командами, включая следующие:
Альтернативы
Из-за проблем с SeLinux и PRoot необходимо использовать альтернативы, и не все неиспользуемые пакеты или приложения имеют альтернативы. Будучи альтернативой, они не обязательно обладают всеми функциями исходных пакетов или приложений. Некоторые из этих альтернатив включают:
Сам Android является модифицированным ядром Linux
Поскольку Android — это модифицированное ядро Linux, не все конфигурационные или системные файлы существуют или одинаковы в Android. Из-за этого приложения для эмуляции должны либо предоставлять свою собственную версию конфигурации, либо системные файлы в пространстве данных приложения, использовать предварительно измененный дистрибутив перенесенных библиотек Linux, которые не требуют использования отсутствующей конфигурации или системных файлов, или не поддерживать использование этих пакетов. Некоторые хорошо известные конфигурационные и системные файлы, которых нет в Android, включают:
Источник
Для чего нужна виртуальная машина андроид
Краткое описание:
Запуск виртуальной машины на базе Android.
VMOS is an APP software based on Virtual Machine (VM). VMOS can be installed in the form of a normal APP to Linux or Android system through VM technology. That is to run another complete Android system through an application Moreover, VMOS is not controlled by the host system. (Android on the phone).
VMOS Features:
— Create a Fake Phone Environment: Use VMOS to create a full virtual Android environment with a working Play store and network connectivity. This virtual Android machine will run Android 5.1.1 and appears as a native OS with full touch control just like you would use on your primary Android system. The Android VM is complete with an app drawer, Google services, and some standard apps like a file manager and internet browser. You can sign in with your gmail account and access the full Play store and download new apps as well.
— Root Support: The virtual machine that you create in VMOS can be rooted without affecting the primary system. This is a good solution for anyone looking to run root apps but don’t have the ability to root their actual phone. This is also an essential feature for developers testing apps. Root access is often required for specific functions of different applications. Now developers can run them without risking corrupting the primary system.
— Multiple Accounts and Apps: With the ability to run two Android systems on one phone, you can use the virtual space to run duplicated apps with different accounts. The VM is a good way to keep your personal apps and accounts separate from your work. Sign in with your personal email, snapchat, twitter ect. on your main system, then put all of your work related accounts on the VM. You can run VMOS in a floating window, making it easy to switch between systems quickly, giving you faster access to duplicated apps.
ПЕРЕД ТЕМ, КАК ЗАДАТЬ ВОПРОС — ПРОЧИТАЙТЕ ШАПКУ!
Если установить образ VMOS выше версии вашего Android на устройстве, то образ не запустится по ограничению ядра.
VMOS Pro не запустится, если в вашем устройстве менее 2ГБ ПЗУ-памяти
Приложение позволяет создать «второе пространство» внутри себя (с приложениями которые вы туда установите), работает одновременно и независимо с другими приложениями пользователя (при достаточном количестве оперативной памяти). Это не эмулятор и в Recovery через программу не войти!
Версии:
Версия PRO имеет Android 7 и поддерживает 64bit arm v8a приложения, возможность иметь несколько разных виртуальных машин и многое другое. Является улучшенной версией старого VMOS.
GL — глобальный релиз программы, имеет английский язык, редко обновляется
CN — китайский билд, имеет китайский язык, часто обновляется, в связи с этим имеет больший функционал в отличии от глобальной
- Нажать на установку в маркете.
- Принудительно закрыть маркет.
- Снова в него зайти.
Если не заработало — попробуйте перезапустить VMOS.
- VMOS вправе работать нестабильно, как и программы в нём. На вашем устройстве теперь работают сразу две системы.
- Если есть проблемы с одной программой/игрой, можно попробовать поменять как и приложение, так и используемый ром.
- Для более-менее стабильной работы VMOS Pro необходимо 2гб+ ОЗУ.
Q. Как работает VMOS?
A. VMOS — это новая и инновационная технология. Он виртуализирует собственную операционную систему Android на вашем телефоне. С VMOS вы можете переключаться между реальной и виртуальной системами в любое время. Данные и приложения хранятся локально.
Q. На какой телефон можно установить приложение?
A. Телефон должен иметь больше 32 ГБ памяти и 3 ГБ оперативной памяти, также телефон должен работать на версии android 5.1 и выше.
Q. Могу ли я клонировать приложение из реальной системы в ВМ?
A. Да. File→Choose APP→Import [Файл -> выбрать приложение -> импорт].
Q. Как дела с быстродействием системы?
A. На самом деле, данное приложение работает быстрее, чем облачные, так как все данные хранятся в локальном хранилище.
Q. Почему VMOS нужен доступ к хранилищу, информации об устройстве, расположению, IMEI и аудио?
A. VMOS требует данные разрешения для лучшего эмулирования системы.
Q. VMOS безопасен для реального устройства?
A. Конечно, реальный телефон и VMOS используют разные операционные системы. Данные из обеих систем не будут мешать друг другу.
Внимание, лайфхак! Если изучить шапку темы, то ты получишь ответ на 99% своих вопросов и проблем!
Источник