Open-source project
RayrenSX/iPhoneMirror avatar
RayrenSX/iPhoneMirror

iPhoneMirror: USB and AirPlay iPhone Capture for Windows

Local Windows iPhone/iPad mirroring over USB and AirPlay with D3D11 preview, multi-device sessions, OBS output, and a standalone driver manager.

801 stars54 forksC#GPL-3.0

At a glance

What is it?
iPhoneMirror is a GPL-3.0 Windows 10/11 x64 tool that unifies USB Screen Capture and LAN AirPlay mirroring behind one preview, audio and OBS workflow. The split between a read-only main app and a separate driver manager is the design decision that matters most.
Who is it for?
Adopt iPhoneMirror if you capture iPhone or iPad screens on a Windows 10/11 x64 machine and want USB and AirPlay to share one preview, audio and OBS path, and if you accept that the wired link depends on a libusb0 filter driver the separate iPhoneMirror.Driver.exe installs. Do not adopt it for ARM64 Windows, for multi-touch injection, or for video editing; the README rules all three out.
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 4 days ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

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

Editorial analysis

The problem iPhoneMirror solves on a Windows desk

Getting an iPhone screen onto Windows is normally a two-tool problem. USB capture and AirPlay reception are separate stacks, so a capture setup ends up with one program for the cable and another for the network, and switching devices means stopping the first session. iPhoneMirror's stated goal is to fold both into one device list, one preview, one audio path and one OBS output, without a cloud relay in the middle. The README is explicit that media does not pass through a project-run server, and that the USB path does not need a network at all.

The audience is narrower than "anyone who wants to see their phone on a PC". This is a Windows 10/11 x64 tool for people who already have a capture or streaming workflow: OBS users who want a clean window with no software UI in the frame, and anyone who needs several iOS devices on screen at once. The README also positions Bluetooth reverse control as an option, with BLE HID mouse and keyboard input paired with iOS AssistiveTouch, and it is clear about the boundary: no multi-touch injection, and no built-in video editor.

Four processes, one pipeline: how the capture actually flows

The architecture is split along four boundaries, and that split explains most of the behaviour. A C++ core handles the Apple private USB protocol, QuickTime/CoreMedia parsing, H.264 decoding, D3D11 rendering and WASAPI audio. A WPF application owns the device list, session control and the UI. A separate wireless host speaks AirPlay, decodes, and passes media frames over a bounded named pipe. Driver installation, repair and removal live in a standalone iPhoneMirror.Driver.exe, and the main program only reads wired device state; it does not modify system drivers inside the mirroring process.

That last point is the one worth pausing on. Plenty of capture tools bundle driver work into the main executable, which makes failures hard to attribute. Here, when a wired session starts, the main program checks the selected device first: whether the Apple USB parent device is still usbccgp, whether the device is registered with the libusb0 UpperFilter, whether libusb0.sys and its service are healthy, and whether libusb0 can enumerate that exact device by serial number. Any failed check cancels the wired start and opens the driver manager instead. Video decoding on the wired path goes through Media Foundation with automatic, hardware-preferred or software-compatible modes, and the README states the D3D11/DirectComposition preview preserves BT.709 full-range colour metadata. Resolution and frame-rate limits (native, 1080p, 720p, 540p; 24, 30, 60 or 120 FPS) constrain local rendering only, not the source stream over USB.

The wired protocol has three modes per device, and the README does not pretend they are equivalent. A demo mode sends Valeria=true with a native DisplaySize and mirrors the full screen, but the status bar shows Apple demo values for date, time and battery. B AirPlay (experimental) uses native dimensions and adapts to orientation, allows video apps to switch to external playback, and may crop or display incompletely. C i4Tools mode fixes the frame at 1565x1565 for more controllable compatibility at the cost of source sharpness. That is a genuine trade-off set, not a settings menu.

Installing iPhoneMirror and running a first USB session

The README points to the Releases page and recommends the Setup package, iPhoneMirror-Setup-v*-x64.exe. The installer supports Simplified Chinese, Traditional Chinese (Hong Kong) and English, defaults to C:\Program Files\iPhoneMirror for an administrator install, and creates a Start menu entry with an optional desktop shortcut. A portable iPhoneMirror-v*-win-x64.zip is also published; extract it fully and run iPhoneMirror.exe. Both packages ship the .NET runtime and the separate driver manager, and the same release carries SHA256SUMS.txt for integrity checks.

