README.md

    Snap Status Build Status

    Anbox

    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

    Installation

    See our installation instructions for details.

    Supported Linux Distributions

    At the moment we officially support the following Linux distributions:

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

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

    Install and Run Android Applications

    TBD

    Build from source

    Requirements

    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.

    Build

    Afterwards you can build Anbox with

    $ git clone https://github.com/anbox/anbox.git
    $ cd anbox
    $ mkdir build
    $ cd build
    $ cmake ..
    $ make

    A simple

    $ sudo make install

    will install the necessary bits into your system.

    If you want to build the anbox snap instead you can do this with the following steps:

    $ mkdir android-images
    $ cp /path/to/android.img android-images/android.img
    $ snapcraft

    The result will be a .snap file you can install on a system supporting snaps

    $ snap install --dangerous --devmode anbox_1_amd64.snap

    Run Anbox

    Running Anbox from a local build requires a few more things you need to know about. Please have a look at the "Runtime Setup" documentation.

    Documentation

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

    Interesting things to have a look at

    android 目前修改的代码仓库:
    repository1名称:https://gitee.com/src-openeuler/platform_hardware_libhardware_legacy
    repository2名称:https://gitee.com/src-openeuler/platform_hardware_ril
    repository3名称:https://gitee.com/src-openeuler/platform_frameworks_base
    repository4名称:https://gitee.com/src-openeuler/platform_frameworks_native
    repository5名称:https://gitee.com/src-openeuler/platform_frameworks_opt_net_wifi
    repository6名称:https://gitee.com/src-openeuler/platform_system_core
    repository7名称:https://gitee.com/src-openeuler/platform_packages_apps_DeskClock
    repository8名称:https://gitee.com/src-openeuler/platform_build
    repository9名称:https://gitee.com/src-openeuler/platform_manifests
    

    Reporting bugs

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

    Get in Touch

    If you want to get in contact with the developers please feel free to join the #anbox IRC channel on Freenode.

    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.

    项目简介

    A free and open-source compatibility layer that aims to allow mobile applications and mobile games developed for Android to run on GNU/Linux distributions

    发行版本

    当前项目没有发行版本

    贡献者 83

    全部贡献者

    开发语言

    • C++ 83.0 %
    • C 10.9 %
    • Makefile 1.5 %
    • Java 1.4 %
    • Shell 1.2 %