Run Linux containers on Android, no root required

Podroid spins up a lightweight Alpine Linux VM on Android using QEMU, providing a full Podman container runtime and terminal without requiring root access.
Run Linux containers on Android — no root required.
Podroid spins up a lightweight Alpine Linux VM on your phone using QEMU and gives you a fully working Podman container runtime with a built-in serial terminal.
Key Features
- Containers: Pull and run any OCI image —
podman run --rm -it alpine sh - Terminal: Full xterm emulation with Ctrl, Alt, F1-F12, arrows, and more
- Persistence: Packages, configs, and container images survive restarts
- Networking: Internet access out of the box, port forwarding to Android host
- Self-contained: No root, no Termux, no host binaries — just install the APK
Requirements
- arm64 Android device
- Android 14+ (API 34)
- ~150 MB free storage
Quick Start
- Install the APK from Releases
- Open Podroid and tap Start Podman
- Wait for boot (~20 s) — progress is shown on screen and in the notification
- Tap Open Terminal and run containers:
podman run --rm alpine echo hello
podman run --rm -it alpine sh
podman run -d -p 8080:80 nginx
Technical Architecture
- Android App: Foreground Service keeps the VM alive. UI built with Jetpack Compose.
- PodroidQemu: Uses
libqemu-system-aarch64.so(QEMU TCG, no KVM). Serial stdio is wired to the TerminalEmulator. - Alpine Linux VM: Uses
initramfsas a read-only base layer and anext4disk as a persistent overlay. Includes Podman, crun, netavark, and slirp4netns.
Networking: QEMU user-mode networking (SLIRP) puts the VM at 10.0.2.15. Port forwarding uses QEMU's hostfwd, managed at startup via CLI args and at runtime via QMP.
Terminal: The terminal is powered by Termux's TerminalView with full VT100/xterm emulation. Terminal dimensions are synced to the VM via stty so TUI apps render correctly.
License
GNU General Public License v2.0
Source: Hacker News











