DroidDesk README

The project's README from github.com/orailnoor/DroidDesk. As one markdown file: README.md.

DroidDesk

Run a full Linux desktop on any Android phone. Not a terminal. Not an emulator. A complete desktop environment with direct kernel access -- VS Code, Blender, Metasploit, local AI, all of it.

Connect your phone to a monitor and it becomes a Linux PC. Unplug it and your entire setup comes with you.

[!IMPORTANT] DroidDesk is an independent GPL-3.0 open-source project that incorporates modified Termux:X11 components. It is not affiliated with or endorsed by Termux, Termux:X11, TUR, Canonical, or Ubuntu.

Video

Watch the video

What This Actually Runs

Everything below has been tested and confirmed working:

If it runs on Ubuntu, it runs here.

How It Works

The Linux environment runs through Termux with direct access to the phone's kernel. No emulation, no translation -- native performance.

The setup script installs a full desktop (XFCE4/LXQt/MATE/KDE) inside Termux using the Termux User Repository (TUR) for GUI apps. For tools not available in TUR (Wireshark, Metasploit, etc.), a Proot container provides a standard Ubuntu/Debian/Kali environment where you install anything with apt.

The automatic menu sync scans what you install inside Proot and adds it directly to your desktop app menu. No need to enter the container every time.

DroidDesk App (Standalone)

DroidDesk is also available as a standalone Android application that completely automates this process without requiring a separate Termux installation. It renders through an embedded Termux:X11 server running in its own Android process; the app does not use VNC.

Download the latest release APK from the Releases tab and sideload it to begin.

Requirements

For Monitor Output ( Optional )

Option A: USB-C Display Output If your phone supports display output over USB-C, just use a USB-C to HDMI adapter. Done.

Option B: Raspberry Pi Bridge For phones without display output (most mid-range phones with USB 2.0), use a Raspberry Pi Zero 2W as a bridge:

The Pi connects to the phone via USB tethering, detects the phone's IP automatically, and opens a VNC viewer to display the phone's desktop on the monitor.

Installation

Step 1: Install Termux

Download and install Termux from F-Droid: https://f-droid.org/en/packages/com.termux/

Do NOT use the Play Store version. It is outdated and will not work.

Step 2: Install Termux-X11

Download the latest APK from: https://github.com/termux/termux-x11/releases/tag/nightly

Install it on your phone. This is the display server that renders the desktop.

Step 3: Run the Setup Script

Open Termux and run:

curl -sL https://raw.githubusercontent.com/orailnoor/DroidDesk/main/termux-linux-setup.sh -o setup.sh
bash setup.sh

The script will:

  1. Update Termux packages
  2. Add X11 and TUR repositories
  3. Install your chosen desktop environment (XFCE4/LXQt/MATE/KDE)
  4. Set up GPU acceleration (Turnip for Adreno, Zink fallback for others)
  5. Install Firefox, Git, Python, and core tools
  6. Set up a Proot Linux container (Ubuntu/Debian/Kali)
  7. Create the App Bridge for automatic menu syncing
  8. Apply a modern dark theme
  9. Optionally set up VNC for remote access

Step 4: Start the Desktop

After installation completes:

bash ~/start-x11.sh

Then open the Termux-X11 app on your phone. Your desktop is ready.

Step 5: Install Apps Inside Proot

To install tools that are not in TUR:

bash ~/start-proot.sh
apt install wireshark    # or any other package
exit
bash ~/proot-menu-sync.sh

The app will appear in your desktop menu automatically.

Raspberry Pi Monitor Bridge Setup

If you are using a Raspberry Pi Zero 2W to output to a monitor:

Step 1: Flash Raspberry Pi OS

Flash standard Raspberry Pi OS to an SD card and boot the Pi.

Step 2: Install VNC Viewer on the Pi

sudo apt update
sudo apt install realvnc-vnc-viewer

Step 3: Copy the Launcher Script

Copy pi-launch_phone.sh to your Pi:

