Highlights
- (macOS) DirectX graphics support for Windows: Modern accelerated graphics for Windows 11 is now available on UTM for the first time. The driver is still experimental and games compatibility is currently limited.
- Vulkan 1.3 graphics support for Linux: Vulkan 1.3 is now supported on Linux guests with VirtIO Venus drivers in Mesa. Additionally, OpenGL 4.1 is supported with the new Apple Core OpenGL backend (macOS only).
- Snapshots: Save your VM at any point and go back to it later from the new Snapshots tab. Works with QEMU VMs on macOS and iOS 26, and with Apple Virtualization VMs on macOS 27.
- (macOS) Apple Virtualization on macOS 27: Pass USB devices through to your VM, turn on Secure Boot for Linux, run a VM without saving changes, and let VMs talk to each other with new networking modes.
- (iOS) Better touch controls: Gestures respond immediately, with new middle-click and right-drag actions and a new drag-to-scroll touch mode.
Notes
- The minimum supported versions are now macOS 12 and iOS 15.
- (macOS) The snapshot scripting commands from v5.0.5 have been replaced by snapshot objects (
snapshots of vm,create snapshot,restore, …). Scripts that use the old commands need updating. - (macOS) To pass a USB device through to an Apple Virtualization VM (macOS 27), first assign it to UTM from the "Virtual Machine Accessories" item in the menu bar.
- We now have a development blog! Follow us for in-depth technical deep dives such as how we brought DirectX to QEMU.
- (macOS) To use the new graphics driver for Windows 11, we recommend a fresh install because the driver is still experimental and its use could lead to instability in the system. During the install of the guest tools, you will be prompted to select the experimental graphics driver. If you wish to install the new driver on a system that already is running the older display only driver, you need to run the uninstall script provided on the guest tools install ISO first.
- (macOS) Apple CoreGL backend does not support Vulkan or DirectX.
- Linux desktop rendering in Vulkan does not work due to lack of support for indirect draws for geometry shaders. Please configure your guest to use the older VirGL Gallium driver.
Changes (v5.0.6)
- Raised the minimum supported versions to macOS 12 and iOS 15 (#7758)
- Updated the DXMT and MoltenVK graphics backends
- Updated the KosmicKrisp Vulkan driver, which now requires macOS 26 or iOS 26
- Home: The welcome screen now offers to open an existing VM instead of linking to the gallery
- Snapshots: New Snapshots tab to save, overwrite, restore, rename and delete snapshots of QEMU and Apple VMs. Requires iOS 26 on iOS and macOS 27 for Apple VMs (#5484)
- Settings: Custom QEMU arguments moved to their own page, and the full command line is shown as read-only text that can be copied (#489, #7604)
- SPICE: Fixed microphone audio quality (#7751)
- SPICE: Fixed display and input freezing when audio playback hangs under memory pressure (thanks @evan314159)
- CocoaSpice: Fixed typing into the built-in serial terminal (#7814)
- Terminal: Updated SwiftTerm with a new Metal renderer, and only web links printed by the guest can be opened
- Localization: Updated Chinese (Hong Kong, Simplified) (thanks @changanmoon)
- (iOS) Fixed the VM toolbar and external display on iOS 26 and iOS 27
- (iOS 26) Reclaim Space, Compress, Resize and converting imported drives to qcow2 are now available on iOS (#4774)
- (iOS 27) Confirm before closing the window of a running VM on iPad
- (iOS) Display: Long press and pan gestures respond immediately, touches at the screen edges reach the guest, new middle click and right/middle drag actions, and a new "Touch mode (drag to scroll)" (#4738)
- (iOS) Display: Redesigned the keyboard accessory bar to match the iOS 26 keyboard
- (iOS) Input: Game controller Options and Home buttons can now be mapped
- (iOS) Settings: Fixed selecting the KosmicKrisp Vulkan driver
- (macOS) VoiceOver now announces file browse fields by their name (thanks @lprazdnik)
- (macOS) Terminal: Added a find bar (Cmd-F)
- (macOS 27) Display: New option to use the area beside the camera housing in full screen (#6183)
- (macOS 27) Display: Hot Corners are turned off while a VM is in full screen
- (macOS) Settings: Improved the notes field
- (macOS 26) Settings: The "New…" device menu now matches the sidebar
- (macOS) AVF: Sound input and output can be enabled separately, so "Output Only" no longer switches Bluetooth headphones to headset mode (#7875)
- (macOS 26) AVF: New "Shared Network (VM to VM)" and "Host Only" networking modes (#6975, #7480) (thanks @lovon-spec)
- (macOS 27) AVF: USB passthrough, also available from scripting and utmctl (#3778, #7777)
- (macOS 27) AVF: Run without saving changes (#4201, #7326)
- (macOS 27) AVF: Secure Boot option for UEFI guests (#7874)
- (macOS) Scripting: Snapshots are now scriptable objects, and utmctl gains
snapshotanddiscard-statecommands - (macOS) Scripting: Create and install macOS VMs on the Apple backend (#6092) (thanks @meisenbarth)
- (macOS 27) Scripting: Set up the user account, automatic login and Remote Login of a new macOS VM on first boot (#7757)
- (macOS) Scripting: Fixed shared directories set with
update registryfailing to open on Apple VMs (thanks @atkinsam) - (macOS) Scripting: Fixed a crash when starting a VM after removing its displays with
update configuration(#7882)
Changes (v5.0.5)
Reverted minimum version requirement imposed by v5.0.4: once again we support versions down to macOS 11.3 and iOS 14.0. However, DirectX support is still limited to macOS 13.0 and iOS 16.0.- Localization: Updated Chinese (Hong Kong, Simplified) (thanks @changanmoon)
- Config: For ARM64 configs, GICv3 is now selected by default. Previously this was only the case for > 8 vCPUs. This improves performance for higher vCPU counts < 8.
- Downloader: Path traversal and symlink checks added when unpacking downloaded ZIP files
- Wizard: scaling is now default to "nearest" when a "classic" computer emulation is created in the wizard and "linear" otherwise. Previously it was "nearest" for all configurations which led to poor scaling filter for anything with higher resolutions.
- (iOS) Support DirectX 11 with DXMT. Note that due to older iOS version (which supports TrollStore + Hypervisor), compatibility of DirectX titles is worse than macOS.
- (iOS) QEMU: Fixed MMIO BAR bug which prevented large hostmem window from working
- (iOS) Config: Improved RAM limit detection
- (macOS) DirectX 12 is now supported with D3DMetal backend (when available). You must (re)install the latest UTM guest tools experimental 3D graphics driver.
- (macOS) Support holding down Caps Lock key when input capture is enabled (#7840) (thanks @lprazdnik)
- (macOS) Settings: new options to gracefully power down all running VMs on exit (#7829) (thanks @VectorSeven)
- (macOS) Settings: support Cmd<->Opt swapping (#7837) (thanks @lprazdnik)
- (macOS) Scripting: add snapshots commands to scripting interface (#7832) (thanks @naveenrajm7)
- (macOS) AVF: Better error message when macOS guest version is too high (#7806) (thanks @sigitkusuma)
Changes (v5.0.4)
- (macOS) Added support for Neptune backend in virglrenderer for DirectX support
- Localization: Updated German (thanks @Benjamin123-tech)
- Scripting: new reload config and VLAN commands (#7710, #7711) (thanks @GregOriol)
- SPICE: Fixed various bugs in renderer that leads to performance and tearing issues
- SPICE: Fixed a memory leak that could result in large amount of memory use by UTM
- Updated USB icon (#7718) (thanks @tan9)
- Fixed crash in UTMRegistry and memory leak in AVF installer (#7701) (thanks @casey)
Changes (v5.0.3)
- Fixed regression in GRUB rendering time due to new graphics backend
- Fixed Vulkan issues on latest Wayland
- Localization: Updated Chinese (Hong Kong, Simplified) (thanks @changanmoon)
- Home: Confirm delete when using swipe left (#3086)
- Home: Prevent duplicate VMs from appearing (#7533) (thanks @DevSecTim)
- AVF: Fixed CPU spike and mic loss due to two audio devices (thanks @matapo)
- Scripting: Added ability to get IP address from AVF machines (#7643) (thanks @hellcastter)
- Scripting: Fixed "update registry" for AVM backend (#7664) (thanks @EkkoG)
- Scripting: Improve USB device matching logic (thanks @TronickDev)
Changes (v5.0.2)
- Environment variables are now logged when debug log is enabled
- Fixed a regression in GL acceleration where desktop might not render correctly (#7626)
- Added geometry shaders support to MoltenVK to enable DXVK (thanks @Anducalliew433) (#7575)
- (iOS) Fixed an issue where EAGL backend boots into a black screen (#7587)
- (iOS) Fixed a crash on iOS 15 due to incompatible symbols (#7593)
- (iOS) Fixed verbose logging for graphics backend
- (iOS) Fixed a crash when GL is enabled due to missing support for glDrawElementsInstancedBaseVertex (#7596)
- (macOS) Fixed an issue when after resizing a window if the guest outputs a different resolution size, the wrong texture resolution is used leading to misaligned cursor and warped graphics (#5781)
- (macOS) Fixed an issue where the window resizes to 0x0 when native scaling is enabled
Changes (v5.0.1)
- CocoaSpice: Reworked Metal renderer to be faster and have lower latency
- Fixed an issue where a BIOS file with a comma in the filename will fail to load
- Default FPS will now be the maximum refresh rate of the display on macOS and iPadOS (iPhone with ProMotion will still have 60Hz as the default rate but can be overridden to 120Hz through settings)
- (macOS) Fixed issue causing
HV_UNSUPPORTEDon startup with Vulkan enabled (#7579) - (iOS) Fixed resolution issue on external displays (#6040)
- (iOS) Pinch to zoom will turn off automatically updating zoom from the guest (until reset with the resize button)
- (iOS) Fixed external display menu not updating
- (iOS) Fixed incorrect scale on external displays and connecting an external display will now automatically scale to fit
- (iOS) Fixed an issue where powering off the VM will show the home screen but not terminate UTM in the background
Changes (v5.0.0)
- Add Venus support for Vulkan (#4551)
- Add Apple Core OpenGL support for OpenGL 4.1 (#4285) (thanks @startergo)
Issues
Please check the full list on Github and help report any bug you find that is not listed.
Installation
| File | Description | Installation | JIT | Hypervisor | USB |
|---|---|---|---|---|---|
| UTM.deb | Jailbroken iOS version | Open in Cydia, dpkg, or Sileo | Yes | Yes(1) | Yes |
| UTM.dmg | macOS version | Mounting and copying UTM.app to /Applications | Yes | Yes | Yes |
| UTM.ipa | Non-jailbroken iOS version (sideloading) | AltStore, etc (see guide) | Yes(2) | No | No |
| UTM-HV.ipa | Non-jailbroken iOS version (TrollStore) | TrollStore | Yes | Yes(1) | Yes |
| UTM-SE.ipa | Non-jailbroken iOS version (sideloading) | AltStore, enterprise signing, etc | No | No | No |
| UTM-Remote.ipa | Remote client | Any | No | No | No |
- Hypervisor on iOS requires an M1 iPad or newer.
- Enabling JIT may require a separate JIT enabler such as Jitterbug or Jitstreamer.