# AnLinux-Adfree: a full Linux desktop on an unrooted Android phone

> AnLinux-Adfree is the main application of the AnLinux project, written in Java and built around Termux and PRoot to mount a compressed distribution image on Android without root. It covers thirteen distributions and five desktop environments, and the README is candid about what does not work yet.

**EXALAB/AnLinux-Adfree** — AnLinux, Ad free version.

- Repository: https://github.com/EXALAB/AnLinux-Adfree
- Stars: 619 · Forks: 61
- Language: Java
- License: Apache-2.0
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/exalab-anlinux-adfree

## The mechanism is a downloaded image mounted by PRoot

AnLinux does not emulate a machine and it does not ask for root. The README's explanation of how it works is one sentence, and it is the whole architecture. A bash script downloads an image over the internet, then decompresses the image, then mounts it using PRoot. Everything else in the project follows from that. PRoot, which the README credits alongside Termux as the two projects that make this possible, intercepts system calls in user space and rewrites paths, so a distribution's file tree can live in a directory owned by the app and appear to be the root of a filesystem. Termux provides the Android-side environment, including the shell and the package manager, that the script runs inside. The consequence for a user is that this is a Linux userland rather than a Linux machine. There is no kernel change, no boot image and no root access, so hardware features that depend on kernel modules are not available in the way they would be on a rooted device or a real machine, and any program that expects privileged operations has to be satisfied inside PRoot's rewrite rules instead.

## The application is a thin Java wrapper around shell scripts

The repository is described as being the main application, with the images and scripts used by the app living in a separate resources repository at EXALAB/AnLinux-Resources. That split matters for anyone who wants to read the code, because the interesting logic, the download, the decompression and the PRoot mount, is in the scripts rather than in the Java sources. The primary language of this repository is Java, and the top level of the tree reflects a small Android project rather than a large application, with an AnLinux-Adfree module directory, an .idea directory, a LICENSE and the README. The consequence is that the app is mostly a front end: it asks the user to pick a distribution and a desktop environment, fetches what is needed, and hands control to a shell running inside Termux. That is why the app is small and why its feature list is about distributions and desktops rather than about editing, files or notifications. It also explains the split in where to file things, since the README sends bug reports to a separate AnLinux-App repository and points contributors with ideas to a GitHub issue.

## Fourteen distributions and five desktop environments

The distribution list is long and specific. The README names Ubuntu, Debian, Kali, Kali Nethunter, Parrot Security OS, Fedora, CentOS, openSUSE Leap, openSUSE Tumbleweed, Arch Linux, BlackArch, Alpine and Void, and the topic tags on the repository match that list, covering archlinux, centos, debian, fedora, kali, opensuse, parrotsec, ubuntu, termux and proot among others. The desktop environment list is shorter, with five entries: Xfce4, Mate, LXQt, LXDE and KDE. The window manager list is shorter still, with two, Awesome and IceWM. The distinction between the two lists is the point, because they are not alternatives to each other. A desktop environment brings its own panel, file manager, settings application and preferences, while a window manager is a bare tiling or stacking manager that leaves the session to you. Choosing IceWM or Awesome gives you a Linux console in a phone-shaped window with almost no overhead, while choosing Xfce or KDE gives you a conventional desktop that is heavy on a phone. The README also notes that only the listed distributions are supported, which is a narrower statement than the topic list and worth respecting.

## Getting it installed means F-Droid, GitHub releases and Termux

There is no build-and-run script here to copy, because this is a distributed Android application rather than a library or a tool. The README points to an F-Droid badge for the app, and separately says you can download it from GitHub releases if you did not install F-Droid. Two requirements have to be in place before the app is useful. The first is that the app requires Termux to work, and the README says to install Termux from F-Droid. The second is a device floor, which the README spells out: the Android version must be at least Lollipop, and the supported architectures are armv7, arm64, x86 and x86_64. Those two lines cover the practical compatibility questions, since a modern phone will be arm64 and well past Lollipop, while an emulator on x86 is also covered. The GitHub release list shows a single tagged release, v6.77 dated 2026-09-17, and the last push to the repository was on 2026-09-17 as well, so the application source and that release are in step. The repository is not archived, the licence is Apache-2.0, and the project asks for donations through a PayPal button that the README notes is currently not working properly.

