What is Linxr?
Linxr = Linux + r (as in: run it).
Linux in your pocket.
Linxr is a single Android APK that runs a full Alpine Linux environment on any non-rooted Android phone. No Termux. No root. No PC required after install.
Install it, tap Start VM, wait ~15 seconds, and you have a live Linux shell — from the built-in terminal tab or any SSH client on the same device.
GitHub: github.com/AI2TH/Linxr
Download: linxr-v1.apk — ARM64 · 63 MB
Why Does This Exist?
Modern Android phones are powerful Linux machines underneath — 8 cores, 8 GB RAM, a full Linux 6.x kernel. But the platform deliberately limits what regular apps can do. Running native Linux tools requires either rooting the device or a runtime like Termux.
Linxr explores how far a normal, unmodified APK can go using only standard Android APIs. The answer: far enough for a full Alpine Linux VM with SSH access, persistent storage, and internet — in a 63 MB APK.
What You Get
| Feature | Details |
|---|---|
| Alpine Linux 3.19 | bash, sudo, apk package manager, openssl |
| Built-in SSH terminal | Auto-connects when VM starts; auto-retries |
| External SSH |
ssh root@localhost -p 2222 from any SSH client |
| Persistent storage | Installed packages survive VM restarts |
| Internet access |
apk add curl git python3 just works |
| No root | QEMU runs as a regular app process |
Default credentials: root / alpine
The Stack
Flutter UI (Dart)
└── MethodChannel
└── Kotlin VmManager
└── QEMU (libqemu.so — ships inside APK jniLibs)
└── Alpine Linux 3.19 VM (QCOW2 disk image)
└── OpenSSH sshd (port 22)
↑
SLIRP hostfwd: Android :2222 → VM :22
↑
SSH client (dartssh2 + xterm — Flutter)
How It Compares to Pockr
Linxr is the sibling of Pockr — which runs Docker on Android. Linxr strips that down to the essentials:
| Linxr | Pockr | |
|---|---|---|
| Guest runtime | OpenSSH | Docker daemon + FastAPI |
| Access method | SSH terminal | REST API |
| APK size | 63 MB | 163 MB |
| Boot time | ~15 s | ~60 s |
| First-run setup | None | ~5 min (Docker install) |
If you just need a Linux shell, Linxr is the right tool.
About the Name
Linxr = Linux with a dropped vowel. Same naming pattern as Pockr — short, memorable, double meaning. The goal was always "install this APK, get Linux" — no configuration, no server, no extra steps.
Linxr Series — Alpine Linux on Android
Linxr = Linux + r. A single Android APK that runs a full Alpine Linux shell on any Android phone — no root, no Termux, no PC required.
| # | Post | Topic |
|---|---|---|
| 📖 | Intro | What is Linxr? Start here |
| 1 | Part 1 | The Idea and Architecture |
| 2 | Part 2 | Shipping QEMU in an APK |
| 3 | Part 3 | SSH Terminal in Flutter |
| 4 | Part 4 | Test Results |
GitHub: github.com/AI2TH/Linxr
Website: ai2th.github.io
Idea & Contributor: Kalvin Nathan
skalvinnathan@gmail.com · LinkedIn
Top comments (0)