Как запускать приложения Android в Linux с Anbox

Как запускать приложения Android в Linux с Anbox

 

Наличие универсального магазина, в котором есть большинство продуктов, которые вы ищете, сэкономит вам много времени, времени и обеспечит хорошее чувство удобства. Вы знаете историю. Вы можете выбрать и купить большую часть, если не все, из того, что привело вас в магазин. Это может показаться неправдоподобным, но приведенный пример можно применить к вашей операционной системе Linux. Как? Вы можете спросить. Ну, а как насчет того, чтобы все ваши Android-приложения были в одном комплекте с вашими любимыми настольными приложениями? Это может быть потрясающе, по крайней мере, для меня.

Инструмент с открытым исходным кодом, известный как Anbox, может сделать эту возможность реальностью. Anbox помещает операционную систему Android в контейнер, абстрагирует доступ к оборудованию и интегрирует основные системные службы в систему GNU / Linux. Каждое приложение Android будет интегрировано с вашей операционной системой, как и любое другое собственное приложение.

Anbox использует стандартные технологии Linux, такие как контейнеры (LXC), для отделения операционной системы Android от хоста. Любая версия Android подходит для этого подхода и пытается не отставать от последней доступной версии из Android Open Source Project. Источник: сайт Anbox

Особенности Anbox

  • Открытый исходный код: весь исходный код доступен и лицензирован в соответствии с условиями лицензии Apache и GPLv3.
  • Без ограничений: поскольку Anbox работает под управлением всей системы Android, концептуально может работать любое приложение.
  • Безопасность: Anbox помещает приложения Android в плотно закрытый ящик без прямого доступа к оборудованию или вашим данным.
  • Производительность: работает под управлением Android без аппаратной виртуализации и легко переключает функции аппаратного ускорения.
  • Интегрирован: Тесно интегрирован с операционной системой хоста, предлагая богатый набор функций.
  • Конвергентный: Anbox масштабируется в разных форм-факторах, как и Android. Работает как на ноутбуке, так и на мобильном телефоне.

Установка Anbox

Чтобы установить Anbox, ваша система должна поддерживать снимки. Чтобы быстро освоить снимки, перейдите на сайт snapcraft.io, где вы узнаете, что такое привязки, как их устанавливать и поддерживать в своем дистрибутиве, а также как их использовать.

Мы собираемся выполнить два шага, а именно:

  • Установка необходимых модулей ядра (ashmem и binder)
  • Установка оснастки Anbox

В этом примере мы собираемся установить Anbox на настольную версию Ubuntu 20.04 (Focal Fossa).

Шаг 1. Обновите и установите необходимые инструменты

Оказавшись в терминале вашего свежего рабочего стола Ubuntu, обновите его и установите необходимые инструменты, которые мы будем использовать в процессе установки.

sudo apt update && sudo apt upgrade
sudo apt install android-tools-adb git curl unzip -y

Шаг 2: Установка модуля ядра ashmem и binder

Нам нужно, чтобы в нашей системе были установлены dkms и linux-headers, после чего мы приступим к клонированию модулей из Git и их установке. Пожалуйста, продолжайте.

sudo apt install dkms
sudo apt install linux-headers-generic
cd ~
git clone https://github.com/anbox/anbox-modules.git

Установите файлы конфигурации:

cd ~/anbox-modules
sudo cp anbox.conf /etc/modules-load.d/
sudo cp 99-anbox.rules /lib/udev/rules.d/

Затем скопируйте источники модуля в /usr/src/:

sudo cp -rT ashmem /usr/src/anbox-ashmem-1
sudo cp -rT binder /usr/src/anbox-binder-1

Наконец, используйте dkms для сборки и установки:

sudo dkms install anbox-ashmem/1
sudo dkms install anbox-binder/1
sudo apt install software-properties-common
sudo add-apt-repository ppa:morphis/anbox-support
sudo apt update
sudo apt install linux-headers-generic anbox-modules-dkms

Чтобы получить модули ядра Anbox для других дистрибутивов, пожалуйста, посетите страницу GitHub Модули ядра Anbox.

Модули ядра anbox теперь установлены, но мы не останавливаемся на достигнутом. Затем нам нужно вручную загрузить модули ядра, и не волнуйтесь, при следующем запуске вашей системы они будут загружены автоматически.

sudo modprobe ashmem_linux
sudo modprobe binder_linux

Подтвердите, что у вас есть два новых модуля в ваших системах, используя любой из трех способов, как показано ниже.

$ lsmod | grep -e ashmem_linux -e binder_linux

## You should see an output like:
binder_linux          110592  0
ashmem_linux           16384  0

$ ls -alh /dev/binder /dev/ashmem

## You should see an output like:
crw------- 1 root root  10, 58 Aug  3 21:43 /dev/ashmem
crw------- 1 root root 511,  0 Aug  3 21:43 /dev/binder

$ ls -1 /dev/{ashmem,binder}

## You should see an output like:
/dev/ashmem
/dev/binder

Шаг 3. Установка anbox

На этом этапе мы собираемся установить привязку Anbox из магазина, и она предоставит вам все необходимое для полноценного использования Anbox. Позвольте вам установить его, выполнив команду ниже:

$ sudo snap install --devmode --beta anbox

Download snap "anbox" (186) from channel "beta"                                                                       35% 1.42MB/s 2m59s

Дайте вышеуказанной команде время для ее выполнения, прежде чем мы начнем пользоваться нашими Android-приложениями в Linux.

Anbox запускается

Приложения по умолчанию Anbox

На данный момент команда anbox требует использования –devmode, поскольку привязка Anbox еще не полностью ограничена. Началась работа с вышестоящим проектом snapd, чтобы получить поддержку полного конфайнмента. Как побочный эффект использования –devmode, моментальный снимок не будет обновляться автоматически. Для обновления до более новой версии вы можете запустить:

snap refresh --beta --devmode anbox

Шаг 4. Установка приложения Android на Anbox

Anbox не поставляется с Google Play Store из коробки. При этом мы должны найти альтернативные способы установки наших приложений, и один из них — через Android Debug Bridge (ADB). Нам нужен Android Debug Bridge (ADB), чтобы вручную загружать APK-файлы Android в вашу виртуальную установку Android в Anbox. Мы уже установили ADB на шаге 1 .

Кроме того, вы, возможно, уже догадались, что нам нужен еще один магазин приложений для загрузки приложений Android. К счастью, есть и другие магазины, например APKMirror . Посетите сайт в своей Ubuntu 20.04 и загрузите нужное приложение. Также не забудьте выбрать APK-файл x86. Это потому, что вы эмулируете Android на обычном 64-битном процессоре, а не на ARM.

tech@linux::~/Downloads$ ls
'com.whatsapp_2.20.195.17-204517002_minAPI15(x86)(nodpi)_apkmirror.com.apk'

Запустите adb, потому что он обычно выключен по умолчанию, выполнив команду ниже.

$ adb devices

List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
emulator-5558    attached

Установить приложение

adb install com.whatsapp_2.20.195.17-204517002_minAPI15\(x86\)\(nodpi\)_apkmirror.com.apk 
Success

Подтвердите, что приложение было успешно установлено в Anbox.

Заключение

Anbox — это растущее приложение, и оно может работать не так идеально, как вы ожидаете. Некоторые приложения ломаются, а другие работают нормально. Попробуйте, поговорите с командой Anbox на Git и получайте удовольствие, исследуя то, что он может предложить. Мы ценим, что вы были рядом и оставались до конца. Вы можете проверить другие статьи ниже.