Step 1: We need /dev/binder and /dev/ashmem devices for android support.
Because the kernel is 4.9.140, its not possible dkms, or build them as loadable modules. But we can still build the modules in-tree with a kernel build.
Edit the file:
and add these lines at the end
And do a kernel build with nvbuild.sh and install the modules and new kernel. Now we have the /dev/binder and /dev/ashmem.
Step 2: Set the permissions for the special files
Add a new file called 99-anbox.rules with content as:
KERNEL==“ashmem”, NAME="%k", MODE=“0666”
KERNEL==“binder”, NAME="%k", MODE=“0666”
sudo udevadm control --reload-rules && udevadm trigger
Step 3: Install an upgraded libSDL2 library
Due to a bug in the libSDL2 library available in 18.04, we need an upgraded version to be built from sources.
Download the libSDL2 sources of 19.04 from here:
Extract and build:
sudo apt-get build-dep libsdl2-2.0-0
sudo make install
Step 4: Build anbox arm64 from sources
Get the anbox arm64 sources from here:
(Have no idea how upto-date it is, but this is the only source I know of. It seems a work in progress and some crashes occur now and then)
Follow the instruction to install all the pre-requisites, and the build steps, except one small change is required before you do the step “cmake …”
which will allow cmake to find the upgraded libSDL2 library.
continue with make and then sudo make install.
Step 5: Make it a proper installation
The Step 4 build and install of anbox is not a complete installation unfortunately. We need android image and services and launcher to be setup.
Download a sample android image from here:
Copy to /var/lib/anbox and rename it as android.img
Since we have to make it a proper installation, we refer to 20.04 arm64 deb of anbox. Its found here:
Extract the deb file and make a copy of the files in data folder in our filesystem with a few changes.
i) copy the anbox executable from /usr/local/bin to /usr/bin
ii) Add this line:
before ExecStart in /usr/lib/systemd/user/anbox-session-manager.service file
iii) Remove the lines
In file lib/systemd/system/anbox-container-manager.service because there are built into the kernel.
Step 6: Start the anbox services
sudo systemctl unmask anbox-container-manager.service
sudo systemctl start anbox-container-manager.service
sudo systemctl enable anbox-container-manager.service
systemctl --user unmask anbox-session-manager.service
systemctl --user start anbox-session-manager.service
systemctl --user enable anbox-session-manager.service
// Check status of the services
sudo systemctl status anbox-container-manager.service
systemctl --user status anbox-session-manager.service
Check the anbox launcher in the search and launch it!
You can install more apps by using adb. Just check on the net.
Or you can use F-Droid repos
adb install FDroid.apk