Open-source project
Cateners/tiny_container avatar
Cateners/tiny_container

Tiny Container: Debian 13 with a desktop on Android, installed by tapping a button

Click-to-run debian 13 with desktop environment on android!

4,226 stars211 forksKotlinGPL-3.0

At a glance

What is it?
Tiny Container is a Kotlin Android app that unpacks a Debian rootfs and starts a graphical session over proot, aimed at people who have never opened a terminal. The README is candid about the trade-offs, including heavy AI use in the codebase and an unfinished documentation set.
Who is it for?
Tiny Container is for Android users who want a Linux desktop without learning Termux, proot, or VNC setup, and it assumes an arm64 device with enough storage for a rootfs. It is not for anyone who needs chroot performance, systemd, Docker, Wayland, GNOME, or a distro other than Debian, since the README rules those out.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 18 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Tiny Container actually removes from the setup

Getting a Linux desktop onto an Android phone normally means installing Termux, learning its package manager, pulling a rootfs, configuring a proot environment, starting a display server, and wiring audio. Tiny Container compresses that into an APK. The README states that you install the app, open it, and after roughly a five-minute initialization you are at the desktop, with no manual steps. It targets ordinary users first: the project's stated goal is to let people who do not know Linux enjoy it without effort, lowering the barrier that Termux's developer-oriented reputation creates.

The second audience is people who already know what proot is. For them the app keeps a terminal and container configuration exposed, and adds things a plain Termux setup does not give you: audio and VNC carried over unix sockets instead of the network stack, container file browsing through the Storage Access Framework, and Android launcher shortcuts that can point at .desktop files or arbitrary commands. The project also states it will not conflict with Termux, so a device can carry both.

Inside the app: proot, a rootfs, and two display frontends

The repository is a single-module Android project in Kotlin, with build.gradle.kts and settings.gradle.kts at the top level and the app under app/. The native side is not built from source in the repository: the README instructs you to download jniLibs.zip from the releases page and extract it into app/src/main/jniLibs/arm64-v8a. Those prebuilt libraries come from the maintainer's fork of termux-packages, where scripts/generate-bootstraps.sh was modified to produce the needed packages and packages/proot/build.sh was changed to use a fork of proot. The README notes the proot fork's changes are messy and not worth reading.

Containers are Debian-based. The README acknowledges the Debian project and says all containers currently used in the project are based on Debian. Graphical output goes through one of two built-in frontends, AVNC and Termux:X11, so no separate viewer app is required. The README lists virglrenderer and turnip+zink as the graphics acceleration paths, and audio plus microphone forwarding as supported. The default Xfce container uses the Fluent GTK theme and the Xiaolai font, per the acknowledgments.

Installing the APK and reaching the desktop

There is no package-manager install and no F-Droid listing documented. The README points at the releases page for APKs, so that is where you start.

bash
# No install command is documented. Download the APK from:
# https://github.com/Cateners/tiny_container/releases

After installing and opening the app, the README says initialization takes about five minutes and then you land on the desktop. If the desktop comes up at the wrong size, the README gives one concrete fix: adjust the display scaling in Features, then AVNC.

Android storage is mounted at /mnt/sdcard by default, and the README reminds you to grant storage access permission, otherwise that path will not be usable from inside the container. If a Linux application cannot find the microphone, the README suggests checking that Tiny Microphone Input is selected, or restarting the Linux application.

Building it yourself, and where the container images live

Building from source is documented but has a manual step that will trip up anyone expecting a clean clone-and-build. You must fetch the prebuilt native libraries first.

bash
# After cloning the repository:
# 1. Download jniLibs.zip from the releases page
# 2. Extract it to app/src/main/jniLibs/arm64-v8a
# 3. Open the project in Android Studio and build normally

To get automatic container installation on first launch, the README says to rename your container to rootfs.tar.zst and place it in app/src/main/assets. How to make your own containers, and the prebuilt ones the maintainer has prepared, are documented in the separate tiny-computer/images repository. That repository is also the README's answer for anyone who wants a distribution other than Debian: try the images repo yourself, because the app will not add other distros on request.

The limitations the maintainer states outright

