Причина закрытия репозитория: https://gitee.com/openeuler/community/pulls/3095
Этот кодовый репозиторий был форкнут с https://github.com/anbox/anbox и будет поддерживаться сообществом openEuler Android middleware. Нашей целью является запуск Anbox на Arm PC нативно.
Anbox представляет собой контейнерный подход к запуску полноценной системы Android на обычной системе GNU/Linux, такой как Ubuntu. Другими словами: Anbox позволяет вам запустить Android на вашей Linux-системе без замедлений виртуализации.
Anbox использует пространства имён Linux (пользователь, процесс, утилиты, сеть, монтирование, IPC) для запуска полноценной системы Android в контейнере и предоставляет Android-приложения на любой платформе на основе GNU/Linux.
Система Android внутри контейнера не имеет прямого доступа к любому оборудованию. Все доступы к оборудованию проходят через демона anbox на хосте. Мы переиспользуем то, что было реализовано в Android в QEMU-подобном эмуляторе для ускоренного отрисования OpenGL ES. Система Android внутри контейнера использует различные каналы связи для взаимодействия с хостовой системой и отправляет все команды доступа к оборудованию через эти каналы.
Для получения более подробной информации обратитесь к следующим страницам документации:* Обзор дизайна эмулирования аппаратного обеспечения Android OpenGL ES
Операционная среда Android поставляется с минимально модифицированным образом системы Android на основе проекта Android Open Source Project. Используемый образ основан на Android 7.1.1.
На данный момент мы официально поддерживаем следующие дистрибутивы Linux:
Однако все остальные дистрибутивы должны работать так же, если они предоставляют обязательные модули ядра (см. kernel/).
Рекомендуется использовать машину с архитектурой ARM64.
Для сборки самого окружения Anbox нет ничего особенного. Мы используем cmake в качестве системы сборки. Несколько зависимостей сборки должны присутствовать на вашей системе:
$ sudo apt install build-essential cmake cmake-data debhelper dbus google-mock \
libboost-dev libboost-filesystem-dev libboost-log-dev libboost-iostreams-dev \
libboost-program-options-dev libboost-system-dev libboost-test-dev \
libboost-thread-dev libcap-dev libsystemd-dev libegl1-mesa-dev \
libgles2-mesa-dev libglm-dev libgtest-dev liblxc1 \
libproperties-cpp-dev libprotobuf-dev libsdl2-dev libsdl2-image-dev lxc-dev \
pkg-config protobuf-compiler libasound2-dev
Мы рекомендуем использовать Ubuntu 18.04 (bionic) с GCC 7.x как средой сборки.
На системе UOS вы можете установить все зависимости сборки с помощью следующей команды:
$ sudo apt install gcc libncurses-dev bison flex libssl-dev cmake dkms build-essential \
cmake-data debhelper dbus google-mock libboost-dev libboost-filesystem-dev libboost-log-dev \
libboost-iostreams-dev libboost-program-options-dev libboost-thread-dev libcap-dev \
libsystemd-dev libegl1-mesa-dev libgles2-mesa-dev libglm-dev libgtest-dev liblxc1 \
libproperties-cpp-dev libprotobuf-dev libsdl2-dev libsdl2-image-dev lxc-dev libdw-dev \
libbfd-dev libdwarf-dev pkg-config protobuf-compiler libboost-test-dev
$ mkdir -p /home/compile/
$ cd /home/compile/
$ git clone https://gitee.com/openeuler/anbox
``` * [Применение патча SDL](docs/apply_SDL_patch.md)
* [Установка модуля binder & ashmem](docs/kernel_module.md)
После этого вы можете собрать Anbox с помощью следующих команд:
```sh
$ cd /home/compile/anbox
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_CXX_FLAGS="-DENABLE_TOUCH_INPUT -Wno-error=implicit-fallthrough \
-Wno-error=missing-field-initializers" -DCMAKE_BUILD_TYPE=Release -DWerror=OFF
$ make -j8
Если вы хотите выбрать версию, выполните:
$ git clone https://gitee.com/openeuler/anbox -b anbox-v1.0-rc3
```Версия `anbox-v1.0-rc3` будет обновлена в будущем, убедитесь, что она совместима с версией AOSP (см. build-android.md).
Простой
```sh
$ sudo make install
установит необходимые компоненты в вашей системе.
Шаг 1: запустите менеджера контейнеров, выполнив команды от пользователя с правами root, вам также потребуется файл android.img.
$ bash /usr/local/bin/anbox-bridge.sh start
$ anbox container-manager --android-image=/<ваш путь>/android.img \
--data-path=/<ваш путь>/anbox-data --privileged --daemon &
Шаг 2: запустите менеджер сессий, выполнив команды от пользователя без прав root, и запустите терминал, открытый через графический интерфейс.
$ export EGL_PLATFORM=x11
$ export EGL_LOG_LEVEL=fatal
$ anbox session-manager --gles-driver=host &
Подождите 30 секунд, затем откройте приложение Android в разделе "другие приложения" в меню приложений.
Дополнительная документация для Anbox находится в подкаталоге docs проекта.
Интересные вещи для изучения:
Если вы нашли проблему с Anbox, пожалуйста, отправьте отчет о баге.
Найдите ответственного за поддержку здесь: https://gitee.com/openeuler/community/tree/master/sig/sig-android-middleware
Anbox использует код из других проектов, таких как Android QEMU эмулятор. Эти проекты доступны в подкаталоге external/ со своими условиями лицензирования.Самостоятельный код Anbox, если это не указано в соответствующих файлах исходного кода, распространяется под условиями лицензии GPLv3.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )