Open-source project
nfzerox/VirtualMacOniPad avatar
nfzerox/VirtualMacOniPad

Virtual Mac on iPad: running macOS on a jailbroken M1 iPad

People have dreamed of running macOS on iPad for more than a decade. Today, that dream comes true. With Virtual Mac, iPad finally breaks free from iPadOS, enabling pro apps like Xcode, Terminal, Final Cut Pro, Logic Pro, and Pixelmator Pro to run directly on device. Requires iPad Pro (M1, M2) or iPad Air (M1) running iPadOS 14 up to 16.3.1.

1,716 stars77 forksObjective-CMIT

At a glance

What is it?
Virtual Mac on iPad puts a full macOS guest on an M1 or M2 iPad through hardware CPU virtualization and paravirtualized graphics, but only after a jailbreak and only on iPadOS 14 through 16.3.1. The trade-off is a narrow device window against genuinely unusual capability.
Who is it for?
Adopt Virtual Mac on iPad if you already own an M1 or M2 iPad, are willing to jailbreak it on iPadOS 14 through 16.3.1, and want a macOS guest with Metal acceleration for Xcode, Terminal or Final Cut Pro. Do not adopt it if your iPad is already past 16.3.1, if you run the Dopamine-roothide jailbreak, or if you need iCloud and Apple Account sign-in inside the guest.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 22 days ago.
What is it written in?
Mainly Objective-C, according to GitHub's language statistics.

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

DEEP OPEN-SOURCE ANALYSIS

The problem: iPadOS cannot run the Mac apps people actually need

An M1 iPad has the same class of silicon as an M1 Mac, yet iPadOS gives it no way to run Xcode, Final Cut Pro, Logic Pro or Pixelmator Pro as desktop builds. Apple ships no hypervisor-facing path for a user to boot macOS on the tablet, and the README frames the project as the end of a decade-long line of attempts, linking to earlier write-ups on MacPad, MacWSBootingGuide, QEMU on Apple silicon and Mac apps on iOS. Virtual Mac on iPad is aimed at that gap: people who own a supported iPad and want a macOS guest on the device itself rather than streamed from a Mac.

The audience is narrow by design. The README requires an iPad Pro (M1, M2) or iPad Air (M1) running iPadOS 14 up to 16.3.1, and models with 1 TB or 2 TB of storage carry 16 GB of RAM, which the README calls the best configuration. Anything newer than 16.3.1 is out of scope, and the FAQ explains why: hypervisor support was removed from the iPadOS XNU kernel in 16.4. That is not a bug the project can patch around, it is a platform boundary.

How the virtualization stack works, and where the graphics acceleration comes from

The project uses hardware CPU virtualization and paravirtualized graphics acceleration. The README states it is built on an extracted and modified version of Apple's macOS virtualization stack, which is why the authors claim roughly the same class of CPU and Metal performance as VirtualBuddy or UTM virtualizing macOS on an M1 or M2 Mac. That claim is the project's own; treat it as a design statement, not a measured result.

The repository layout backs this up. The only top-level directory besides LICENSE, README.md and .gitignore is VirtualMac/, and the README references paths inside it such as VirtualMac/vz/guest/OpenGLPVGCompat.m for the OpenGL compatibility layer and VirtualMac/screenshots/ for images. The vz naming points at Apple's Virtualization framework, which matches the description of an extracted, modified stack rather than an emulator. The README also says the latest update is first to support Final Cut Pro and OpenGL/OpenCL acceleration in virtualized environments, achieved through a modified GLDRendererMetal. Metal acceleration is listed as available in all supported macOS versions; Final Cut Pro and OpenGL/OpenCL acceleration need macOS 14 Sonoma or later. The guest runs macOS 12 Monterey through macOS 26 Tahoe, with experimental macOS 27 Golden Gate support, and macOS 15 Sequoia is the recommended install.

Installing Virtual Mac on iPad from the Sileo repository

There is no App Store path and no sideloaded IPA described in the README. Installation is two steps: jailbreak a supported iPad, then add a Cydia-style repository in Sileo and install the package from there. The README links to ios.cfw.guide for the jailbreak itself, pointing at Dopamine for iPadOS 15 up to 16.3.1 and Taurine for iPadOS 14 up to 14.8.1, and notes that if the jailbreak fails you should switch to a different exploit in the Dopamine or Taurine settings.

The repository URL is the part you need to copy exactly:

bash
https://nfzerox.github.io/cydia/

Add that URL as a source in Sileo, then search for Virtual Mac in the package list and install it. After installation, the guest macOS is set up inside the app, and the README points at nfzerox.github.io/virtual-mac/app/ for downloading the latest compatible version of Xcode, Final Cut Pro Trial, Logic Pro Trial and Pixelmator Pro Trial. When the macOS installer asks you to sign in, choose Set Up Later, because iCloud and Apple Account sign-in are not supported inside the guest.

Input works without a Magic Keyboard. Tap to click, tap with two fingers for a secondary click, and scroll with two fingers. The virtual keyboard is reached through the keyboard icon, and a press-and-hold on the bottom-right icon switches it to Floating mode. If the on-screen HUD is in the way, it can be moved to another corner or hidden from the More menu; to bring it back, press and hold the Virtual Mac icon on the iPad Home Screen and tap Show Virtual Mac Controls.

Automatic startup and the escape key workaround

Two configuration details decide whether the setup feels like a Mac or like an app you keep reopening. To boot straight into the guest, enable System Settings > Users & Groups > Automatically log in inside macOS, set System Settings > Lock Screen to Never, then open Virtual Mac's own in-app Settings and change Start on Launch from Show Library to the name of your virtual Mac. To get the library back, press and hold the Virtual Mac icon on the iPad Home Screen and tap Show Library.

