Google развивает новую систему ARCVM для запуска Android-приложений в Chrome OS

В рамках проекта ARCVM (ARC Virtual Machine) компания Google развивает для Chrome OS новый вариант прослойки для запуска Android-приложений. Ключевым отличием от предлагаемой ныне прослойки ARC++ (Android Runtime for Chrome) является использование полноценной виртуальной машины вместо контейнера. Заложенные в ARCVM технологии уже применяются в подсистеме Crostini для запуска Linux-приложений в Chrome OS.

Вместо контейнера, изолируемого при помощи пространств имён, seccomp, alt syscall, SELinux и cgroups, для выполнения Android-окружения в ARCVM применяется монитор виртуальных машин CrosVM на базе гипервизора KVM и модифицированный на уровне настроек системный образ Termina, включающий урезанное ядро и минимальное системное окружение. Ввод и вывод на экран организован через запуск внутри виртуальной машины промежуточного композитного сервера, пробрасывающим вывод, события ввода и операции с буфером обмена между виртуальным и основным окружением (В ARC++ применялось прямое обращение к слою DRM через Render Node).

В ближайшее время Google не планирует заменять текущую подсистему ARC++ на ARCVM, но в долгосрочной перспективе ARCVM представляет интерес с точки зрения унификации с подсистемой для запуска Linux-приложений и обеспечения более строгой изоляции Android-окружения (в контейнере используется общее с основной системой ядро и остаётся прямой доступ к системным вызовам и интерфейсам ядра, уязвимость в которых может использоваться для компрометации из контейнера всей системы).

Применение ARCVM также даст возможность разрешить пользователям установку произвольных Android-приложений, не ограничиваясь привязкой к каталогу Google Play и не требуя перевода устройства в режим для разработчика (в штатном режиме разрешена установка только выборочных приложений из Google Play). Подобная возможность необходима для организации разработки Android-приложений в Chrome OS. В настоящее время уже имеется возможность установить в Chrome OS среду Android Studio, но для того чтобы тестировать разрабатываемые приложения требуется включение режима для разработчика (Developer Mode).

Источник: opennet.ru