## The README's own todo list names the weak points

Most projects hide their limits, and this one publishes them, which makes evaluation easier. The future target and todo section lists KDE and GNOME desktop environment support, with a note that other blacklisted desktop environments might be retested, then audio support, then fixing a PRoot error, and then possibly BSD distribution support. Read in order, that is a list of known failures. Audio is the one that matters most in practice, because a desktop session with no sound is immediately noticeable, and PRoot errors are the second, since the mount step is the mechanism on which everything depends. The desktop environment section has a further oddity, because the window manager section repeats the sentence about supported distributions and desktop environments verbatim, which reads as a copy and paste artefact rather than a statement about window managers. The reference section credits three earlier projects, GNURootDebian, debian-noroot and termux-ubuntu, which is a fair indication of where the approach came from. The extra licence notes cover the application icon and the Ashmem library, taken from the android-shmem project.

## Termux with proot-distro instead, and rooted phones as the other option

The alternative deserves a serious comparison because it is free and already on the device. Termux itself can install a distribution without a separate app, and since AnLinux already depends on Termux for the shell and script environment, a command-line route inside Termux can reach the same PRoot behaviour and the same hardware limitations with no Java front end in the way. The difference is packaging and polish. AnLinux-Adfree gives you a graphical front end for choosing an image and a desktop environment and for launching the session, which matters if you are on Android and do not want to type install commands in a terminal, and it is the path of least resistance for a user who has never used Termux. A third option exists for people who can root the device or run a custom ROM, where a real root filesystem gives better performance, working audio and access to hardware interfaces that PRoot cannot virtualise. The trade is risk and effort, since rooting a phone carries its own security and warranty consequences. Between a command-line Termux route and AnLinux, the deciding factor is whether you want a guided GUI or a terminal, not the capability of the resulting Linux.

## Conclusion

Adopt AnLinux-Adfree if you want a real Linux userland on an Android device you cannot or do not want to root, and you can accept a chroot-like environment driven by PRoot rather than a full virtual machine. Skip it if you need reliable audio, an on-device window manager with tight resource use, or any guarantee that the kernel modules and hardware interfaces of your phone are available. Verify first that your architecture is one of armv7, arm64, x86 and x86_64, that your Android release is at least Lollipop, that Termux is installed, and which distribution image your device can actually mount.

## FAQ

### Does AnLinux-Adfree need root access on Android?

No. The README states the project runs Linux on Android without root access, thanks to Termux and PRoot. The script downloads an image, decompresses it and mounts it with PRoot, so no kernel change is involved.

### Which Linux distributions and desktops does AnLinux-Adfree support?

The README lists thirteen distributions including Ubuntu, Debian, Kali, Parrot Security OS, Fedora, CentOS, openSUSE, Arch Linux, BlackArch, Alpine and Void. Five desktop environments are supported, Xfce4, Mate, LXQt, LXDE and KDE, along with the Awesome and IceWM window managers.

### What are the device requirements for AnLinux-Adfree?

The app requires Termux installed from F-Droid, an Android version of at least Lollipop, and an armv7, arm64, x86 or x86_64 architecture. The README also lists audio support and a PRoot error fix as outstanding items.

## Sources

- [EXALAB/AnLinux-Adfree on GitHub](https://github.com/EXALAB/AnLinux-Adfree)
- [Issues](https://github.com/EXALAB/AnLinux-Adfree/issues)
- [License: Apache-2.0](https://github.com/EXALAB/AnLinux-Adfree/blob/master/LICENSE)
- [README](https://github.com/EXALAB/AnLinux-Adfree/blob/master/README.md)
- [Releases](https://github.com/EXALAB/AnLinux-Adfree/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/exalab-anlinux-adfree
