Anbox (Русский) - ArchWiki

Jump to content
From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Anbox. Дата последней синхронизации: 23 октября 2020. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

This article is being considered for archiving.

Reason: Main page is flagged for archived, see Anbox (Discuss in Talk:Anbox (Русский))

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

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[ссылка недействительна: package not found].

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

- anbox-image-houdiniAUR[ссылка недействительна: package not found] (включает houdini)
- anbox-image-houdini-rootedAUR[ссылка недействительна: package not found]
- anbox-image-gappsAUR[ссылка недействительна: package not found] (включает Google's Apps)
- anbox-image-gapps-rootedAUR[ссылка недействительна: package not found]

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

Примечание: Были случаи конфликтующих пакетов при установке anbox-gitAUR[ссылка недействительна: package not found].

Поэтому сперва следует установить 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[ссылка недействительна: package not found].

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

- anbox-image-houdiniAUR[ссылка недействительна: package not found] (включает houdini)
- anbox-image-houdini-rootedAUR[ссылка недействительна: package not found]
- anbox-image-gappsAUR[ссылка недействительна: package not found] (включает Google's Apps)
- anbox-image-gapps-rootedAUR[ссылка недействительна: package not found]

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

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

    $ modprobe ashmem_linux binder_linux

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

     anbox-container-manager.service

## Сеть

### systemd-networkd

Пакет anbox-gitAUR[ссылка недействительна: package not found] использует `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[ссылка недействительна: package not found] включен 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].

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

- Официальный репозиторий Anbox на Github
- Сайт Anbox

Categories:

- Virtualization (Русский)
- Android (Русский)

Hidden categories:

- Pages flagged with Template:Archive
- Pages or sections flagged with Template:Style
- Pages with broken package links