Open-source project
modded-ubuntu/modded-ubuntu avatar
modded-ubuntu/modded-ubuntu

Modded Ubuntu for Termux: an XFCE desktop on Android without root

Run Ubuntu GUI on your termux with much features.

1,233 stars173 forksShellApache-2.0

At a glance

What is it?
modded-ubuntu is a set of shell scripts that build a full Ubuntu 26.04 XFCE4 desktop inside Termux on Android without root, using PRoot-Distro for the base rootfs and a VNC server for the display, with a setup script that does the work and a gui.sh that configures the desktop. It suits an Android user who wants a real Linux desktop on a phone or tablet, and it is the wrong tool for anyone who needs hardware acceleration or a full system.
Who is it for?
modded-ubuntu is worth trying if you have a spare Android device and want a full Ubuntu desktop with a browser and an IDE on it, since the base environment, the desktop and the VNC session are all scripted and the setup path is documented step by step. It is a poor fit for a phone you rely on daily, because PRoot translation overhead is real and the display goes through VNC rather than the Android compositor.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 32 days ago.
What is it written in?
Mainly Shell, according to GitHub's language statistics.

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

Editorial analysis

The desktop is not emulated, it is a userspace Ubuntu with a remote display

The project describes itself as a modern Ubuntu desktop with XFCE4 for Android without root, and the mechanism is worth being precise about, because it explains both what it can and cannot do. The base container comes from the official Ubuntu rootfs distribution powered by Termux PRoot-Distro, with the credits noting that all credit for the base container distribution goes to the PRoot-Distro maintainers. The Ubuntu filesystem is then reachable from Termux as a normal environment, and the graphical session is delivered over VNC, with a VNC client on Android or another device connecting to it. Nothing is installed into the Android system, which is why no root is required, and it is also why the display is a remote framebuffer rather than a native Android window.

The scripts do the work, and the repository is small

The repository root holds a .gitignore, a CHANGELOG.md, a LICENSE, a README.md, a distro/ directory, a patches/ directory, a remove.sh, and a setup.sh. The presence of setup.sh, gui.sh, a distro directory and a patches directory tells you the shape of the thing: it is a build script that fetches a rootfs, applies patches, and installs a desktop environment, plus a second script that configures the graphical side. The primary language of the repository is recorded as Shell, which is consistent with that. A remove.sh is the kind of detail that separates a project meant to be used from a demo, since it suggests the author expected people to install it and later want it gone. The release tags are v2.1.0 on 2026-09-08 and a config tag of 2023-01-05, and the last push was on 2026-09-21.

Installation is a clone and a setup script in Termux

The installation section starts with a warning that matters: always install Termux from F-Droid or from the GitHub releases, which is the usual advice since the Play Store build is outdated and is not compatible with the current Termux package ecosystem. Then the whole procedure is four commands in Termux.

bash
yes | pkg up

pkg install git wget -y

git clone --depth=1 https://github.com/modded-ubuntu/modded-ubuntu.git
cd modded-ubuntu
bash setup.sh

During setup you are prompted for a username for the Ubuntu environment, with the constraint that it must be lowercase and contain no spaces. The shallow clone is a sensible touch for a repository whose size is dominated by the images and the release history rather than the scripts.

bash
ubuntu
sudo bash gui.sh

That second pair of commands runs after the base environment has finished installing and after a Termux restart. The gui.sh script prompts on screen for the desktop components you want and for the VNC password.

The VNC session is a real server with start and stop commands

The connection flow is conventional VNC, and the README is explicit about the addresses. Inside Ubuntu you start the server with vncstart and shut it down with vncstop. On the client side, RealVNC Viewer or AVNC, you tap the plus button to add a connection, set the address to localhost:1 and give it a name, set the picture quality to High, then connect and enter the password. The whole session runs on the device, so there is nothing to port forward and nothing listening on your LAN.

The requirements reveal the real constraints

