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…

这是什么?DroidDesk 利用 Termux、Termux:X11、TUR 和 Proot 把 Android 手机变成完整的 Linux 桌面,让你可以直接在手机上运行 VS Code、Firefox、LibreOffice、Blender 乃至 Metasploit 等应用。
这只是个终端模拟器应用吗?不是——它既不是终端也不是模拟器,而是一个可以直接访问内核的完整桌面环境,你可以把它接到显示器上,像真正的 Linux 电脑一样使用。
实际怎么用它?接不接显示器都行吗?你可以通过 Termux-X11 在手机上独立运行桌面,这比 VNC 更快;也可以切换到 VNC,用于通过树莓派桥接输出显示,或从其他设备远程访问。
我需要特殊硬件吗,比如特定的 GPU?运行它不需要特定硬件,但 GPU 加速在高通骁龙手机所用的 Adreno GPU 上效果最佳;其他 GPU 会退回到较慢的软件渲染。
我的会话会被 Android 随手杀掉吗?在某些 ROM(MIUI、One UI、原生 Android 13 及以上)上,系统可能会静默杀掉长时间运行的 Termux/VNC 会话,除非你在开发者选项中禁用「子进程」限制。
Termux-X11 模式和 VNC 模式有什么区别?Termux-X11 直接在手机上运行,是独立使用时最快的选择;VNC 则适用于需要通过树莓派桥接输出显示,或想从其他设备远程控制桌面的场景。
Proot 在这套方案里扮演什么角色?Proot 运行一个与原生 Termux 桌面共享显示的容器,因此安装在 Proot 里的应用会和其他内容渲染在同一块屏幕上。
下载的发布构建在合规性上可以完全放心吗?还不能完全放心——项目的合规清单仍有未解决的事项,涉及来源溯源、可复现构建、自定义前缀引导以及壁纸授权。
除了基础应用,我还能在上面跑些什么?除了日常应用,DroidDesk 还支持更重的软件,比如用于 3D 工作的 Blender、用于安全测试的 Metasploit 以及本地 AI 工具,全部在设备上的 Linux 环境中原生运行。
Creator
orailnoor
Size
33 MB
Stars
4.3K
Age
5mo
Commits · 90 Days