Robert Foss
May 02, 2019
Reading time:
Let's get Android running next to Wayland on an i.MX6 based Nitrogen6_MAX board.
A previous post introduced the SPURV Android compatibility layer for Wayland based Linux environment.
In this post, we're going to dig into how you can run an Android application on the very common i.MX6 based Nitrogen6_MAX board from Boundary Devices.
sudo apt install \
apt-transport-https \
bmap-tools \
ca-certificates \
curl \
git \
gnupg2 \
repo \
software-properties-common \
u-boot-tools \
qemu-kvm
Docker is needed for generating the Debian root filesystem later on.
# Install Docker
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce
# Set up privileges for Docker
sudo usermod -aG docker ${USER}
su - ${USER}
# Fetch Docker image
docker pull godebos/debos:latest
For building Android we've chosen to target version 9.0.0_r10, but this is mostly in order to ensure that these instructions remain correct going forward. This work should all be viable for later versions of Android too.
mkdir android; cd android repo init -u https://android.googlesource.com/platform/manifest -b android-9.0.0_r10 git clone https://gitlab.collabora.com/spurv/android_manifest.git .repo/local_manifests/ repo sync -j15 . build/envsetup.sh lunch spurv-eng make -j12 cd ..
We're using a kernel branch which is very close to upstream modulo one or two patches. The kernel we're going to build will be targeting i.MX 6 & 7 series SOCs.
git clone https://gitlab.collabora.com/spurv/linux.git -b android-container_v5.1-rc5 cd linux sh ../android/device/freedesktop/spurv/build-kernel.sh cd ..
Just a kernel does not make an OS, so we're using Debian as a base. The way we're going to create the root filesystem is using debos, which is a tool for creating Debian based OS images. You can learn more about it here.
Now we're ready to integrate all of the above into one coherent image. This is where the Nitrogen6_MAX devboard targeting comes in.
git clone https://gitlab.collabora.com/spurv/debos.git sudo debos/build_image.sh -b /dev/mmcblk0
The platform specific parts are contained in uboot_nitrogen6qp-max.scr and build_image.sh.
Pop the flashed SD-card into your device and restart it, and then log in as root/root.
In order to start Android, run one of these two commands:
# Launch Weston and an Android application /home/aosp/run.sh
Starting the Android application might take a minute or two, but Weston should start immediately.
A lot of different contributors enabled this work, both directly and indirectly.
Visit Robert's blog.
02/03/2026
Get the recap of Nicolas Frattaroli's FOSDEM talk detailing Rockchip’s mainline progress, including Vulkan 1.4 and NPU support as a vital…
02/12/2025
As an active member of the freedesktop community, Collabora was busy at XDC 2025. Our graphics team delivered five talks, helped out in…
24/11/2025
LE Audio introduces a modern, low-power, low-latency Bluetooth® audio architecture that overcomes the limitations of classic Bluetooth®…
17/11/2025
Collabora’s long-term leadership in KernelCI has delivered a completely revamped architecture, new tooling, stronger infrastructure, and…
11/11/2025
Collabora extended the AdobeVFR dataset and trained a FasterViT-2 font recognition model on millions of samples. The result is a state-of-the-art…
31/10/2025
Collabora has advanced Monado's accessibility by making the OpenXR runtime supported by Google Cardboard and similar mobile VR viewers so…
Add a Comment