The system requirements table is the most useful section for anyone deciding whether to try this. The operating system must be Android 7.0 Nougat or higher. The terminal app must be Termux at version 0.118 or later from F-Droid or GitHub. You need at least 4 GB to 8 GB of free storage. The architecture must be aarch64 or arm64, which is recommended, or armhf, or x86_64. And you need a VNC client, with RealVNC Viewer and AVNC named. The storage figure and the architecture list are the two that decide feasibility, since the storage is for a full Ubuntu rootfs plus a desktop plus the packages you will install, and the architecture list determines whether the distribution ships your build at all.

What the feature list claims, and what that means in practice

The feature list is short: no root required, the latest Ubuntu 26.04, fully automatic setup, pre-patched web browsers, fixed audio output, a desktop look, and lightweight and modular. The two claims worth examining are the pre-patched web browsers and the fixed audio output. Both point at the same underlying issue, which is that an Ubuntu userspace running under PRoot does not automatically have access to the Android graphics stack or the audio HAL, so a stock browser would either fail to render or fail to play sound, and the project ships patches to work around that. The images in the README show Firefox, Chromium, Visual Studio Code and Sublime Text, which is the practical point of the whole exercise: a browser and an editor on a phone. The look is XFCE4, and the modularity claim refers to the gui.sh step letting you pick desktop components.

Apache-2.0, a small licence surface and an honest dependency line

The licence is Apache-2.0, with a LICENSE file at the repository root and a badge stating it, which is a permissive licence with an express patent grant and is a reasonable choice for a distribution script. The credits block is short and unusually clear: the project utilizes the official Ubuntu rootfs distribution powered by Termux PRoot-Distro, and all credit for the base container distribution goes to the PRoot-Distro maintainers, with a link to the proot-distro repository. That matters for how you should read the project. The value here is in the scripts and the patches on top of a distribution someone else maintains, and the base is going to change underneath whenever PRoot-Distro updates, which is the main reason to expect occasional breakage. The project homepage is modded-ubuntu.github.io, and the README links a video tutorial and a CHANGELOG for version release notes.

Editorial conclusion

modded-ubuntu is worth trying if you have a spare Android device and want a full Ubuntu desktop with a browser and an IDE on it, since the base environment, the desktop and the VNC session are all scripted and the setup path is documented step by step. It is a poor fit for a phone you rely on daily, because PRoot translation overhead is real and the display goes through VNC rather than the Android compositor. Verify first that your device architecture is one of the listed ones and that you have between 4 GB and 8 GB of free storage, and install Termux from F-Droid or the GitHub releases rather than the Play Store, as the README insists.

Frequently asked questions

Does Modded Ubuntu for Termux require root?

No. The project lists no root required as its first feature, and the base distribution runs as a userspace container through Termux PRoot-Distro, so nothing is installed into the Android system. The README does require Termux to be installed from F-Droid or the GitHub releases.

How do I connect to the desktop once it is installed?

Inside Ubuntu you run vncstart, then in a VNC client such as RealVNC Viewer or AVNC you add a connection with the address localhost:1, set the picture quality to High, and connect with the password you chose during the gui.sh step. vncstop shuts the server down.

What does the setup script ask me for?

During setup you are prompted to enter a username for the Ubuntu environment, and the README states it must be lowercase with no spaces. A second script, gui.sh, then asks for the desktop components you want and for the VNC password.

What are the system requirements for Modded Ubuntu?

Android 7.0 or higher, Termux v0.118 or later from F-Droid or GitHub, at least 4 GB to 8 GB of free storage, an aarch64 or arm64 architecture, which is recommended, or armhf or x86_64, and a VNC client.

Official sources

  1. License: Apache-2.0
  2. modded-ubuntu/modded-ubuntu on GitHub
  3. Project website
  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/modded-ubuntu-modded-ubuntu.svg)](https://hysenlabs.com/projects/modded-ubuntu-modded-ubuntu)

Was this useful?