Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

ammaarreshi/WindowsiOS

DevOps & Self-hosting

Runs unmodified Windows 11 ARM64 on non-jailbroken iOS devices via an ARM64-to-ARM64 JIT and a custom virtual PC platform.

183
30
C
GPL-2.0
5 days old

What it is

WindowsiOS is a Windows 11 24H2 ARM64 virtual machine for non-jailbroken modern iOS hardware. Because Apple removes Hypervisor.framework from stock iOS and TXM signs page tables on newer chips, the project instead implements an ARM64-to-ARM64 dynamic binary translator with a 4 KB stage-1 software MMU, and reproduces the PC platform Windows NT expects: UEFI flash with persistent NVRAM, ACPI 6.3, GICv3 with ITS MSI-X, PCIe root complex, NVMe 1.4, USB 3.0 xHCI, Intel ICH6 HD Audio and WHQL VirtIO-Net over libslirp NAT.

The README reports an end-to-end result on an iPhone Duo (iPhone19,4, A20 Pro, iOS 27 TXM): unmodified retail Windows 11 24H2 ARM64 reaches the desktop, runs Microsoft Edge, an Electron IDE, Prism x86-64 emulation, duplex audio and a SafariSheet-based OAuth bridge, with idle memory around 1.46 GB of the 4.5 GB guest RAM README overview. The target audience is people interested in OS virtualization internals on Apple hardware, and the code is C plus Swift/UIKit with an iOS app target.

Quick start

Local development is done on an Apple Silicon Mac with Xcode, xcodegen, meson, ninja, pkg-config, libslirp, LLVM/lld and Python 3. You also need a retail Windows 11 24H2 ARM64 ESD, EDK2 QEMU_EFI.fd, and the virtio-win NetKVM drivers placed in work/ as described in the build and provisioning steps.

# cross-compile iOS dependencies into ios/deps/
./scripts/build_ios_deps.sh

# build the macOS VM runner, sparse packer, iOS static library and run core tests
make -j8 all ios-lib test-core

# provision Windows into work/windows11.img + work/vars.fd
python3 scripts/provision_windows_arm64.py

# strip background services and pack a sparse image
python3 scripts/optimize_windows_lite.py
./build/hvsparse pack work/windows11_lite.img work/windows11.hvsparse

# run the VM on macOS
HV_OAUTH_BRIDGE=1 ./build/winvm --cpus 4 --ram 4608 \
  --bios work/code.fd --vars work/vars.fd --disk work/windows11_lite.img

For a physical iPhone, the README generates the Xcode project with xcodegen, builds the Release iphoneos bundle, installs it with xcrun devicectl device install app, copies the image and firmware files into Documents/Machines/Win11, and launches through ./scripts/launch_on_duo.sh <DEVICE_UDID> me.ammaar.windowsios, which uses LLDB to request the TXM JIT and ledger-exempt RAM before detaching device instructions. No disk images, UEFI binaries or Windows ISOs are committed to git; they are produced locally.

Constraints

The provisioning pipeline assumes macOS on Apple Silicon and a local copy of Windows installation media and drivers; the README does not document a prebuilt image or a no-build path. On-device launch depends on debugger attachment and TXM memory tricks, and is described against iOS 26/27 on the A20 Pro foldable iPhone, so support on other models is not established. Guest RAM is fixed at 4,608 MiB in the example, and the interface layout (clamshell deck, trackpad, SafariSheet OAuth) is built around that device's hinge and screen. The project is licensed GPL-2.0-or-later and includes third-party components under their own licenses, listed in THIRD_PARTY_NOTICES.md license.

HotRepo's take

The repository appeared on HotRepo's new-project list on 2026-11-12 with 12 stars gained over roughly two hours and has not recorded a ranked GitHub daily position. The README is unusually specific for its claims: it names the kernel mechanisms it had to emulate (TCR_EL1.A1 = 1 ASID handling, unaligned LRCPC2 for Prism, the LDXR XZR exclusive bug) and links each to a source file such as core/mmu.c, core/translate.c, devices/hda.c and ios/Sources/Native/winios_jit.c. That level of implementation detail is the main reason to read it, but the project is early and the on-device setup route is demanding, so the value for most readers is in the virtualization engineering rather than an out-of-the-box Windows-on-iPhone install.

Written by AI from the project's README, updated . The project's own docs are the source of truth.

You might also like

  1. UniXNU/UniXNUBoots iOS and macOS on non-Apple ARM64 devices via a UEFI layer, aimed at porters and tinkerers.Python899