Anbox (Русский)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Состояние перевода: На этой странице представлен перевод статьи Anbox. Дата последней синхронизации: 23 октября 2020. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Reason: Многочисленные нарушения правил стилевого оформления, см. Help:Стиль. (Discuss in Talk:Anbox (Русский))

Anbox - это контейнерное ПО для запуска Android на дистрибутивах GNU/Linux.

Установка

Примечание: Модули DKMS больше не работают с версиями ядра Linux 5.7 и выше. (Подробнее об этом: [1])

Вместо этого следуйте инструкции ниже.

Инструкция для старых ядер: Старые ядра.

1. Установите (или соберите) необходимое ядро:

Для запуска Anbox необходимо ядро, в котором активированы определенные настройки.

Есть два варианта:

  • Установить ядро linux-zen (которое теперь включает все необходимые настройки [2]), или

2. Включите binder и ashmem:

Запустите с правами суперпользователя:

$ modprobe binder_linux ashmem_linux

3. Установите Anbox:

Установите anbox-gitAUR.

Установите один из этих образов:

Запустите/включите службу anbox-container-manager.service.

Примечание: Были случаи конфликтующих пакетов при установке anbox-gitAUR.

Поэтому сперва следует установить Android-образ, а затем другие пакеты Anbox.

Тут есть решение часто встречаемой ошибки logger.cpp.

Старые ядра

Примечание: Модули DKMS устарели и потому могут перестать работать в будущих версиях Anbox, поэтому рекомендуется пользоваться методом выше.

На старых версиях ядра (до 5.7) DKMS-модули все еще работают.

1. Установите linux-lts и linux-lts-headers.

Примечание: Пакет модулей DKMS anbox-modules-dkms-git был удален из AUR, поэтому нужно собрать их вручную.

2. Соберите и установите модули DKMS вручную из репозитория GitHub: [3].

3. Установите anbox-gitAUR.

4. Установите один из этих образов:

5. Загрузите модули ядра вручную (опционально):

Можете загрузить DKMS-модули вручную, без перезагрузки компьютера:

$ modprobe ashmem_linux binder_linux

6. Включите следующие службы:

 anbox-container-manager.service

Сеть

systemd-networkd

Пакет anbox-gitAUR использует systemd-networkd чтобы иметь доступ к сети в Anbox. Поэтому нужно включить systemd-networkd или запустить systemd-networkd перед запуском anbox-container-manager.service.

Скрипт anbox-bridge

Альтернативно можете использовать скрипт anbox-bridge из https://raw.githubusercontent.com/anbox/anbox/master/scripts/anbox-bridge.sh

Нужно запускать anbox-bridge каждый раз перед запуском anbox-container-manager.service чтобы добиться работы сети в Anbox.

Простейшим решением в таком случае является создание файла enable-anbox-bridge.conf.

/etc/systemd/system/anbox-container-manager.service.d/enable-anbox-bridge.conf
[Service]
ExecStartPre=/usr/bin/anbox-bridge start
ExecStopPost=/usr/bin/anbox-bridge stop

Использование

После установки вы сможете запускать Android приложения в лаунчере рабочего стола из категории Другое.

Если вы хотите использовать adb для отладки, установите android-tools

$ adb shell

Установка приложений через adb

Если не был выбран образ с houdini, Anbox не будет поддерживает ARM приложения. Поэтому приложения должны иметь архитектуру x86_64.

Чтобы установить /путь/к/приложению.apk

$ adb install /путь/к/приложению.apk

Получить список всех установленных приложений:

$ adb shell pm list packages

Обратите внимание, что вывод будет аналогичен таковому от package:app.name, где app.name отличается от отображаемого в контейнере anbox.

чтобы удалить app.name

$ adb uninstall app.name

Если app.name - системное приложение:

$ adb uninstall --user 0 app.name

Установка приложений через магазины приложений

Приложения можно легко установить через магазины приложений. В anbox-image-gappsAUR включен PlayStore.

Советы и рекомендации

Пересборка ядра с необходимыми настройками

Если вы не хотите использовать ядро linux-zen, можно пересобрать ядро:

Примечание: Пересборка ядра может занять очень много времени!

1. Постройте ядро с этими настройками:

config
CONFIG_ASHMEM=y 
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"

2. Перезагрузитесь в новое ядро.

3. Активируйте binder:

Примечание: Этот шаг может быть необязателен. Обсуждение в Talk:Anbox.
# mkdir /dev/binderfs
# mount -t binder binder /dev/binderfs

Решение проблем

Если возникнут проблемы, посмотрите официальный Трекер Проблем: https://github.com/anbox/anbox/issues

Старые процессоры

Некоторые старые процессоры не поддерживают SSE 4.1/4.2 и SSSE 3, необходимый для Anbox, поэтому на таких процессорах,скорее всего, Anbox работать не будет. [4].

Ошибка SecureBoot

Если появляется ошибка:

 modprobe: ERROR: could not insert 'ashmem_linux': Operation not permitted

Скорее всего, Secure Boot блокирует модуль. Можно либо отключить SecureBoot либо подписать модуль ashmem самому.

Больше информации про это можно найти здесь: [5].

Смотрите также