Blank2007

DroidExtend

DroidExtend turns an Android phone into a true extended display for Windows (not screen mirroring) over a single USB cable, with touch input support and a measured 5–11 ms end-to-end latency.

v1.8.2
Published at
5d ago
14
Stars
115
Download
Synced at
1d ago

Latest release

v1.8.2Oct 23, 2026, 04:50 PM
Downloads slow? Switch the source anytime above

README

Project Overview

DroidExtend turns an Android phone into a second display for Windows over a single USB cable. It is not mirroring: a real monitor appears in Win+P, windows can be dragged onto it, and the mouse works directly on it. Video travels through an adb reverse tunnel (ddagrab desktop duplication → NVENC hardware encoding → MediaCodec hardware decoding on the phone) with a measured 5–11 ms end-to-end latency, and the phone screen doubles as a touch input device for the PC.

Item Value
Platform Windows (PC) + Android 5.0+ (phone)
Connection USB cable (adb), no Wi-Fi needed
Video pipeline ddagrab → NVENC/AMF/x264 → MediaCodec
Installer size 34 MB with ffmpeg, adb, driver, and phone APK bundled
License MIT

A real monitor shows up in Win+P, disappears the moment you unplug, and leaves no ghost display behind.

How It Works

  • The PC first creates a real virtual monitor through a virtual display driver, then captures that screen via the desktop duplication API
  • ffmpeg grabs frames zero-copy with ddagrab and encodes H.264 through GPU encoders such as h264_nvenc
  • The stream reaches the phone over the adb reverse tcp:27183 tunnel, where MediaCodec decodes it onto a SurfaceView
  • Touch events travel back over the tcp:27184 tunnel; the host injects a real mouse via SendInput with absolute coordinates across the virtual desktop
  • Stopping detaches the virtual screen without touching the driver, so the next session shows video in about 3 seconds

Key Features

  • True extended desktop: virtual monitor resolution, refresh rate, and position (right/left/top/bottom) are adjustable, with out-of-table sizes falling back to the nearest supported mode
  • Touch control: single tap = left click, double tap = double click, 0.5 s long-press = right click, two-finger slide = scroll wheel; drags are frame-throttled to send only the latest position
  • Fully tunable quality: frame rate 24–144, default 40 Mbps bitrate cap, VBR/CBR rate control, and quality factor Q 18–20 for near-lossless visuals
  • Tested encoder list: the menu only lists encoders verified on your machine, such as h264_nvenc, hevc_amf, and libx264; unusable ones are hidden
  • Cable speed test: one-click USB bandwidth measurement that auto-lowers the bitrate cap; swapping cables can change speed by 40x
  • In-app updates: downloads new versions inside the program, verifying SHA256, size, and file format before installing anything
  • Centralized data: settings.json and DroidExtend.log always live in the install folder; uninstalling means deleting the folder, leaving no residue

Quick Start

  1. Double-click the installer and follow the steps; it installs into your user folder without requesting admin rights
  2. Open the app and click Install virtual display driver (requires admin), accept the UAC prompt, and look for status=OK in the log after about 10 seconds
  3. Enable developer options and USB debugging on the phone, plug in the cable, and allow debugging
  4. Pick a resolution and frame rate, click Start streaming; the APK is installed onto the phone automatically on first run
  5. Drag any window toward the phone display and start using it; the phone screen accepts direct touch input

Target Audience

  • Travelers who need a second screen but do not carry an external monitor
  • Multitaskers parking chat windows, documents, or tickers on the phone display
  • Developers wanting a low-latency side screen for dashboards, trading charts, or code

System Requirements

Item Requirement
PC Windows with desktop duplication API and ffmpeg encoding support
GPU NVIDIA (NVENC) or AMD (AMF) for hardware encoding; libx264 as CPU fallback
Phone Android 5.0 or later, arm64 or arm
Connection USB cable with authorized ADB debugging

Notes

  • GPU usage: the virtual monitor is composited by DWM like any real display, so a few to a dozen percent of constant GPU usage is by design; lower resolution first, then refresh rate
  • The cable is the bottleneck: charge-only cables may negotiate down to USB 1.1 (13.7 Mbps measured); when the image looks mushy, run the cable speed test first
  • AI sandbox limits: running the exe inside an AI coding session workspace blocks the display-configuration API; place it outside the workspace
  • No code signing: the installer ships without a signing certificate; integrity is enforced by SHA256 checks, as stated plainly in the update dialog

Release history

Sort