There is one ZIP-specific failure worth knowing before you start. If Windows reports a corrupted image or error 0xc0e90002 for the wireless DLL from the ZIP build, the README says to use Setup instead. If you must use the ZIP, tick Unblock in the downloaded file's Properties before extracting, and re-extract; unblocking only the already-extracted DLL is not enough.

The target machine needs Apple USB support, which normally comes from the Microsoft Store Apple Devices app or a desktop iTunes install that includes Apple Mobile Device Support. Wireless discovery uses the DNS-SD already in Windows 10/11, so no Bonjour service is installed and discovery itself does not need administrator rights.

The quick-start sequence in the README is short. Install and launch, connect the device over a cable while it stays unlocked, tap Trust This Computer on the device, then install the driver for that device from the Driver entry in the left panel, which fills in Apple USB support and the capture filter driver as needed. After that, pick the device under the mirroring-source entry and press Start Mirroring at the top. The driver manager writes its UI log to %LOCALAPPDATA%\iPhoneMirror.Driver\Logs\driver-ui.log, and administrator operations log to %ProgramData%\iPhoneMirror.Driver.

If Apple USB support is entirely absent, the driver manager first tries a trusted AppleMobileDeviceSupport64.msi from its own directory or cache, then downloads and verifies the standalone MSI from the Apple Software Update Catalog, and only then falls back to downloading the official iTunes desktop package over HTTPS and extracting Apple Mobile Device Support from it.

One warning in the README is worth repeating as a rule, because the wrong tool here breaks the setup permanently for this project: do not use Zadig to replace the Apple parent device with WinUSB/libusb. iPhoneMirror detects the libusb0 UpperFilter on the target Apple usbccgp device instance, and the main program only ships the libusb0.dll user-mode runtime needed to start. It will not install or enable a kernel filter driver by itself.

Where iPhoneMirror is the wrong tool

The README lists its own limits, and they are not cosmetic. Windows ARM64 is unsupported, because the USB kernel driver and the wireless runtime lack ARM64 builds. That rules out Snapdragon X class laptops and Windows on ARM entirely, however well the rest of the stack might run there.

Bluetooth reverse control is constrained by iOS AssistiveTouch and by the Windows Bluetooth peripheral mode, so multi-touch injection is not possible. If your use case is scripted touch automation, this is not the layer for it. There is also no built-in video editor, so anything beyond capture and live output has to happen elsewhere.

The wired path carries an inherent fragility. Apple Screen Capture uses a private protocol, and the README states that future iOS updates may require adaptation. A tool built on a reverse-engineered protocol is a moving target, and the release cadence shown in the repository (three releases between 2026-08-30 and 2026-09-06) suggests active churn rather than a frozen interface. The public preview is not commercially Authenticode-signed, so Windows may show SmartScreen or unknown-publisher prompts. And the rounded-corner device matching, while it covers iPhone X, notch, mini, standard/Max, Dynamic Island and several iPad families, is described in the README as a visual fit based on public appearance and screen aspect ratios, not Apple's published industrial dimensions. Unknown devices fall back conservatively by aspect ratio, which is sensible but means a brand-new model will not look right until it is added.

The portable ZIP has a further operational gap: it does not modify the firewall automatically. The installer, in administrator mode, creates a local subnet rule named iPhoneMirror Wireless AirPlay scoped to WirelessHost.exe and the local subnet, allowing the media ports AirPlay SETUP negotiates per session, and removes the rule on uninstall. Portable users have to add the equivalent rule by hand following the guide's commands.

Compared with Apple's own Mac mirroring and with generic AirPlay receivers

The obvious alternative for an iPhone owner is Apple's iPhone Mirroring on a Mac, which is the subject of most of the search interest around this term. The difference in approach is fundamental. Apple's feature is a first-party integration between macOS and iOS, tied to an Apple ID and to specific macOS and iOS versions, and it is a remote-control experience rather than a capture pipeline. iPhoneMirror is a Windows-only capture tool with no Apple ID coupling, no cloud relay, and outputs aimed at OBS. It also is not a remote control in the general sense: the optional BLE HID path is constrained by AssistiveTouch, and multi-touch injection is explicitly out of scope.

