We’ve previously seen it was possible to run Android apps natively inside Linux thanks to Anbox that leverages the Linux kernel in Ubuntu for better integration and performance, and uses an LXC container to run Android operating system.
Collabora now offers a different solution with SPURV that runs the full Android OS, including a separate Linux kernel, in its own container and works over Wayland thanks to a graphics bridge from Android to Wayland.
Four main components are part of the implementation:
- Android target device – This component integrates SPURV into Android by using the device infrastructure that the Android codebase provides, and the company specifically the target runs inside of a systemd-nspawn container.
- SPURV Audio – Bridges the Android Audio Hardware Abtraction Layer (HAL) to the host PulseAudio stack.
- SPURV HWComposer – Integrates Android windows into Wayland by implementing a HWC-to-Wayland bridge, where HWC is the Android API for implementing display & buffer management. The composer also manages user input like key presses or touch screen events.
- SPURV DHCP – Simple DHCP implementation that enable the Android network stack to run within a container.
The video below shows Angry Bird android apps running along side Wayland apps on RDU2 platform powered by NXP i.MX6 quad core processor.
Compared to Anbox, SPURV has the full OS running in a container, increases isolation of Android applications, enhancing security and privacy, but there are footprint and performance costs associated with loading an entire OS on top of the guest OS.
If you want to try it yourself, you’ll have to put some efforts into it. First, you’ll need to run a Linux distribution with Wayland support, and then build everything from source (Gitlab) following those instructions.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
|Support CNX Software - Donate via PayPal or become a Patron on Patreon|