For keyboards without a hardware Escape key, the README gives Command + Period as the substitute, and notes that another key can be mapped to Escape under Settings > General > Keyboard > Hardware Keyboard > Modifier Keys. These are small things, but they are the difference between a demo and something you can sit in front of for an afternoon.

Where it breaks: roothide, DFU errors and the iPadOS 16.4 wall

The supported device and OS window is the first real limitation, and it is enforced by Apple, not by the project. iPadOS 16.4 and later removed hypervisor support from the XNU kernel, so newer iPads cannot be added without kernel-level changes the README does not claim to have. If your iPad has already been updated past 16.3.1, this project is not for you, and downgrading is not something the documentation offers.

The second failure mode is the jailbreak environment. Virtual Mac does not support the Dopamine-roothide environment. The README tells users to open Dopamine-roothide > Settings > Remove Jailbreak, then switch to the official version of Dopamine. That is a destructive step for anyone whose other tweaks depend on roothide.

Two named errors have documented workarounds. An install-launcher failed: Permission denied error is addressed by updating to the latest version of Virtual Mac; if it persists, the README directs you to Filza to change the access permissions of /var/root to Read, Execute for Others, with a screenshot linked from the repository. An Unexpected device state 'DFU' expected 'RestoreOS' error is also addressed by updating first; if it persists, the README says to open Sileo > Packages, search for usbmuxd and temporarily uninstall it. Both fixes touch system-level state, so they are not casual. The README's troubleshooting section is also truncated mid-sentence on the launcher becoming root, which means at least one documented error path is incomplete in the current text.

Virtual Mac on iPad versus VirtualBuddy and UTM

The README itself names VirtualBuddy and UTM as the comparison points, and the difference is the host. VirtualBuddy and UTM virtualize macOS on an M1 or M2 Mac, where the host OS already exposes the virtualization framework and no jailbreak is involved. Virtual Mac on iPad does the same class of work on a tablet, which is why it requires an extracted and modified version of Apple's macOS virtualization stack and a jailbroken device to load it. The project is not affiliated with UTM, VirtualBuddy, Dopamine or Apple, and the README says so explicitly.

The capability claim that separates it is Final Cut Pro and OpenGL/OpenCL acceleration in a virtualized environment, which the README says Virtual Mac on iPad is first to support, through the modified GLDRendererMetal. If you only need a macOS guest and you already own a Mac, VirtualBuddy or UTM on that Mac avoids the jailbreak entirely and is the simpler choice. The iPad version only makes sense if the tablet itself is the machine you want to carry.

Maintenance, releases and the MIT licence

The repository is not archived, and the last push was on 2026-08-27. Three releases landed within four days of each other: 1.2.1 on 2026-08-24, 1.2.2 on 2026-08-26 and 1.2.3 on 2026-08-27, which matches the README's advice to update through Sileo before troubleshooting anything. The version cadence is fast, and the troubleshooting entries for the permission and DFU errors both begin with updating, so version drift is a real part of using this project.

Upgrade cost is low in the ordinary case: Sileo updates the package, and the macOS guest lives separately from the package. The cost that is not low is platform drift. Because support stops at iPadOS 16.3.1, every iPadOS update on a supported device is a decision, and there is no documented rollback path in the README if a guest stops booting after a change. The project is MIT licensed, which is permissive and places few conditions on reuse or redistribution, but the licence covers the project's own code, not Apple's virtualization stack that the README says was extracted and modified, and not the macOS guest you install. Anyone planning to redistribute a build should read the licence text in the repository rather than assume the MIT grant covers every component.

Editorial conclusion

Adopt Virtual Mac on iPad if you already own an M1 or M2 iPad, are willing to jailbreak it on iPadOS 14 through 16.3.1, and want a macOS guest with Metal acceleration for Xcode, Terminal or Final Cut Pro. Do not adopt it if your iPad is already past 16.3.1, if you run the Dopamine-roothide jailbreak, or if you need iCloud and Apple Account sign-in inside the guest. Before installing, verify three things: that your exact iPad model and iPadOS build are in the supported list, that your jailbreak is the official Dopamine or Taurine rather than roothide, and that you can live without iCloud, since the FAQ states signing in is not supported.

Frequently asked questions

Can I run a virtual Mac on my iPad?

Only on an iPad Pro (M1, M2) or iPad Air (M1) running iPadOS 14 up to 16.3.1, and only after jailbreaking the device and installing Virtual Mac from the Sileo repository. The README also notes it works on iPhone 14 Pro and iPhone 14 Pro Max on iOS 16 up to 16.3.1.

What is the best virtual machine app for iPad?

The material only describes Virtual Mac on iPad itself, which uses hardware CPU virtualization and paravirtualized graphics acceleration on supported M1 and M2 iPads. It does not compare other iPad virtualization apps, so no ranking can be given from this source.

Can you virtualise MacOS?

Yes, according to the README, which supports macOS 12 Monterey through macOS 26 Tahoe with experimental macOS 27 Golden Gate support, recommending macOS 15 Sequoia. It states the project uses an extracted and modified version of Apple's macOS virtualization stack.

How can I connect my iPad to my Mac using VNC?

The README does not describe a VNC path for Virtual Mac on iPad. It documents on-device input instead: tap to click, two-finger secondary click, two-finger scrolling, and a virtual keyboard toggled from the keyboard icon.

Official sources

  1. Issues
  2. License: MIT
  3. nfzerox/VirtualMacOniPad on GitHub
  4. README
  5. Releases
Community notes

Community notes