Windows on iPhone: Using UTM Virtual Machine to Install Windows on iOS
Virtual machines like VirtualBox or VMware are familiar tools for most desktop operating systems. Until recently, iOS didn’t have any virtualization tools available to the general public. Now, Apple mobile devices finally have a full-featured virtualization tool—UTM—which supports a wide range of processor architectures.
What is UTM?
UTM can run without jailbreak on iOS 11, 12, and 13, as well as on devices with the A12 chip running iOS 14.2 and 14.3. However, you’ll need to use a developer certificate since UTM is not available in the official App Store but is installed via the third-party AltStore. Free developer certificates for iOS must be renewed every seven days, and AltStore automates this process. Jailbreak is only required to run the app on iOS 14 and above, and the UTM developers recommend using Jitterbug or AltJIT for installation.
UTM supports over 30 processors, including x86_64, RISC-V, and ARM64. It’s based on QEMU. Since iOS devices lack hardware virtualization support, UTM uses TCG for dynamic code translation and JIT compilation, which significantly reduces performance. Also, GPU virtualization is not supported, so DirectX and OpenGL are unavailable, limiting the ability to run most modern Windows games. However, apps and games that don’t require advanced graphics can run under this emulator.
How to Install UTM
On a Jailbroken Device
- Download and install the AppSync Unified app from the repository https://cydia.akemi.ai using Cydia. Go to “Sources,” tap “Edit,” then “Add,” enter the URL, and tap “Add Source.” Then, install AppSync Unified from Karen’s Repo.
- Next, add the repository https://cydia.getutm.app/ in Cydia and install the UTM app from there.
On a Non-Jailbroken Device
- Install the latest versions of iTunes and iCloud on your computer.
- Download AltServer from altstore.io (requires at least Windows 10).
- Connect your iPhone to your computer, close iTunes, click the AltServer icon in the system tray, and select Install AltStore → your device name. Enter your Apple ID credentials (it’s recommended to create a new account for this purpose).
- On your iPhone, go to Settings → General → Device Management → your Apple ID → Trust.
- Open AltStore, go to Settings, select Sign in with Apple ID, and enter your Apple ID email and password.
- In AltStore settings, add the repository https://alt.getutm.app and install UTM from there. Alternatively, you can download the UTM .ipa file from GitHub and install it using AltStore, making sure to sign it with your Apple ID.
Creating a Virtual Machine in UTM
- Open UTM and tap the plus icon in the top right corner.
- Enter a name for your virtual machine in the Name field.
- Select the processor architecture in the Architecture list.
- Choose the system type in the System field (the default is usually optimal).
- Set the amount of memory in the Memory menu (it cannot exceed your device’s available RAM).
- In the Setup Drives/Images section, configure the disk your VM will boot from. UTM supports the QCOW2 format.
- For Image Location, select the mounting method (IDE is recommended for emulating a PC; virtio is available for ARM devices).
- Optionally, adjust display and input settings, such as the virtual keyboard and mouse emulation.
Once setup is complete, your VM will appear on the main UTM screen. Tap its thumbnail to start it. If you’ve attached a disk image with an OS, it will begin loading.
Managing Your Virtual Machine
The top of the running VM screen has a special panel with eight buttons. The first three let you power off, pause, or restart the VM. The next buttons toggle full screen, show/hide the on-screen keyboard, and open the ports/disks settings. The rightmost button hides the panel. The interface is simple and sufficient for basic VM management, though the buttons may appear small on an iPhone but are more comfortable on an iPad.
Using Prebuilt VM Images
The UTM Gallery offers several prebuilt virtual machines with operating systems like ArchLinux ARM, Debian 10.4, Mac OS 9.2.1 for PowerPC, ReactOS 0.4.14, Sun Solaris 9 for SPARC, and Ubuntu 14.04. Other OSes, such as Windows, require manual installation and a distribution image.
If you have jailbreak, you can use the Filza file manager to extract the downloaded ZIP archive to \var\mobile\documents
, then copy the folder to \user\containers\data\applications\utm\documents
. The VM will then appear in UTM.
Without jailbreak, you can download the VM to your computer, extract it, upload it to Yandex Disk, and then use the Files app on your iPhone to copy it to “On My iPhone → UTM.” You can also add the folder to offline mode in the Yandex Disk app for faster access. The VM will then be available in UTM.
Installing an OS from a Distribution
To install an OS like Windows XP (which is less resource-intensive), copy the bootable .iso image to Yandex Disk, then move it to “On My iPhone → UTM” in the Files app. When creating the VM, add the image in the Drives/Images section by tapping +, then Path, +, and Import. Create a virtual hard disk by tapping + and Create, then enter the name and size. For a removable disk, select the IDE interface and enable the Removable toggle. Save your settings.
After starting the VM, tap the CD icon in the control panel, select the removable disk, tap Change, choose the disk image from the UTM folder, and tap Done. Restart the VM, and the OS installation will begin automatically.
Results and Conclusions
With UTM’s tools for various operating systems, you can create shared folders between the VM and the host OS for file transfers (see the Gallery section on the developer’s website). In theory, you could work in Microsoft Office inside the VM and save documents to your device.
However, in practice, UTM is poorly documented, the OS inside the VM is extremely slow and laggy, and during Windows XP installation, I encountered many BSODs and had to try several distributions before finding one that worked. The VM also occasionally crashes with an internal error for unknown reasons. If you incorrectly configure the VM’s hardware (e.g., set memory too close to your device’s available RAM), iOS will silently close UTM without warning.
Ultimately, working with online editors like Office 365 or Google Docs on an iPad is much more convenient than setting up virtual machines, and there are emulators for games on iOS. Still, I hope UTM will improve over time, become more stable and faster, and offer better documentation.