droiddesk's menu sync is described for a Proot container that its own app mode says it does not use
DroidDesk turns your Android phone into a real Linux desktop using Termux, Termux X11, TUR, and Proot. Run VS Code, Firefox, LibreOffice, Blender, and more with X11 or VNC support for monitor setup.
At a glance
- What is it?
- An Android phone turned into a Linux desktop with Termux and Termux:X11, plus a Proot container for the packages the Termux repository does not carry, and a standalone app that takes a different route when the phone is not rooted. The latest release is v1.3.1, and the repository carries four compliance documents at its root.
- Who is it for?
- DroidDesk is worth trying if you want a full desktop on a phone you own and you are prepared to read what the scripts do before running them. Two architectures are on offer and they are not the same system: a Termux path driven by a setup script that fetches from the main branch, and a standalone app that embeds its own X11 server and, on an unrooted phone, avoids Proot entirely.
- 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 November 14, 2026, and from our analysis. They are not legal advice.
Star history
- orailnoor/DroidDesk4,792 ★ · +1,129
| Repository | 2026-09-24 | 2026-11-14 |
|---|---|---|
| orailnoor/DroidDesk | 3.7k | 4.8k |
1,129 Stars in the last 51 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
If it runs on Ubuntu, it runs here, except when it does not
The list of what works opens with the claim that everything below has been tested and confirmed working, and closes with a rule: if it runs on Ubuntu, it runs here. Then the architecture paragraph immediately narrows it. The setup script installs a desktop inside Termux and takes GUI applications from the Termux User Repository, and for tools that repository does not have, which the file names as Wireshark and Metasploit among others, you need a Proot container with Ubuntu, Debian or Kali where anything installs with `apt`. So the seven entries in that list are a mixture of two different installation mechanisms presented as one, and the closing rule is false in general: what runs on Ubuntu runs here only if the Termux repository carries it, or if you are willing to install it inside a container. One sentence separating the two lists would make the claim true. Two of the entries also carry their own caveats that the summary line does not repeat: Blender is described as lagging on mobile hardware, and local inference is given a throughput figure of five or more tokens per second with no method attached. A list that opens by saying everything in it is confirmed working, and then contains a performance qualification and an unmeasured number, is a list written to persuade rather than to report.
The app and the script are two different systems
The script path asks for Termux from F-Droid, Termux:X11 from its nightly tag, and then a setup script. The standalone app automates the same result with no separate Termux install, rendering through an embedded Termux:X11 server inside its own Android process, and the file states plainly that the app does not use VNC. Then the modes diverge. On a rooted phone the app runs the Ubuntu filesystem through `chroot`. On a non-rooted phone it runs an app-private native Termux userspace, installs desktop packages from the X11 and TUR repositories, and does not use PRoot at all. Both connect to the embedded X11 server on the same display address. So a reader who followed the script instructions and then installs the app is not running the same thing, and the differences that matter are privilege and which package source is in play.
The menu sync is documented for a container the app avoids
The How It Works section says the automatic menu sync scans what you install inside Proot and adds it directly to the desktop application menu, so you do not have to enter the container every time. The Commands Reference repeats it as `bash ~/proot-menu-sync.sh`, and Step 5 of the installation shows the pattern of starting the container, installing a package with apt, exiting and running the sync script. All of that assumes Proot is the environment. The standalone app section says PRoot is not used on non-rooted phones, and that those devices install from the X11 and TUR repositories instead. So the feature the project presents as removing the container round trip is, by the file's own description, not part of the app's non-rooted mode.
Two installs are fetched from the main branch with no checksum
Step 3 is the whole installation:
curl -sL https://raw.githubusercontent.com/orailnoor/DroidDesk/main/termux-linux-setup.sh -o setup.sh
bash setup.shThe URL points at the `main` branch, so the script you run is whatever that branch holds at the moment you fetch it, and the file does not pin a tag or a commit or check a hash. That matters more than usual here, because the script then updates packages, adds two repositories, installs a desktop environment, configures GPU acceleration, sets up a Proot container, and creates the launcher that syncs it into your menu. The Pi bridge script is obtained the same way, fetched from the main branch and then made executable with `chmod +x`. The repository's latest release is v1.3.1 from 2026-10-14, so a tag exists that both fetches could point at instead.
The remote access path is VNC, and the file never mentions a password
Two ways to get a picture on a monitor. If the phone has display output over USB-C, an adapter is all it takes. Otherwise the documented bridge is a Raspberry Pi Zero 2W, flashed with Raspberry Pi OS, connected to the phone by USB tethering, with the script detecting the phone's address automatically and opening a fullscreen VNC session on the monitor. There is also an optional autostart line to put in the Pi's crontab so the bridge reconnects by itself after a reboot. None of those sections mentions a VNC password, an SSH tunnel, or any restriction of who may connect. A VNC session on a local network, started automatically at every boot of the bridge, is a full desktop of that phone exposed to that network, so set a password on the viewer session before you rely on it, and decide whether unattended relaunch is a convenience or a liability.
GPU fallback is Zink in one section and Mesa in another
Two descriptions of the same decision do not match. The standalone app section says Adreno devices use Turnip with Zink hardware acceleration when it is available, and that other GPUs fall back to Mesa software rendering. The setup script's own summary in Step 3 lists GPU acceleration as Turnip for Adreno with a Zink fallback for others. Those are not the same fallback: one path names Zink as the fallback for non-Adreno hardware, the other names software rendering. On a mid-range phone with a different GPU vendor this is the difference between a usable desktop and a slideshow, and the file does not say which one you actually get outside Adreno. It also names the display server as a nightly build of Termux:X11, so that component moves every night while the project's own latest release is v1.3.1.
Four compliance documents beside a single release
The repository root is small and unusually careful. There is a `LICENSE`, a `LICENSES/` directory, `NOTICE.md`, `THIRD_PARTY_NOTICES.md` and `COMPLIANCE.md`, plus `APP_TROUBLESHOOTING.md`, `RELEASING.md`, an `app/` directory and three shell scripts. Four licence and notice files for a project this size is diligence rather than ceremony, and it matches the callout near the top: DroidDesk is described as an independent GPL-3.0 project that incorporates modified Termux:X11 components and is not affiliated with or endorsed by Termux, Termux:X11, TUR, Canonical or Ubuntu, with the source and the upstream both linked. Bundling modified components from a display-server project is exactly the situation where that statement and those notices are worth having in writing. It is also the clearest thing about the project. The README's Notes section has a troubleshooting note about the same kind of honesty in the other direction: on some Android versions, naming MIUI, One UI and stock Android 13 and later, the system may kill Termux background processes and drop a running desktop session, and the fix is to find a setting called Child process in Developer Options and disable it. The file notes the label may differ depending on the ROM.
Editorial conclusion
DroidDesk is worth trying if you want a full desktop on a phone you own and you are prepared to read what the scripts do before running them. Two architectures are on offer and they are not the same system: a Termux path driven by a setup script that fetches from the main branch, and a standalone app that embeds its own X11 server and, on an unrooted phone, avoids Proot entirely. Three things to settle. Read the setup script before running it, since the install step is a download from a moving branch with no checksum, and the Pi bridge script is fetched the same way. If you use the VNC path, set a password, because the documented bridge opens a session on the local network and the bridge sections never mention one, and think twice about the crontab line that relaunches it on every boot. And on a non-rooted phone, the automatic menu sync described for the container does not apply. The project's licensing position is unusually clear: it is GPL-3.0, it states it is not affiliated with Termux, and it ships the notices for what it incorporates.
Frequently asked questions
Does DroidDesk need a rooted phone?
No. The standalone app has two modes: rooted phones run the Ubuntu filesystem through `chroot`, while non-rooted phones run an app-private native Termux userspace and install desktop packages from the X11 and TUR repositories, with PRoot not used in that mode. The script-based path uses a Proot container instead.
Which Linux desktops can DroidDesk install?
The setup script installs a choice of XFCE4, LXQt, MATE or KDE inside Termux, using the Termux User Repository for graphical applications. Anything that repository does not carry, with Wireshark and Metasploit given as examples, is installed with `apt` inside a Proot container offering Ubuntu, Debian or Kali.
How do I get a monitor display out of an Android phone with DroidDesk?
Two documented routes. If the phone supports display output over USB-C, a USB-C to HDMI adapter is all that is needed. Otherwise a Raspberry Pi Zero 2W acts as a bridge over USB tethering, detects the phone's address automatically and opens a fullscreen VNC session on the monitor.
Where do I get Termux for DroidDesk?
From F-Droid, and the file says explicitly not to use the Play Store version because it is outdated and will not work. Termux:X11 comes from its nightly release tag, and that is the display server that renders the desktop.
Is DroidDesk affiliated with Termux?
No. The file states that DroidDesk is an independent GPL-3.0 project that incorporates modified Termux:X11 components and is not affiliated with or endorsed by Termux, Termux:X11, TUR, Canonical or Ubuntu. The root carries a LICENSES directory, NOTICE.md, THIRD_PARTY_NOTICES.md and COMPLIANCE.md.
Official sources
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.
[](https://hysenlabs.com/projects/orailnoor-droiddesk)Star history chart for your README
[](https://hysenlabs.com/projects/orailnoor-droiddesk)Was this useful?