Инженер Canonical Саймон Фелс объявил о выходе Open Source-инструмента Anbox, служащего для запуска софта на базе Android на Ubuntu и других Linux-дистрибутивах. Что примечательно, приложения запускаются не в режиме эмуляции. Как пишет ZDNet, вместо него Anbox использует пространства имен — они запускаются в контейнерной среде и на том же ядре, на каком работает сама операционная система. Таким образом, в отличие от существующих эмуляторов, работа Android-приложений в Anbox осуществляется в нативной среде.

По словам Фелса, проект Anbox стартовал ещё в 2015 г. Замысел состоял в том, чтобы «поместить Android в простой LXC-контейнер и состыковать его с соответствующими частями гостевой ОС, не позволяя последней получить доступ к оборудованию или данным пользователя». Разработка Anbox находится на стадии пре-альфа, поэтому его работа на Ubuntu или Debian может быть нестабильной.

Разработчик подчеркивает, что для работы инструмента следует применять дистрибутивы с поддержкой snap. Об еще одном ограничении сообщается в руководстве пользователя Anbox: Android-приложения, которым требуется сопряжение по Wi-Fi, Bluetooth или доступ к другим аппаратным средствам, в текущей версии Anbox работать не будут.

«Anbox — это ещё сырой продукт, поэтому неизбежны поломки и вылеты, к тому же его работа может быть нестабильной. В следующей фазе разработки мы сфокусируемся на последнем компоненте, но помимо этого устраним некоторые недочеты и добавим необходимые функции для более тесной интеграции с гостевой системой», — сообщил Фелс.

Тем временем издание OMGUbuntu протестировало работу Anbox. Тестировщики сообщили, что из-за требований Google инсталляция приложений Android в Anbox через Google Play невозможна, подобные сложности возникают и при установке из сторонних магазинов приложений типа F-Droid. К слову, разработчики отметили этот момент в руководстве пользователя, добавив, что у них не было намерений включать в Anbox поддержку Google Play. Они всё же не исключают, что в будущих версиях появится простой способ установки Android-софта. Пока что эти ограничения можно обойти при помощи инструмента Android Debug Bridge (adb) и командной строки.

Несмотря на то, что Canonical решила отказаться от развития мобильной системы Ubuntu Touch, на руках пользователей имеется немалое количество устройств с ней. Руководствуясь этими соображениями, разработчики решили добавить в неё поддержку Anbox. Этим же могут похвастаться Sailfish OS и Lune OS. Первоначальный концепт псевдо-эмулятора разрабатывался для Ubuntu Touch — в этом можно убедиться, перейдя на страницу Anbox на GitHub.

Что касается других деталей проекта, Фелс отметил схожесть методик работы Android-приложений в Anbox и Google Chrome OS. «Наши подходы очень похожи: и Google, и мы используем пространства имен Linux и — чтобы обеспечить связь с хост-системой — укладываем Android в облегченный системный контейнер», — пояснил он. В отличие от Google, Anbox запрещает прямой доступ к аппаратным схемам устройств. К примеру, для поддержки OpenGL ES он использует компоненты кода из реализации эмулятора Android для сериализации потока команд и отправки их хосту. В Chrome OS всё обстоит по-другому: для ускорения рендеринга контейнер подключается к принимающей части гостевого ядра графической подсистемы. Фелс отметил, что Anbox лишился аппаратной привязки из-за того, что разработчики портировали его на другие платформы.

«Должный уровень совместимости гостевой операционной системы с графическим ядром обеспечивает драйвер Open GL/Open GL ES. Совместное подключение контейнерного окружения и гостевой системы к модулям типа Wi-Fi или Bluetooth в будущих версиях Anbox будет осуществляться через специальный API», — сообщил он.