Drion · Comparison

Drion vs redroid

Both run Android apps on your own Linux kernel rather than in a virtual machine, on Android’s own runtime and framework. They are built for different jobs. redroid boots a complete Android system in a privileged Docker container, usually many of them on a server, and you see each one through scrcpy. Drion has no Android system underneath: each app runs as its own sandboxed Linux process, in its own window.

redroid

A complete Android system in a privileged container, viewed from outside.

Drion

No Android system underneath. Each app is its own sandboxed Linux process.

BothYour Linux kernel, no virtual machine · Android’s own framework code · arm64 apps on x86_64 · adb
What runs

What runs underneath the app

redroid builds Android from AOSP, with its own patches, and starts its init, system services and system apps in a container. Drion keeps the parts an app talks to, the runtime and Android’s framework, and replaces everything underneath with its own services.

redroid
Android app
Android runtime and framework
Android system services
Android OS built from AOSP: init, system apps
Privileged container, binder in the host kernel
Linux host: Docker, Podman or Kubernetes
Drion
Android app
Android runtime and framework
Drion system services
no Android OS underneath
no binder kernel module
Linux host: desktop, audio, GPU
Isolation

How apps are kept apart

redroid puts one container around each Android system, and runs it privileged. Android’s own sandbox separates apps inside it. Drion puts a kernel boundary around every app and keeps its own services outside all of them.

redroid
Linux host
Containerprivileged· one per Android system
Android system: init, system services, system apps
App A
App B
App C
Docker or Podman

Apps are kept apart by Android’s own user IDs and permissions, inside the container. The container has its own network.

Drion
Linux host · your user account
Supervisor
System server
Display
sandbox
App A
sandbox
App B
sandbox
App C

The Linux kernel walls off each app’s processes and private files from the host, other apps and Drion’s own services. The network is shared with the host.

Side by side

The practical differences

Aspect
redroid
Drion
Built for
Android in the cloud: many Android instances on a Linux server, for cloud gaming, virtual phones and automated testing.
Running Android apps on Linux, as part of the desktop or device. Headless modes cover scripts and automation.
What runs
A complete Android system, Android 8.1 to 16, built from AOSP with redroid’s patches, in a container.
Each app as its own Linux process, served by Drion’s system services.
Isolation
One container per Android instance. Android’s own sandbox separates apps inside it.
One kernel sandbox per app process. The system server stays outside every sandbox.
Privileges
The container runs with Docker’s --privileged flag. Its guide also has you turn off SELinux on hosts that use it.
For local use, runs under your user account, with no container runtime. An optional Docker Compose profile exists for web deployment.
Host kernel
Needs binderfs, ashmem or memfd, DMA-BUF heaps or ION, IPv6 and 4 KB pages. Some distributions need extra kernel modules or a custom kernel.
No Android-specific kernel features. Needs unprivileged user namespaces.
Starting the first app
Android boots in the container first. Its Kubernetes example waits for the boot to complete before the instance counts as ready.
No Android system to boot. An app starts like any other program.
Seeing apps
No windows of its own. You view and control the whole Android screen with scrcpy over adb, often from another computer. The screen defaults to 720 × 1280.
One window per app: resizable on Linux desktops, fullscreen in Gamescope on SteamOS, maximized on Ubuntu Touch.
Desktop integration
None described. Its device configuration sends audio to Android’s remote submix, a capture device inside Android, not to the host’s sound system.
App menu, clipboard, audio and notifications on Linux desktops, partly on SteamOS and Ubuntu Touch. Camera and microphone are brokered by the system server.
Network
The container network: adb’s port is published to reach it, and DNS falls back to 8.8.8.8 unless you set servers. Its docs warn that exposing adb publicly can compromise the container and even the host.
Apps use the host’s network directly, including services that listen only on your machine.
Google Play
Not in the published images. You build your own image from source with a Google apps package or microG; its guide puts the build at about 200 GB of disk.
Optional, installed in a couple of clicks from the store list in Drion’s launcher. Other app stores work too.
Which fits

Who each one is for

redroid gives you whole Android devices to run on servers and reach over the network. Drion is for running apps as part of your Linux system.

redroid

When you need Android devices on servers

Many instances on a host, on x86_64 or arm64 servers, Kubernetes included, with the Android version of your choice from 8.1 to 16. Open source under Apache-2.0.

Drion

When you want to use apps on Linux

Each app in its own window and kernel sandbox, on your host’s audio and network, with Google Play or other app stores and no privileged container.