Appteka Logo
Appteka
Podroid app icon

Podroid

ExclusiveOpen SourceVerified Safe
Version 1.0.2-debug (3)
Published 3/28/2026
Download APK
Size
144.63 MB
Android
14.0+
Downloads
99
Architecture
arm64-v8a
Security Scan
Verified Safe
✓ Scanned with ClamAV, APKiD, and Quark-Engine
Screenshots
Podroid screenshot 1
Description
Run Linux containers on your Android phone — no root required. Podroid launches a lightweight Alpine Linux VM via QEMU and gives you a fully working Podman container runtime with a built-in terminal emulator. Features Podman — pull and run OCI containers (podman run --rm alpine echo hello) Alpine Linux 3.23 — minimal aarch64 VM with full networking Termux terminal — proper VT100/xterm emulation with extra keys (Ctrl, arrows, ESC, TAB) Persistent storage — 2GB ext4 disk, all VM data survives app restarts via overlayfs Port forwarding — forward ports from the VM to the Android host, configurable in Settings Internet access — QEMU user-mode networking (SLIRP), ping/wget/curl all work Job control — Ctrl+C, Ctrl+Z, Ctrl+D work as expected One-tap start/stop — clean Material 3 interface No root, no host binaries — fully self-contained, works on any arm64 Android device Port Forwarding Forward ports from the VM to your Android device: Go to Settings Add a port forward rule (e.g. TCP 8080 -> 80) Access the service from your phone at localhost:8080 Rules are saved and automatically applied on VM start. You can also add/remove rules while the VM is running via QMP. Extra Keys The terminal includes an extra keys bar with: ESC / TAB — standard terminal keys CTRL — toggle modifier, then press a key (e.g. CTRL + C to interrupt) Arrow keys — navigate in shell history and editors ALT — toggle modifier for alt combinations - / / / | — common shell symbols How It Works Podroid uses QEMU system emulation (TCG, no KVM) to run a headless aarch64 Alpine Linux VM inside an Android app process. VM Boot The VM boots from an initramfs containing a full Alpine rootfs. A two-phase init script (init-podroid) mounts a persistent ext4 disk and creates an overlayfs root — the initramfs is the read-only lower layer, and all changes (installed packages, container images, config files) are stored on the persistent upper layer. Terminal The terminal uses Termux's TerminalView and TerminalEmulator libraries for proper VT100/xterm emulation. Since the app cannot use any host binaries, the TerminalSession is created and wired to QEMU's serial console I/O via reflection — keyboard input is drained from the session's internal queue and forwarded to QEMU stdin, while QEMU stdout feeds the terminal emulator. A getty process runs on /dev/ttyAMA0 inside the VM, providing a real controlling TTY with job control so signals like Ctrl+C work correctly. Networking QEMU's user-mode networking (SLIRP) provides internet access with the VM at 10.0.2.15. Port forwarding uses QEMU's hostfwd mechanism, managed at startup via command-line args and at runtime via QMP (human-monitor-command). Key QEMU Flags -M virt -cpu max -m 1024 -accel tcg,thread=multi -kernel vmlinuz-virt -initrd initrd.img -append "console=ttyAMA0 loglevel=1 quiet" -device virtio-blk-pci,drive=drive1 -drive file=storage.img,... -netdev user,id=net0,hostfwd=... -device virtio-net,netdev=net0 -serial stdio -display none -qmp unix:qmp.sock,server,nowait
Rate this app
0 / 1000
Ratings & Reviews
No reviews yet.