Getting started
From APK download to a running Alpine Linux VM in about five minutes, plus a first boot that takes a little longer than you might expect - and why.
Install
Podroid is distributed as a standard APK sideload. There is no Play Store listing.
- Download the latest
Podroid-release-*.apkfrom GitHub Releases. - Enable "Install unknown apps" for your browser or file manager in Android Settings, then open the APK.
- Tap Install.
ARM64 (arm64-v8a) only. Android 9 (API 28) or newer. The APK will not install on 32-bit or x86 devices.
Setup wizard
The first time you open Podroid a three-step wizard runs before anything else.
Step 1: Persistent storage size
Choose how large the writable VM disk image will be: 2, 4, 8, 16, 32, or 64 GB. This image lives in the app's private storage and holds everything you install inside the VM - packages, container images, config files. Pick more than you think you need.
The storage size is set once and cannot be changed later without a full reset that wipes all VM data. If you run out of space you will need to reset.
Step 2: VM configuration
Set the number of virtual CPU cores and the RAM allocation (default 512 MB). You can also toggle SSH here - when enabled, Dropbear starts automatically and the VM is reachable at port 9922 over your local network. These settings can be changed later in Settings.
Step 3: Downloads sharing (optional)
Grants access to your phone's Downloads folder so you can move files between Android and the VM. Useful, but skip it if you don't need it.
Downloads sharing can be unstable on some devices. If the VM behaves oddly after enabling it, try disabling it in Settings.
First boot
Tap Start VM on the home screen. The first boot takes roughly 50-60 seconds, noticeably longer than the 10-15 seconds of later boots. Two one-time tasks run:
- SSH host key generation: Dropbear generates RSA, ECDSA, and ED25519 host keys. This takes 25-35 seconds on a typical phone and happens only once; the keys are stored on the persistent overlay and reused on every subsequent boot.
- Filesystem formatting: the ext4 storage image is formatted to the size you chose in step 1.
The notification shows boot stages as they complete: "Starting SSH...", "Almost ready...", then "Ready!" - at which point the VM is fully up and the terminal is interactive.
Home screen at a glance
Once the VM is running the home screen shows:
- VM status and uptime
- Network info - your phone's IP address, SSH endpoint, and how many port-forward rules are active
- Start / Stop button
Terminal and X11 viewer
Tap the terminal icon from the home screen to open a full VT100 terminal connected to the VM shell. Inside the terminal, tap the monitor icon in the top bar to open the X11 viewer - needed for GUI Linux apps and desktop environments.
Default credentials
The default login is root with password podroid. The terminal banner reminds you of this on every boot. To create a regular user with sudo-equivalent access:
$ adduser -G wheel <username>
Members of wheel can use doas (and sudo if installed).
SSH from another device
With SSH enabled and both devices on the same Wi-Fi, connect from a laptop or desktop:
$ ssh root@<phone-ip> -p 9922
# password: podroid
Port 9922 is the default; see the Networking & ports page for how SLIRP forwarding works and how to add more port rules.
If you see "QEMU crashed (SIGKILL)" after backgrounding the app, Android's phantom-process killer is terminating the QEMU process. This is an OS-level restriction, not a bug. See Limitations & troubleshooting for the workaround.
Podroid is free software (GPL). Docs for v1.2.1. Found something inaccurate? Open an issue.