curl -sL https://raw.githubusercontent.com/orailnoor/DroidDesk/main/pi-launch_phone.sh -o ~/pi-launch_phone.sh
chmod +x ~/pi-launch_phone.sh

Step 4: Connect and Launch

  1. Connect the phone to the Pi via USB cable
  2. Enable USB Tethering on the phone
  3. Start VNC on the phone: bash ~/start-vnc.sh (in Termux)
  4. Run the bridge script on the Pi:
bash ~/pi-launch_phone.sh

The script auto-detects the phone's IP and opens a fullscreen VNC session on the monitor.

Optional: Auto-Launch on Boot

To make the Pi automatically connect when powered on, add to crontab:

crontab -e

Add this line:

@reboot sleep 15 && /home/pi/pi-launch_phone.sh

Commands Reference

Command What It Does
bash ~/start-x11.sh Start desktop via Termux-X11
bash ~/start-vnc.sh Start desktop via VNC (if installed)
bash ~/start-proot.sh Open Proot Linux shell
bash ~/proot-menu-sync.sh Sync Proot apps to desktop menu
bash ~/stop-linux.sh Stop all sessions

Notes

[!WARNING] Disable Child Process in Developer Options On some Android versions (MIUI, One UI, stock Android 13+), the system may kill Termux background processes and drop your desktop session. To prevent this:

  1. Go to Settings → Developer Options
  2. Find "Child process" (may be labeled differently depending on your ROM)
  3. Disable child process restrictions for Termux

Without this, long-running sessions (VNC, Termux-X11) may be killed by the OS without warning.

Credits

Created by orailnoor

License and third-party software

DroidDesk is independent software licensed under GNU GPL version 3 only. It is not affiliated with or endorsed by Termux, Termux:X11, TUR, Canonical, Ubuntu, or other upstream projects.

The Android application incorporates GPL-licensed Termux:X11 components and bundles other third-party software under their respective licenses. See:

The current compliance checklist includes unresolved source provenance, reproducible-build, custom-prefix bootstrap, and wallpaper-license work. Do not describe a binary release as fully compliant until the blocking checklist items are complete.

DroidDesk (orailnoor/DroidDesk)

Searching Database…

What is this?DroidDesk turns an Android phone into a full Linux desktop using Termux, Termux:X11, TUR, and Proot, letting you run apps like VS Code, Firefox, LibreOffice, Blender, and even Metasploit directly on your phone.
Is this just a terminal emulator app?No — it is not a terminal and not an emulator, it is a complete desktop environment with direct kernel access that you can connect to a monitor and use like a real Linux PC.
How do I actually use it, with or without a monitor?You can run the desktop standalone on the phone via Termux-X11, which is faster than VNC, or switch to VNC when you need display output through a Raspberry Pi bridge or remote access from another device.
Do I need special hardware like a certain GPU?No specific hardware is required to run it, but GPU acceleration works best on Adreno GPUs found in Qualcomm Snapdragon phones; other GPUs fall back to slower software rendering.
Will my session randomly get killed by Android?On some ROMs (MIUI, One UI, stock Android 13+) the OS can silently kill long-running Termux/VNC sessions unless you disable the 'Child process' restriction in Developer Options.
What's the difference between the Termux-X11 mode and the VNC mode?Termux-X11 runs directly on the phone and is the fastest option for standalone use, while VNC is meant for cases where you need display output through a Raspberry Pi bridge or want to control the desktop remotely from another device.
How does Proot fit into this setup?Proot runs a container that shares the display with the native Termux desktop, so apps installed inside Proot render on the same screen as everything else.
Can I trust the compliance of a downloaded release build?Not fully yet — the project's compliance checklist still has unresolved items around source provenance, reproducible builds, the custom-prefix bootstrap, and wallpaper licensing.
What kind of apps can I expect to run on it besides basics?Beyond everyday apps, DroidDesk supports heavier software like Blender for 3D work, Metasploit for security testing, and local AI tools, all running natively in the on-device Linux environment.
Creator
orailnoor
Size
33 MB
Stars
4.2K
Age
5mo
Commits · 90 Days