The second alternative is a generic AirPlay receiver, which is closer in kind. The README's own comparison table frames the difference: a typical generic solution offers one connection method or splits them across two programs, uses a uniform rounded corner or a rectangular window with black bars, and is designed around switching between single devices. iPhoneMirror's counter-claims are a unified USB and AirPlay device list, per-device sessions that run simultaneously with drag-to-reorder cards, per-model screen shape, and a UI-free standalone window that OBS can capture directly without cropping a control panel or capturing the desktop. It also offers three selectable wired protocol modes per device, where generic tools usually fix protocol parameters.

That comparison is the project's own framing, so treat it as positioning rather than measurement. The parts that are verifiable from the repository structure are real: the separate driver manager executable, the four-way process split, the named-pipe boundary for wireless frames, and the GPL-3.0 licence.

Licence, updates and the maintenance you are signing up for

iPhoneMirror is GPL-3.0-only. If you redistribute it, or ship a product built on its code, the copyleft terms apply to the combined work, and the repository carries a THIRD_PARTY_NOTICES.md alongside the LICENSE file. That is a real constraint for anyone embedding this in a closed-source commercial capture product. Using it as an end user on your own machine is a different situation, but the licence question is one for your own legal review, not for a review article.

The last push to the repository was on 2026-09-07, and the newest release is v1.8.3 from 2026-09-06. That is recent enough that the project is not dormant, and the README describes a built-in update path: the program checks GitHub Releases in the background at startup, shows version, release date and Markdown release notes, and can download, verify and launch an overwrite install that reopens the program afterwards. The About page allows a manual check and separate toggles for startup checks, automatic downloads, and stable versus Beta notifications. The README states that an unavailable network or a timed-out check does not affect normal startup.

Upgrade cost is dominated by the driver layer rather than the application binaries. Because the main program only reads driver state and refuses to start a wired session when a check fails, an iOS or driver-side change surfaces as a blocked start plus an opened driver manager, not a silent failure. Budget for that interruption, and for the possibility that a future iOS release needs a protocol adaptation before wired capture works again.

Editorial conclusion

Adopt iPhoneMirror if you capture iPhone or iPad screens on a Windows 10/11 x64 machine and want USB and AirPlay to share one preview, audio and OBS path, and if you accept that the wired link depends on a libusb0 filter driver the separate iPhoneMirror.Driver.exe installs. Do not adopt it for ARM64 Windows, for multi-touch injection, or for video editing; the README rules all three out. Before committing, verify on your own hardware that the driver check passes for your exact device, that your chosen wired mode (A demo, B AirPlay experimental, or C i4Tools) gives the framing you need, and that the unsigned preview build clears SmartScreen in your environment.

Frequently asked questions

What is iPhoneMirror and what is the point of iPhone mirroring?

iPhoneMirror is a Windows 10/11 x64 tool that captures an iPhone or iPad screen and system audio over USB or local-network AirPlay, with D3D11 preview, screenshot, standalone-window and OBS output. The point is to get that capture into a Windows workflow without a cloud relay and without splitting USB and AirPlay across two programs.

How do I use iPhoneMirror?

Install the Setup package or fully extract the ZIP and run iPhoneMirror.exe, connect the device over a cable while it is unlocked and tap Trust This Computer, install the driver for that device from the Driver entry, then choose the device under the mirroring-source entry and press Start Mirroring.

Is it safe to use iPhoneMirror?

The README states that media is not relayed through a project cloud service and that the USB path does not depend on a network, with wireless discovery using the DNS-SD already present in Windows 10/11. It also states the public preview is not commercially Authenticode-signed, so Windows may show SmartScreen or unknown-publisher prompts.

Can someone mirror my iPhone without me knowing with iPhoneMirror?

The README describes the opposite workflow: a wired session requires connecting the cable, keeping the device unlocked and tapping Trust This Computer on the device, and the driver manager installs device support before a wired start is allowed. Nothing in the README describes a hidden or remote-initiated capture path.

What is an iPhoneMirror alternative on macOS?

Apple's own iPhone Mirroring on a Mac is the first-party alternative, and it differs in kind: it is a macOS and iOS integration tied to an Apple ID, while iPhoneMirror is a Windows-only capture pipeline with no Apple ID coupling and outputs aimed at OBS.

Official sources

  1. License: GPL-3.0
  2. Project website
  3. RayrenSX/iPhoneMirror on GitHub
  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/rayrensx-iphonemirror.svg)](https://hysenlabs.com/projects/rayrensx-iphonemirror)