Установка Anbox и запуск программ для Android в Linux
Оригинал: How To Install Anbox and Run Android Apps In Linux
Автор: Nick Congleton
Дата публикации: 4 февраля 2019 года
Перевод: А. Кривошей
Дата перевода: апрель 2019 г.
Anbox — это достаточно новый инструмент, который действует как прослойка между вашим дистрибутивом Linux и нативными приложениями для Android. Он позволяет вам использовать многие приложения, как если бы они работали на вашем компьютере. Хотя Anbox все еще находится в стадии разработки, вы можете начать работу с ним прямо сейчас и попробовать некоторые из ваших любимых приложений для Android.
Установка Anbox
Anbox приобрел некоторую популярность в основных дистрибутивах Linux. В результате вы можете найти его в некоторых репозиториях. Тем не менее, самым простым способом являются snaps. Оцените имеющиеся варианты и выберите наиболее подходящий для вас.
Установка Anbox в Ubuntu или Debian:
Anbox недавно был добавлен в репозитории Ubuntu и Debian. Если вы используете Debian Buster или Ubuntu Cosmic, у вас будет доступ к Anbox с помощью Apt. В противном случае перейдите к разделу snap.
Заголовки разделов
Установка Anbox в Arch Linux:
Anbox доступен в AUR. Вы можете установить его вручную или с помощью AUR helper.
С AUR helper процесс значительно упрощается.
Установка Anbox с помощью Snap
Snaps по-прежнему являются предпочтительным способом установки Anbox, и они являются единственным реальным вариантом в большинстве дистрибутивов. Убедитесь, что в вашей системе установлен и запущен snapd, и выполните следующую команду:
Вам, вероятно, придется перезагрузиться, чтобы заставить Anbox работать. Потребуется загрузить несколько модулей ядра.
Установка ADB
Вы можете запустить Anbox прямо сейчас, но инструменты, которые идут с ним, довольно ограничены. К сожалению, Google Play Store не является одним из таких инструментов. В результате вам понадобится Android Debug Bridge (ADB), чтобы вручную загружать APK-файлы Android в вашу виртуальную установку Android в Anbox. Эти инструменты легко доступны в большинстве дистрибутивов, поэтому вам не составит труда их получить.
Установка ADB в Ubuntu и Debian
Google разработал эти инструменты для Ubuntu, поэтому их очень легко установить в Ubuntu и Debian.
Установка ADB в Fedora
Инструменты для Android также несложно установить в Fedora. Они доступны в репозитории по умолчанию.
Установка ADB в Arch Linux
Arch Linux также имеет эти инструменты в репозиториях.
Установка приложений в Anbox
Хотя вы не можете использовать Play Store для загрузки приложений на Anbox, вы можете получить APK-файлы Android с таких сайтов, как APKMirror , и вручную отправить их в Anbox с помощью ADB.
Скачивание APK
Откройте браузер и перейдите в APKMirror. Вы заметите, что справа есть функция поиска. Используйте его для поиска приложения, которое вы хотите попробовать. Не выбирайте ничего, что потребует сервисов Google. Они не будут работать, так как в Anbox отсутствуют сервисы Google Play. Кроме того, не забудьте найти x86 APK. Хотя вы эмулируете Android, вы все еще используете обычный 64-битный процессор, а не ARM.
Подключение к Anbox
Пришло время запустить Anbox. Это графическое приложение, поэтому вы можете найти его в панели запуска приложений. Когда Anbox откроется, вы увидите окно с простым списком приложений Android. Вы можете попробовать щелкнуть по нему, чтобы открыть его. Это все довольно примитивно, но это работает.
Откройте терминал и выполните приведенную ниже команду, чтобы запустить сервер ADB.
Сервер ADB запустится и отобразит Anbox как эмулированное устройство. Теперь вы готовы установить приложение.
Установка приложения
Найдите APK, который вы загрузили. Затем выполните следующую команду, чтобы установить его в Anbox.
Это займет несколько секунд, но когда это будет сделано, ваше приложение появится в списке Anbox. Это может работать, а может и нет. Anbox пока не является идеальным решением для эмуляции.
Заключение
Anbox — отличный способ опробовать приложения для Android на вашем ПК с Linux. Он пока не готов к ежедневному использованию и, конечно, не является системой производственного уровня. Тем не менее, вы можете делать некоторые действительно интересные вещи с Anbox, и он может быть отличным инструментом для разработчиков Android.
Установка anbox в linux mint
Знакомьтесь с Anbox, новым способом запуска Android приложений Linux Decktop.
«Anbox помещает операционную систему Android в контейнер, абстрагирует доступ к оборудованию и интегрирует основные системные службы в систему GNU Linux. Каждое Android-приложение будет функционировать в вашей операционной системе как любое другое собственное приложение,» — говорит команда проекта на своем официальном сайте.
Это видео с Anbox, которое демонстрирует технологию более подробно:
В отличие от аналогичных инициатив, которые обещали позволить пользователям запускать приложения для Android на Linux, Anbox не идет по пути эмулятора. Вместо этого он запускает систему Android на том же ядре, что и операционная система хоста.
Естественно, это не лишено недостатков. Во-первых, для установки Anbox требуется несколько дополнительных модулей ядра, а также необходим доступ с правами root . Это подойдет не всем.
Anbox находится в альфа-версии — это означает, что он может вообще не работать — и вы должны знать, что пока нет удобного способа установки приложений в Anbox. Для установки apk-файлов вам нужно быть знакомым с adb и командной строкой Android.
Интересно, что начальная работа над Anbox была выполнена на телефоне с Ubuntu. Естественно, что с проектом Ubuntu Touch, которым больше не собирается заниматься Canonical, такие инструменты, как Anbox, больше ориентированы на его использование на настольных устройствах.
«Anbox сам по-прежнему находится в состоянии pre-alpha, где ожидаются сбои и нестабильность. Следующая фаза разработки будет посвящена стабильности и исправлению ошибок, а также добавит больше необходимых функций, чтобы лучше интегрироваться с операционной системой хоста », — пишет его разработчик Саймон Фелс в своем блоге.
Установка Anbox (Alpha) на Ubuntu 16.04 LTS.
Чтобы установить Anbox Alpha на Ubuntu 16.04 LTS (эта версия Ubuntu является единственным дистрибутивом для презентации в настоящее время), откройте новый сеанс терминала и выполните следующую команду.
sudo snap install —classic anbox-installer && anbox-installer
Чтобы сообщить о проблемах или принять участие в разработке, перейдите на страницу проекта GitHub .
Anbox позволяет запускать приложения Android на Linux Desktop.
symon2014 писал(а): Чтобы установить Anbox Alpha на Ubuntu 16.04 LTS (эта версия Ubuntu является единственным дистрибутивом для презентации в настоящее время), откройте новый сеанс терминала и выполните следующую команду.
sudo snap install —classic anbox-installer && anbox-installer
Anbox позволяет запускать приложения Android на Linux Desktop.
Anbox позволяет запускать приложения Android на Linux Desktop.
Anbox позволяет запускать приложения Android на Linux Desktop.
Anbox позволяет запускать приложения Android на Linux Desktop.
$ sudo snap install —classic anbox-installer && anbox-installer
[sudo] пароль для v:
error: cannot install «anbox-installer»: snap not found
v@v:
Настраиваем Anbox: как запускать приложения Android в Linux без эмулятора
Содержание статьи
Начнем с того, что Anbox — не эмулятор. Это система запуска полноценной среды Android прямо на текущем ядре Linux с возможностью вывода интерфейса каждого приложения в отдельном окне с поддержкой 3D-ускорения. Нечто вроде Wine, который запускает приложения Windows без необходимости запуска Windows в виртуальной машине, но без присущих Wine глюков и недоработок.
Два главных преимущества Anbox — скорость и бесшовная интеграция с десктопом. Приложения запускаются безо всяких прослоек и эмуляции. А самое главное — они работают быстро. Во второй части мы подробнее рассмотрим, как работает Anbox, а пока установим его и посмотрим, что это такое.
Ставим
В данный момент Anbox поддерживает исключительно процессоры архитектуры x86_64 и дистрибутивы Ubuntu 17.04, 16.10, 16.04, 14.04, а также Linux Mint, Neon и Elementary. Устанавливается либо с помощью самодостаточного пакета формата Snap, либо с помощью скрипта anbox-installer . Но так как оба варианта работают одинаково, а первый менее универсален, рассмотрим только второй.
Ubuntu
Первое, что необходимо сделать, — это загрузить сам скрипт и дать ему права на исполнение:
Далее запускаем скрипт:
Скрипт попросит написать в терминале I AGREE, после чего установит Anbox в систему и предложит перезагрузить машину. После перезагрузки в меню появится пункт Anbox.
Устанавливаем Anbox в Ubuntu
Хакинг для новичков
Arch Linux
Anbox можно запустить не только в официально поддерживаемых дистрибутивах, но и в других линуксах, просто собрав его из исходников. Проще всего это сделать в Arch Linux, так как Anbox уже есть в AUR и весь процесс сборки можно автоматизировать.
Установим парочку необходимых для сборки пакетов:
А затем соберем Anbox из AUR. Лучше сделать это с помощью AUR-клиента, такого как pacaur или yaourt:
Далее загрузим необходимые модули ядра:
Запустим container manager:
Запустим session manager:
Готово. Можно кликать по иконке Anbox на рабочем столе или пойти путем джедая и запустить его прямо из терминала:
Пробуем
Сразу после запуска ты увидишь на экране простейший «менеджер приложений», написанный специально для Anbox. Приложений тут кот наплакал: стандартные галерея, календарь, настройки и прочее, а вот маркета нет. И поэтому первое, о чем ты спросишь: а как ставить софт, братан?
Менеджер приложений
И вот здесь начинается интересное. Разработчики Anbox не имеют права включать в поставку своего неэмулятора маркет и любой другой софт Google, в том числе сервисы Google, пока их «устройство» не пройдет сертификацию. Устройство пройти сертификацию не может — маркета не будет.
Но! В Anbox по умолчанию активирован режим отладки с помощью ADB (который в стандартном Android включается в настройках для разработчиков, куда еще надо добраться), поэтому установить приложение можно с его помощью. Установить сам ADB можно так:
А теперь самое интересное: тебе надо найти и скачать пакет APK нужного приложения. Для этого можно использовать сайт apkpure. Далее остается всего лишь выполнить такую команду (пример для FX File Explorer):
Готово! Ставь приложения, развлекайся, до встречи. Шучу, на самом деле есть множество подводных камней. Например, сразу после установки Anbox я решил протестировать, как в нем работает Opera Mini, тот самый браузер, который умеет быстро отображать странички, даже если интернет до тебя доходит с помощью голубиной почты. Ведь для десктопа его нет.
В результате на экране появилось вот что:
Объяснение этому простое: большая часть кода Opera Mini написана на C++, который скомпилирован в бинарник для платформы ARM. А так как в нашей машине процессор архитектуры x86_64 , Android заботливо прибил приложение еще на этапе установки, чтобы мы не мучились, силясь понять, почему оно не работает.
На самом деле в маркете полно подобных приложений, и с несовместимостями архитектуры ты будешь встречаться довольно-таки часто.
Вторая интересная особенность запуска приложений в отдельных десктопных окнах: далеко не каждое приложение готово смириться с тем, что сейчас его личико будут жестко сжимать или растягивать. Большинство современных приложений в этом случае поведут себя корректно — Google позаботилась об этом, когда готовилась к реализации поддержки плавающих окон в Android 7.0. А вот со старым софтом могут возникнуть сложности, хотя обычно все заканчивается окном фиксированного размера.
Окна можно делать любых размеров и форм
Ну и третье. Anbox, выражаясь языком Шекспира, — это alpha software, то есть ребята нам как бы говорят: все будет плохо и нестабильно, а о таких вещах, как поддержка определения координат, камера и микрофон, ты можешь забыть. Более того, в некоторых случаях ты можешь забыть и об интернете, а session manager будет время от времени падать, и его придется перезапускать.
Зато! Anbox корректно определяет текущий уровень аккумулятора, размер оперативной памяти и даже жесткого диска (точнее, раздела /home ). Да и в целом работает быстро и не вызывает желания его снести. Количество пожираемой оперативки — всего 448 Мбайт при запущенном менеджере приложений.
Приложения видят весь диск
FAQ первопроходца
Как нажать кнопку «Назад» и мотать страницы?
Кнопка «Назад» эмулируется с помощью Esc. Клавиатуру также можно использовать для навигации по приложению (Tab и стрелки). Промотка либо колесиком, либо удержанием левой кнопки мыши и движением вниз-вверх.
Можно ли использовать Anbox для запуска проектов в Android Studio?
Да! Причем никаких дополнительных шагов для этого предпринимать не надо. Достаточно выбрать устройство с именем вида emulator-6663 при запуске проекта.
Можно ли получить доступ к файловой системе работающего Android из Linux?
Да, она находится в каталоге /var/lib/anbox/rootfs, но доступна только для чтения. Зато ты можешь просматривать содержимое приватных каталогов приложений (data/data).
Можно ли установить магазин приложений?
Теоретическая возможность установить Google Play Store существует. Для этого необходимо разобрать образ файловой системы Android и интегрировать в него GApps. Однако гораздо проще установить Yandex.Store или любой другой сторонний маркет. Плюс активировать установку из сторонних источников: Settings → Security → Unknown sources.
Как разобрать образ Android Anbox?
А можно ли использовать другой образ Android, например CyanogenMod?
Нет. Есть две причины, почему это сделать нельзя. Первая — это должна быть сборка Android для x86_64 . Вторая — эта сборка должна включать в себя специфические модификации Anbox.
Чем Anbox отличается от Shashlik
Shashlik запускает каждое приложение в эмуляторе. Другими словами, когда ты кликаешь по иконке приложения, запускается эмулятор, в нем — урезанная среда Android, а уже потом стартует приложение. Anbox гораздо более легковесный и производительный.
Как оно работает
В основе Anbox лежит очень простая идея: если Android — это виртуальная машина, работающая поверх ядра Linux, то почему бы не попробовать запустить приложения Android в окружении обычного дистрибутива Linux. Это очевидная идея, и она приходила в голову многим разработчикам с тех пор, как появился порт Android на x86. Некоторые программисты попытались реализовать ее через размещение окружения Android в chroot, но дальше полурабочих концептов дело не доходило (пример: ARC Welder).
У разработчиков Anbox ушло полтора года, чтобы довести проект до конца. Они смогли добиться интеграции приложений Android в десктоп Linux, обеспечить практически полную совместимость, а главное — сделать так, чтобы все это работало быстро, без сбоев и не требовало множества шагов для настройки.
Само окружение Android (на базе свежайшего Android 7.1.1, кстати) здесь замкнуто в песочницу, контролируемую с помощью технологии пространств имен (namespaces), той самой, что лежит в основе Docker. Пространства имен полностью отрезают окружение от среды дистрибутива Linux, а вся работа с оборудованием идет через демон anboxd. Для вывода картинки 3D-приложений используется специальный транслятор OpenGL ES → OpenGL, позаимствованный из официального эмулятора Android.
Ядро Linux также пришлось модифицировать, а точнее добавить в комплект Anbox модули с реализацией binder и ashmem, с помощью которых в Android взаимодействуют компоненты системы (IPC). Перед запуском Anbox загружает модули в ядро и добавляет правило udev для установки корректных прав доступа к устройствам /dev/binder и /dev/ashmem .
Каждое приложение в своем собственном окне Anbox размещает с помощью модифицированного композитного менеджера hwcomposer, который Android использует для наложения графических слоев. Hwcomposer запрашивает все слои каждого приложения и отдает их Anbox, который затем формирует индивидуальные окна для отдельно взятых приложений.
Все эти технические решения позволяют сделать Anbox действительно быстрым, удобным в использовании и эффективным в плане расходования ресурсов «эмулятором». В том числе в 3D-приложениях.
Anbox состоит из двух компонентов: container manager и session manager.
Container manager управляет песочницами с работающим внутри окружением Android. Его задача — корректно запустить систему Android, поддерживать ее работу и корректно завершить.
Session manager, в свою очередь, отвечает за коммуникацию Android внутри песочницы и с основной системой Linux. Его задача — отвечать на запросы запуска приложений и распределять их по разным окнам.
В целом запуск приложения Android с помощью Anbox выглядит так:
- В ядро загружаются модули binder и ashmem.
- Запускается container manager, который разворачивает песочницу с Android внутри.
- Запускается session manager, он запускает среду Android.
- Юзер отдает команду на запуск приложения, которую принимает и обрабатывает session manager.
- Session manager ожидает команды.
Шаги 1–3 подготавливают Anbox и запускаются один раз, обычно при загрузке системы.
Такая архитектура позволяет сделать запуск приложений практически моментальным за счет небольшого (порядка 400 Мбайт) оверхеда по памяти в режиме простоя.
Выводы
Вне всяких сомнений, Anbox заслуживает внимания. Да, у него есть проблемы с совместимостью, он не умеет работать с твоей камерой и микрофоном, он падает. Но это альфа-версия, и для альфы она работает прекрасно.
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.