The current repo belongs to Closed status, and some functions are restricted. For details, please refer to the description of repo status
24 Star 61 Fork 65

openEuler/anbox
Closed

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
5 years ago
Loading...
README
GPL-3.0

Anbox

仓库状态设置为关闭的原因: https://gitee.com/openeuler/community/pulls/3095

This code repository is forked from https://github.com/anbox/anbox and will be maintained under openEuler android middleware community.We aim to run anbox on Arm PC natively.

Anbox is a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu. In other words: Anbox will let you run Android on your Linux system without the slowness of virtualization.

Overview

Anbox uses Linux namespaces (user, pid, uts, net, mount, ipc) to run a full Android system in a container and provide Android applications on any GNU/Linux-based platform.

The Android inside the container has no direct access to any hardware. All hardware access is going through the anbox daemon on the host. We're reusing what Android implemented within the QEMU-based emulator for OpenGL ES accelerated rendering. The Android system inside the container uses different pipes to communicate with the host system and sends all hardware access commands through these.

For more details have a look at the following documentation pages:

Anbox is currently suited for the desktop use case but can be used on mobile operating systems like Ubuntu Touch, Sailfish OS or Lune OS too. However as the mapping of Android applications is currently desktop specific this needs additional work to supported stacked window user interfaces too.

The Android runtime environment ships with a minimal customized Android system image based on the Android Open Source Project. The used image is currently based on Android 7.1.1

Supported Linux Distributions

At the moment we officially support the following Linux distributions:

  • Ubuntu 16.04 (xenial)
  • Ubuntu 18.04 (bionic)
  • UOS

However all other distributions should work as well as long as they provide the mandatory kernel modules (see kernel/).

Build from source

Requirements

It is recommended that the machine run on the ARM64 architecture.

To build the Anbox runtime itself there is nothing special to know. We're using cmake as build system. A few build dependencies need to be present on your host system:

  • libdbus
  • google-mock
  • google-test
  • libboost
  • libboost-filesystem
  • libboost-log
  • libboost-iostreams
  • libboost-program-options
  • libboost-system
  • libboost-test
  • libboost-thread
  • libcap
  • libsystemd
  • mesa (libegl1, libgles2)
  • libsdl2
  • libprotobuf
  • protobuf-compiler
  • lxc (>= 3.0)
  • libasound

On an Ubuntu system you can install all build dependencies with the following command:

$ 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

We recommend Ubuntu 18.04 (bionic) with GCC 7.x as your build environment.

On an UOS system you can install all build dependencies with the following command:

$ 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

Build

$ mkdir -p /home/compile/
$ cd /home/compile/
$ git clone https://gitee.com/openeuler/anbox

Afterwards you can build Anbox with

$ 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

If you want to choose a version, please do:

$ git clone https://gitee.com/openeuler/anbox -b anbox-v1.0-rc3

The version anbox-v1.0-rc3 will update in the future, make sure it matches the version of AOSP(see build-android.md).

A simple

$ sudo make install

will install the necessary bits into your system.

Run Anbox

Step1:start container manager,run the commands as the ROOT user and you must have a android.img.

$ bash /usr/local/bin/anbox-bridge.sh start
$ anbox container-manager --android-image=/<your path>/android.img \
         --data-path=/<your path>/anbox-data --privileged --daemon &

Step2:start session manager,run the commands as the NON-ROOT user, and run the shell terminal opened from desktop UI.

$ export EGL_PLATFORM=x11
$ export EGL_LOG_LEVEL=fatal
$ anbox session-manager  --gles-driver=host &

Wait 30s, open Android APP in "other applications" in the app menu.

Documentation

You will find additional documentation for Anbox in the docs subdirectory of the project source.

Interesting things to have a look at

Reporting bugs

If you have found an issue with Anbox, please file a bug.

Get in Touch

Find maintainer here: https://gitee.com/openeuler/community/tree/master/sig/sig-android-middleware

Copyright and Licensing

Anbox reuses code from other projects like the Android QEMU emulator. These projects are available in the external/ subdirectory with the licensing terms included.

The Anbox source itself, if not stated differently in the relevant source files, is licensed under the terms of the GPLv3 license.

Empty file

About

仓库关闭的原因:https://gitee.com/openeuler/community/pulls/3095 expand collapse
Cancel

Releases

No release

Activities

2年多前关闭了 PR #212 主机渲染增加加载glesv1库
2年多前关闭了 PR #213 修正编译警告:result of comparsion 'const char' > 127 is always false
2年多前关闭了 PR #214 Optimized the README file.
2年多前评论了 PR !213 修正编译警告:result of comparsion 'const char' > 127 is always false
2年多前推送了新的提交到 master 分支,06f7999...69951d6
Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/openeuler/anbox.git
git@gitee.com:openeuler/anbox.git
openeuler
anbox
anbox
master

Search