Anbox is a container-based approach to boot a full Android system on a regular GNU/Linux system https://anbox.io
Find a file
2017-02-20 08:35:43 +01:00
android Synchronize clipboard bi-directional with the android container 2017-01-15 12:38:22 +01:00
cmake Use host compiler to build emugen utility in cross-build environments 2017-01-27 07:12:19 +01:00
data Drop temporary file we don't want to track 2016-06-20 08:28:24 +02:00
debian debian: specify all build dependencies 2017-01-27 07:12:19 +01:00
external Abstract selector of translator or host GL libs a bit more 2017-02-06 07:12:10 +01:00
kernel Silence binder driver for rlimit failures 2017-02-07 12:12:23 +01:00
scripts scripts: container-mgr: get rid of a few things (kmods, base uid, umount) 2017-02-19 11:39:36 +01:00
setup/gui Provide desktop launcher for app view activity 2016-12-13 18:43:17 +01:00
src Forward Android ready status through our app manager dbus object 2017-02-20 08:35:43 +01:00
tests Use correct type for buffer size to avoid compiler time errors 2017-01-31 08:47:58 +01:00
.clang-format Don't enforce column limit for our code style 2017-01-03 09:16:46 +01:00
.gitignore kernel: exclude further build artifacts 2016-12-06 08:30:13 +01:00
.travis.yml Add initial travis build configuration 2017-01-20 10:34:18 +01:00
Android.mk Implement audio support 2017-01-12 07:02:43 +01:00
CMakeLists.txt On systems we run against Mir we also need to build against it 2017-02-17 16:44:30 +01:00
COPYING.GPL Add proper README and COPYING file 2016-06-20 09:37:16 +02:00
cross-compile-chroot.sh Drop armhf from the chroot setup script 2017-01-27 07:17:21 +01:00
README.md Document dkms package installation via ppa in our README 2017-02-07 12:12:23 +01:00
snapcraft.yaml Drop classic scripts used for kernel module building 2017-02-07 12:12:23 +01:00

Anbox

Anbox is container based approach to boot a full Android system on a regular Linux system like Ubuntu.

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 platform.

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

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

Installation

As first step you need to install additional kernel drivers for the Android binder and ashmem subsystems. Those drivers are packaged as a DKMS package for Ubuntu 16.04 already. You can install them from a ppa with the following commands:

 $ sudo apt install software-properties-common
 $ sudo add-apt-repository ppa:morphis/anbox-support
 $ sudo apt update
 $ sudo apt install anbox-modules-dkms

Anbox is available as a snap in the public Ubuntu Store. Currently it is only available in the edge channel and requires to be installed in devmode as we don't have proper confinement for it in place yet.

Anbox can be installed from the Ubuntu Store with

$ snap install --edge --devmode anbox

Afterwards run it with

$ anbox

After the first installation the container management service needs a few minutes to setup the container the first time before it is available.

Applications can be launched via the launch subcommand of the anbox binary. For example

$ anbox launch --package com.android.settings

When installed as snap there will be also a desktop launcher available which will directly start the application viewer activity to give an overview of available Android applications and allows to start them.

Build from source

To build the Anbox runtime itself there is nothing special to know about. We're using cmake as build system.

$ mkdir build
$ cd build
$ cmake ..
$ make

That will build the whole stack. A simple

$ make install

will install the necessary bits into your system.

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 (in src/) is licensed under the terms of the GPLv3 license:

Copyright (C) 2016 Simon Fels morphis@gravedo.de

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3, as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.