Short answer. Three options work in 2026.
Termux + proot-distro installs a
glibc Ubuntu, Debian, Alpine, Arch, or openSUSE userland inside a chroot on Android.
UserLAnd does the same
with a friendlier wizard but is essentially abandoned. Last release October 2021.
A cloud Ubuntu container reached from a native Android app skips the on-device
constraints entirely. Each of these answers a different version of the question
"I want a Linux container on my phone." We ship the cloud-container path and we
use the local ones; here is the honest 2026 rundown. There is now a fourth path
worth knowing about: Android 16's
built-in Linux Terminal, a full Debian VM
rather than a container. We cover where it fits below. A full Linux userland
is one slice of the topic — for the wider picture across Termux, SSH,
browser IDEs, and cloud terminals, see our
coding on Android pillar.
We tested every option below on a Pixel 8 running Android 14 in May 2026. We are the team behind Cosyra, so when we say "the cloud-container answer" we mean our own product. We will say where each local option wins; that is the only way this kind of post is useful.
This post was written by the Cosyra team. We cross-checked every claim against the project's own GitHub repository, the Termux wiki, and our internal competitor factsheets. Container-option facts verified 2026-05-26; the Android 16 native Linux Terminal section was added and sourced 2026-07-01.
tl;dr
Use Termux + proot-distro if you want a maintained, free, offline Linux container on Android and you accept the Bionic / glibc dance plus the Android 12+ phantom process killer. Use UserLAnd only if you specifically need its wizard and you understand the project has not shipped in 4+ years. Use a cloud Ubuntu container (we ship one) if you want apt, Docker-adjacent tooling, AI coding agents pre-installed, and zero on-device setup, and you accept the trade-off of needing an internet connection.
App Store · Google Play. Sign up — 1 hour free, no credit card. Extend with a 10-hour, 7-day trial when you want more.
Skip the chroot dance. Cosyra runs a per-user Ubuntu 24.04 container with Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed. Reached from a native Android app, no proot-distro, no phantom-killer workarounds.
App Store · Google Play · Pricing. 1 hour free on signup, no credit card.
What does "Linux container on Android" actually mean?
The phrase collides with two different ideas. On a server, "Linux container" means a kernel-isolated process tree with its own namespaces, cgroups, and overlay filesystem: Docker, podman, LXC. On a phone, almost nobody asking the question means that. They mean: "I want apt-get install to work on the device I carry, with a real Ubuntu or Debian root filesystem, without rooting the phone." The honest reframing is that Android does not give an unprivileged app access to the kernel features that make real containers work. It does let you ship a chrooted userland that runs glibc binaries. That is what proot-distro and UserLAnd both deliver, and that is what most people are actually searching for.
The thing you cannot get without root, or without a remote machine, is Docker. The kernel surface Docker needs (overlay filesystem, network namespaces, cgroup v2 controllers) is locked down on Android. We will say so plainly throughout this guide so you do not chase a setup that ends in "cannot connect to the Docker daemon."
Three real options in 2026
1. Termux + proot-distro — the maintained local path
proot-distro is a Termux
add-on that pulls a full Linux root filesystem and runs it inside a PRoot chroot.
The current release is 5.1.1 from 2026-05-24, with 33 cut releases
on GitHub. We installed Ubuntu 24.04 on a Pixel 8 with three commands:
pkg install proot-distro
proot-distro install ubuntu:24.04
proot-distro login ubuntu Inside the chroot the experience is what people want. apt-get install nodejs runs and pulls the glibc build from Ubuntu's repos, none of the Bionic-libc compatibility headaches you hit running Node directly under Termux. Python with pandas and lxml installs cleanly. ripgrep, fzf, OpenSSH, tmux, vim, every standard tool works. The 30-second pitch is that proot-distro turns the Termux package collision problem (Bionic vs glibc) into a non-issue by giving you a real glibc userland to live in.
The two real catches we hit on Android 14:
- Phantom process killer. Long sessions inside the chroot get terminated by the same Android 12+ phantom-process killer that affects Termux directly. We left a build running, locked the phone, and came back twenty minutes later to a dead session. The tracking issue (Termux #2366) is closed with documented mitigations: on Android 14 and 15, toggle Developer Options → "Disable child process restrictions" and the killer stops touching your child processes. On earlier Android you need ADB or root. Our Termux "signal 9" fix guide walks through the exact toggle and ADB commands per Android version.
- No Docker, no kernel modules. proot is user-mode; the chroot does not get kernel namespaces, cgroups, or overlay filesystems. docker, podman --rootful, kubectl-against-local-cluster, and anything that wants to load kernel modules will not work. proot-distro's own PRoot wiki page names this limit explicitly.
For the workloads that fit (apt, glibc binaries, language runtimes, builds that finish in minutes), Termux + proot-distro is the local answer that still gets updates in 2026. If your interest is specifically running Claude Code or another AI coding agent inside this stack, our Cosyra vs Termux comparison walks through the npm-vs-native installer trade-off and what the agent actually does when phantom-killer takes its host shell.
2. UserLAnd — the GUI-friendly but stagnating path
UserLAnd is the only mainstream Android-app-store alternative to "install Termux and type proot-distro install." It bundles a chrooted Ubuntu, Debian, Alpine, Arch, or Kali userland with a wizard-style setup flow and an optional VNC server for graphical sessions. As an idea it is great. As a 2026 codebase it has stalled. The GitHub releases page shows the last cut release as v2.8.3 in October 2021, and the issue tracker carries 995 open issues with maintainer responses thinning out after 2022.
The app still installs from the Play Store and the bootstrap still works. On our Pixel 8 the install completed in about six minutes and landed us at a working Ubuntu shell with apt available. The catch is everything beyond that. The Android 12+ phantom-killer hits UserLAnd sessions for the same root reason it hits Termux, and there is no in-app guidance on Developer Options because the docs predate that feature. Security updates to UserLAnd's bootstrap scripts have stopped. For a new setup in 2026, we recommend Termux + proot-distro over UserLAnd. Same idea, maintained.
3. Cloud Ubuntu container — what we ship for the no-setup case
This is the option we built. Cosyra runs a per-user Ubuntu 24.04 container on Azure with Claude Code, Codex CLI, OpenCode, and Gemini CLI pre-installed. You install a native Android app, sign in, and the terminal opens into a real x86_64 Linux environment with apt, persistent 30 GB storage, and session hibernation. The phone is the keyboard, screen, and clipboard; the Linux workload runs in the cloud container. We hold the opinion that for long-running AI agent sessions, the kind where the keyboard barely matters because the agent does the typing, a cloud container is the right shape, because nothing on a phone in your pocket survives the OS killing long processes the way a managed VM does.
Where a cloud container loses to Termux + proot-distro: you need an internet connection, your code sits on someone else's infrastructure, and there is a monthly bill after the free tier. Where it wins: apt-get install works, glibc binaries run unmodified, the Android phantom-killer is irrelevant, you do not need to keep your phone awake for builds to finish, and the same container is reachable from your iPad on the train into the city and from the web on a hotel workstation. We are the cloud-container team, and we still keep proot-distro installed on a personal Pixel for the offline edge.
Try the cloud-container answer. Cosyra is a native Android app paired with a managed Ubuntu 24.04 container. Claude Code, Codex CLI, OpenCode, and Gemini CLI come pre-installed.
App Store · Google Play · Pricing. 1 hour free on signup, no credit card. Extend with a 10-hour, 7-day trial.
How do the three options compare?
Verified 2026-05-26 against each project's own documentation and our own Pixel-8-on-Android-14 testing.
| Dimension | Termux + proot-distro | UserLAnd | Cloud Ubuntu container |
|---|---|---|---|
| Where Linux runs | On the phone (chroot in Termux) | On the phone (chroot in app) | On a managed cloud container |
| Distributions | Ubuntu, Debian, Alpine, Arch, openSUSE | Ubuntu, Debian, Alpine, Arch, Kali | Ubuntu 24.04 only |
| Package manager | apt / apk / pacman / zypper (glibc) | apt / apk / pacman (glibc) | apt (Ubuntu, glibc) |
| Maintenance (2026) | Active (proot-distro 5.1.1, 2026-05-24) | Stalled (v2.8.3, October 2021) | Active (managed service) |
| Phantom-killer immune | No (mitigation on Android 14+) | No (no in-app guidance) | Yes (workload is off-device) |
| Docker works | No | No | No (kernel-sensitive, see FAQ) |
| AI coding agents | Installable (Node/Python CLIs) | Installable, but stagnating host | Pre-installed |
| Offline use | Yes | Yes | No |
| Pricing (2026-05-26) | Free (GPL-3.0) | Free (GPL-3.0) | 1 hour free on signup, $29.99/mo Pro |
| iOS equivalent exists | No (Android only) | No (Android only) | Yes (same container, iOS app) |
What about Android's built-in Linux Terminal?
Since we first published this guide, Android 16 shipped an official Linux Terminal, and it is the biggest change to this topic in years. We keep it in its own section rather than calling it a fourth "container option" because it is not a container. It is a full Debian 12 virtual machine running through the Android Virtualization Framework on KVM, with its own guest kernel. That single fact, a real kernel rather than a PRoot chroot, is why it behaves differently from everything above.
Honesty first: we have not benched this on our own hardware yet. Our test Pixel 8 is on Android 14, and the Terminal needs Android 16, so the facts here are sourced from Google's rollout and first-hand hands-on reports dated 2026-07-01, not our own stopwatch. We will replace this with measured numbers once we can enable it on an eligible device. Here is what the reporting establishes:
- How you turn it on. Settings > System > Developer options > "Linux development environment," then let it download a Debian image of roughly 500 to 600 MB before the first boot.
- What runs. The full Debian
aptpackage manager, SSH, and the usual CLI stack (Python, Node, git, htop). On Pixel devices, GUI apps such as GIMP, LibreOffice, Chromium, and an XFCE desktop render through Gfxstream graphics forwarding to the phone's GPU. - Where it stops. It needs Android 16 and an AVF-capable device
— Pixel and some Android One phones return
trueforgetprop ro.virtualization.supported; Samsung phones do not support AVF as of 2026-07-01. The VM is sandboxed from your Android files apart from a shared mount, GPU acceleration is partial (on the Pixel 10, reporting puts 47 of 142 native Vulkan extensions reaching the VM), and the WebView-based terminal UI adds some input latency versus Termux.
Our opinion, which the "just use Termux" crowd will push back on: on an eligible Pixel, the native Terminal now edges out proot-distro for local work, because a real guest kernel is a cleaner foundation than a PRoot chroot, and because Google maintaining it beats a community add-on for longevity. But it does nothing for the two cases we care most about. It is Pixel-and-Android-16-first, so the Samsung or Android-13 phone in most pockets cannot run it, and it is Android-only, so it never touches the iPhone-or-iPad side of the same question. When a long agent run has to survive the phone going back in a pocket on the walk to the train, we still reach for a cloud container the OS cannot kill, because the native VM is subject to the same "close the app, lose the session" reality as any on-device process.
Who should pick what?
A decision framework that names the user, not the feature.
- Pick Termux + proot-distro if you want a maintained, free Linux container on the phone you carry, you are comfortable flipping Developer Options on Android 14 or 15 to silence the phantom killer, your work fits inside what apt-get install can give you, and you do not need Docker. This is the strongest local answer in 2026.
- Pick UserLAnd if you specifically want a wizard-style setup, you understand the project has not shipped a release since 2021, and your workload is short enough that abandoned-bootstrap issues will not trip you up. Most readers will be better served by Termux + proot-distro.
- Pick Android's native Linux Terminal if you own a Pixel or other AVF-capable phone on Android 16, you want an official, offline Debian VM with a real guest kernel, and you do not need the same environment on an iPhone or an older Android. On eligible hardware it is now the strongest local option; on everything else it is not available yet.
- Pick a cloud Ubuntu container if you want apt + AI coding agents working in two minutes from a native phone app, your sessions are long enough that the phantom killer would be a daily problem, you want the same Linux environment on your phone, tablet, and laptop browser, and you are comfortable with the trade-off that you need an internet connection. We trade off offline use and the "your code lives on our infrastructure" trust question for "no setup, agents are there, hibernation just works."
Why this question rhymes with "Termux for iPhone"
The Android side is the opposite shape of the iOS side. On iOS the answer is "no Termux exists and never will, because the platform forbids the process model" (we wrote that up in Termux for iPhone). On Android the platform allows the process model, the toolchain exists, proot-distro is maintained, and you really can have a real Ubuntu userland on a phone you carry. The honest reframing of the question is the same on both sides: where do you want your Linux to run? If you want it on the phone hardware itself, Android lets that happen and iOS does not. If you want it managed and reachable from a phone keyboard while you are on the train, a cloud container is the cross-platform answer either way.
Related guides
- Cosyra vs Termux — the head-to-head, including the Android phantom-process killer and the npm-vs-native Claude Code install path.
- Termux for iPhone — the iOS side of the same question and why the answer there is "no port, four workarounds."
- Claude Code on Android — what changes when you specifically want to run Anthropic's CLI on the same chroot.
- Codex CLI on Android — the four install paths for OpenAI's agent, including why the official binary stopped working in Termux after v0.5.0 and which forks still do.
- Code Python on your phone — pip + native extensions on Termux, proot-distro, and the cloud container.
- The mobile coding terminal pillar — four ways to get a real Linux terminal on your phone, with honest trade-offs.
- AI coding agents on mobile: Claude Code, Codex CLI, OpenCode, and Gemini CLI on iPhone and Android.
- Mobile cloud terminal solutions: the broader cluster pillar covering managed cloud terminals for mobile.