The README keeps an explicit list of what the project will not do, and it is unusually blunt. No chroot containers. The reasoning given is that people have asked for three years citing better performance, but no one has supplied benchmark data showing which scenarios make proot's slowness a bottleneck, and the maintainer has no experience writing root-using apps. The suggested alternative is Termux, or an automated setup such as Kali Nethunter. That is a real boundary: if your workload is I/O heavy or CPU bound, this project is not the tool, and the README does not claim otherwise.

Also excluded: Mali GPU acceleration, Wayland, Docker, systemd, GNOME, camera and serial port access. The README frames this as a refusal to take wish-list requests. Separately, the project carries a caution that it makes heavy use of AI across code logic, layouts, and translations, and that unexpected bugs may exist in places. The documentation itself is marked as not ready, with the README saying to wait a little longer. So the app is usable while its written reference is incomplete, which is the opposite of the usual order.

How it differs from Termux and from a full Linux install

Termux is the obvious comparison, and the README treats it as the reference point rather than a rival. Termux gives you a package manager and a terminal on Android, and it is where the container solutions this app relies on came from. The difference is who does the assembly. With Termux you install the container, start the graphical session, and configure audio yourself. Tiny Container ships those steps as buttons and as two bundled display frontends, and it adds integration that a Termux setup does not have by default: unix-socket transport for audio and VNC, SAF-based file browsing, and launcher shortcuts. The README explicitly says the two do not conflict, so the choice is not exclusive.

Against a distribution's own Android story, the difference is narrower. If you need automated setup with root, the README points at Kali Nethunter. If you want a distro other than Debian, the images repository is the route, not the app. And if you want a real Linux install on a laptop, nothing here applies. The project is a phone-first convenience layer over proot, not a general Linux distribution.

Maintenance, licence, and what upgrading costs you

The repository is not archived. The last push was on 2026-09-13, and releases documented for the project run from v4.0.0 on 2026-06-28 through v4.2.2 on 2026-08-09 to v4.2.3-alpha1 on 2026-08-12. The README also states that Tiny Computer, the predecessor, is preserved on the v1_tiny_computer branch and is unlikely to be maintained going forward, with Tiny Container described as a complete rewrite and the version to use. Anyone still on the old branch is on a dead end by the maintainer's own statement.

The licence is GPL-3.0, with COPYING at the top level. That matters practically because the app bundles prebuilt native libraries derived from a termux-packages fork and from a proot fork; redistribution of a modified APK carries source obligations under that licence. This is a description of the licence identifier, not legal advice.

Upgrade cost is concentrated in one place. Because the native libraries arrive as a separate jniLibs.zip rather than being built from the repository, a source build has to track which zip matches which release, and the README warns only that the proot fork's changes are messy. Container images live in a separate repository, so an app update and a container update are two different operations.

Editorial conclusion

Tiny Container is for Android users who want a Linux desktop without learning Termux, proot, or VNC setup, and it assumes an arm64 device with enough storage for a rootfs. It is not for anyone who needs chroot performance, systemd, Docker, Wayland, GNOME, or a distro other than Debian, since the README rules those out. Before adopting it, check the releases page for the current APK, read the AI-use caution in the README, and confirm that the container images repository still matches the build you install.

Frequently asked questions

Where do I download the Tiny Container APK?

The README says APKs are available on the project's releases page on GitHub. There is no other download source documented.

Does Tiny Container work alongside Termux?

Yes. The README lists non-conflict with Termux as a feature, and the project's containers and native libraries come from the Termux community and a termux-packages fork.

Which Linux distribution does Tiny Container run?

All containers currently used in the project are based on Debian, and the README mentions Debian 13 desktop use. For other distributions the README points to the separate tiny-computer/images repository.

Why does Tiny Container not support chroot?

The README states the maintainer will not support chroot containers, citing no benchmark data showing where proot's slowness becomes a bottleneck and no experience developing root-using apps. It suggests Termux or Kali Nethunter instead.

Official sources

  1. Cateners/tiny_container on GitHub
  2. Issues
  3. License: GPL-3.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/cateners-tiny-container.svg)](https://hysenlabs.com/projects/cateners-tiny-container)