Today I am making a private side-project public I am working on for more than 1.5
years now. Back in 2015 I started working on a prototype of what I
call Anbox today. It was born out of the idea of
putting Android into a simple container based on
LXC and bridging relevant parts
over to the host operating system while not allowing any access to
real hardware or user data. The Android applications should integrate
well into the existing desktop environment like they were regular
applications. There were quite a few problems to solve on the way
to a really working implementation but it is now in a state that it
makes sense to share it with a wider audience.
Anbox uses Linux namespaces (user, network, cgroup, pid, ..) to
isolate the Android operating system from the host. For Open GL ES
support Anbox takes code parts from the Android emulator implementation
to serialize the command stream and send it over to the host where
it is mapped on existing Open GL or Open GL ES implementations.
The source code is entirely available as open source. Most parts are
licenses under the terms of the GPLv3 but a few are Apache-2.0 for
compatibility reasons with code used from other projects.
Anbox itself is still in its early phase and is in a pre-alpha state
where crashes and instability is expected. The next phase of
development will focus on stability and bug fixing and will add
more necessary features to integrated better with the host operating
If you’re interested in Anbox you will find a lot
more information on its website anbox.io. The source
code of the project is hosted on Github.
If you’re now curious how Anbox looks like in action, have a look at
the following video: