Skip to content

Latest commit

 

History

History
127 lines (89 loc) · 4.14 KB

install.md

File metadata and controls

127 lines (89 loc) · 4.14 KB

Install Anbox

To install Anbox your system need to support snaps. We do not officially support any other distribution method of Anbox at the moment but there are community made packages for various distributions (e.g. Arch Linux). However please keep in mind that the Anbox project can not give support to them and its solely in the responsibility of the community packager to keep up with upstream development and update the packaging to any new changes. Please feel free to report still any bugs you encounter as they may not be related to the packaging.

If you don't know about snaps yet head over to snapcraft.io to get an introduction of what snaps are, how to install support for them on your distribution, and how to use them.

The installation of Anbox consists of two steps.

  1. Getting the necessary kernel support
  2. Installing the Anbox snap

Have necessary kernel support

On current Debian (from Buster) or Ubuntu (from 18.04)

There is no need to install those modules on an up-to-date Ubuntu or Debian: Ubuntu and Debian have got the support compiled as modules. However, you may get an error loading ashmem_linux if SecureBoot is enabled:

 $ sudo modprobe ashmem_linux
 modprobe: ERROR: could not insert 'ashmem_linux': Operation not permitted

You can confirm that SecureBoot is enabled by running the following command:

$ sudo mokutil --sb-state
SecureBoot enabled

There are two ways around this. One is to disable the SecureBoot: https://wiki.ubuntu.com/UEFI/SecureBoot/DKMS. Following this post, the other way is to sign the ashmem_linux kernel module yourself. Note that you may have to enroll your own key, as described here.

On every other Linux distribution out there

You need a kernel that's compiled with binder and ashmem support.

Verify that kernel modules are loaded

Now you should have two new nodes in your systems /dev directory:

 $ ls -1 /dev/{ashmem,binder}
 /dev/ashmem
 /dev/binder

In Ubuntu 19.10 the binder driver doesn't create /dev/binder when loaded. That is intentional. Instead it provides support with binderfs (see https://brauner.github.io/2019/01/09/android-binderfs.html) which is instead since PR anbox#1309

You can use grep binder /proc/filesystems || echo "binderfs support is missing" To check for binderfs support. Note that only the snap supports binderfs without manual intervention as of now (PR welcome).

Install the Anbox snap

Installing the Anbox snap is very simple:

 $ snap install --devmode --edge anbox

If you haven't logged into the Ubuntu Store yet, the snap command will ask you to use sudo snap ... in order to install the snap:

 $ sudo snap install --devmode --edge anbox

At the moment we require the use of --devmode as the Anbox snap is not yet fully confined. Work has started with the upstream snapd project to get support for full confinement.

As a side effect of using --devmode the snap will not automatically update. In order to update to a newer version you can run:

 $ snap refresh --edge --devmode anbox

Information about the currently available versions of the snap is available via:

 $ snap info anbox

Available snap channels

Currently we only use the edge channels for the Anbox snap. The edge channel tracks the latest development and is always synced with the state of the master branch on github. There is a second release channel, beta, that's getting old.

Once proper confinement for the Anbox snap exists we will also start using the candidate and stable channels.

Uninstall Anbox

If you want to remove Anbox from your system you first have to remove the snap:

NOTE: By removing the snap you remove all data you stored within the snap from your system. There is no way to bring it back.

 $ snap remove anbox

Once the snap is removed you may have to remove the legacy DKMS modules (if you installed them):

 $ sudo apt install ppa-purge
 $ sudo ppa-purge ppa:morphis/anbox-support

Once done Anbox is removed from your system.