Highlights
- Multiple display and headless display is now supported for QEMU machines. You can configure 0 or more displays as well as 0 or more builtin terminal consoles. On macOS, a new window will be created for each display and builtin terminal. On iOS, you can create multiple windows (iPad) as well as plug in an external display or AirPlay (iPad or iPhone) and assign outputs to each window.
- Ventura updates to Virtualization. macOS Ventura introduces new features that is now integrated into UTM. You can now create GUI Linux VMs with EFI boot. Directory sharing now works with macOS Ventura guests. Rosetta x86_64 emulation is supported for Linux VMs on Apple Silicon. Check out https://docs.getutm.app/guides/debian/ for an installation guide. Note that base M1 chip users may experience issues that will be addressed in a future update.
- VirtFS sharing for QEMU. This alternative directory sharing backend is supported by Linux and can have better performance. Note that macOS UID are numbered differently than Linux so you may have to run
chown
in the guest. Check out https://docs.getutm.app/guest-support/linux/ for more details. - Easier Windows 10/11 installation and Windows guest tools downloader. You can now download and mount the Windows drivers and guest tools ISO image with a single click (macOS: disk icon in VM window, iOS: 3D touch context menu on home screen). Additionally, the ISO now include an "Autounattend.xml" which is recognized by the Windows 10/11 installer. When mounted to a second CD drive, the installer will install the correct drivers, bypass secure boot/TPM requirements, and launch the SPICE tools installer on first login.
- (macOS) Resize QEMU disk images. In the drives settings page, you can now expand the size of the QCOW2 disk image.
- (iOS) QEMU Virtualization for M1 iPad. With the release of TrollStore, you can now enable Hypervisor on iOS. Note that only M1 hardware and kernel have support for Hypervisor. iOS 14.4.2-14.5.1 is supported only on M1 iPad Pro jailbroken with fugu14/unc0ver. iOS 14.0-15.5b4 is supported on any M1 iPad running TrollStore.
- New documentation site. https://docs.getutm.app/ is the home of the official UTM documentation.
- New localization. Thanks to various community members, UTM is now translated to: Chinese (Simplified), Chinese (Traditional), Finnish, French, German, Japanese, Korean, and Spanish (Latin America)
Notes
- iOS 14 and macOS 11.3 are the new minimum supported systems. Please use UTM v3.x for support down to iOS 11 and macOS 11
- The configuration backend has been massively rewritten. Please backup all VMs prior to updating as you will not be able to re-open VMs saved by UTM v4 on older versions of UTM if you decide to downgrade.
- Since v4.0.6, the order of generated devices has changed to always create network devices first. This is to address an issue on some distributions (such as Ubuntu) where adding a device (drive, display, etc) would require re-configurating the network because the device name changed. Unfortunately, this change will cause the configuration issue to occur once more on any existing VM that is susceptible to the network issue. On Ubuntu, this will require you to modify
/etc/netplan/00-installer-config.yaml
and change the adapter name fromenp0s9
(or whatever it is currently) toenp0s1
(which reflects the new device ordering). Other Linux distributions may require a similar change. However, after updating the guest network configuration, you should no longer have issues with networking when making device changes to the VM.
Changes (v4.0.9)
- Fixed some broken links to documentation (#4529)
- Fixed an issue where running ARM64 emulation on ARM64 gives an error "The ‘host’ CPU type can only be used with KVM or HVF" (#4528)
- Fixed a regression where S390x and SPARC VMs cannot start due to missing USB bus
- (iOS) Fixed UTM SE cannot launch any VMs (#4516)
Changes (v4.0.8)
- Translation: Updated Japanese (thanks @MMP0)
- Translation: Updated French (thanks @FRtranslator and @alexis-martel)
- Translation: Added German (thanks @conath)
- (macOS) Disable resize button in GUI Apple VM window
- (macOS) Reverted some SwiftUI issue workarounds that are no longer present in Ventura RC
Changes (v4.0.7)
- Fixed renamed VM not appearing on next launch (#4469)
- Fixed TCP server not working (#4479)
- Fixed random network issues caused by invalid MAC address generation (you must re-generate MAC to apply the change if your VM created in UTM v4 does not have working network) (#4477)
- Fixed a crash when trying to boot Kali Linux with terminal enabled
- Fixed hypervisor on iOS 14.6-14.8
- Added new setting for serial device in TCP server mode to listen on remote/local interfaces (#4483)
- Fixed URL automation sending text to terminal
- Translation: Updated Japanese (thanks @MMP0)
- Translation: Updated French (thanks @FRtranslator)
- Wizard: Link to new documentation site (#4443, #4445)
- (iOS) Fixed disponible run option not appearing
- (macOS) Fixed settings getting stuck at information page (#4465)
- (macOS) Updated display menu option to match title bar when multiple displays are used (#4484)
- (macOS) Fixed no mouse/keyboard on Intel Apple Virtualization (#4409)
- (macOS) Fixed no audio input device on Linux running on Apple Virtualization (#4409)
- (macOS) Fixed auto-quit when all windows are closed happening when headless VM is still running
Changes (v4.0.6)
- Fixed an issue in argument generation where PS/2 input was forced even when USB was enabled (#4424)
- Validate settings on save before closing the settings dialog
- Network devices are now created first before all other devices. Note this means that networking will be broken on some existing VMs and must be re-configured! (See notes above)
- Fixed a deadlock issue when saving settings
- Fixed an error when saving a VM with an external drive selected
- Translation: Updated Japanese (thanks @MMP0)
- Translation: Updated French (thanks @FRtranslator)
- Wizard: The Windows guest tools auto-installer currently only works on Windows 10 and above. A new option is added in the wizard to make this explicit. (#4440)
- Wizard: Use VirtFS sharing by default when Linux is selected
- (iOS) Default to emulated network instead of failing when importing a VM created on macOS
- (macOS) Fixed an issue where opening a new display window from a serial window did not work
- (macOS) Fixed logic on macOS 11 where serial window was not created
- (macOS) Fixed a crash on macOS 11 when saving settings while the QEMU tab is selected
- (macOS 13) Support clipboard sharing on Linux with Apple Virtualization when
spice-vdagent
is installed - (macOS) Fixed an issue changing the boot OS where the incorrect image type is prompted
- (macOS) Perform settings validation when launching an Apple Virtualization VM to ensure selected features are available
- (macOS 12+) Set a machine identifier when launching an Apple Virtualization VM
- (macOS 13) Emulate trackpad on macOS guests with Apple Virtualization
- (macOS) Fixed an issue when a newly created VM will not launch on macOS 11
Changes (v4.0.5)
- Fixed moving an existing VM with Hypervisor enabled to a device on a different architecture. The VM will fallback to TCG and the option to disable hypervisor in settings is allowed. (#4407)
- Translation: Updated Japanese (thanks @MMP0)
- (iOS) Fixed an issue that prevented external keyboards from working (#4399)
- (iOS) Detect Hypervisor support on jailbroken devices so the option is not inadvertently enabled on non-supported devices
- (iOS) Support Hypervisor on M1 iPad running jailbroken iOS 14.5
Changes (v4.0.4)
- Fixed in issue generating configuration for IDE drives leading to PPC not booting and I/O errors on PC (#4372, #4376, others)
- Moved the SPICE tools download directory to "GuestSupportTools" under "Application Support" (previously it was just under "Application Support")
- Fixed creating a VM with illegal path characters in the name (#4385)
- Translation: Updated Japanese (thanks @MMP0)
- Translation: Updated French (thanks @FRtranslator)
- Wizard: No longer tries to download the Windows guest tools when selecting a non-Windows OS
- (iOS) Enable build with Hypervisor.framework (support limited to M1 iPad)
- (iOS) Fixed a crash when switching display in a window
- (iOS) On jailbroken devices, the memory limit will automatically be increased to the maximum, preventing the Jetsam system from terminating UTM for memory usage
- (iOS) Fixed a regression which caused the home indicator to not be hidden (#4390)
- (iOS) Fixed a regression which caused the cursor to not be captured (#4390)
- (iOS) When switching display, notification handlers are properly cleaned up (example: cursor capture and console on screen keyboard events)
- (iOS) Show the device cursor when VM is paused
- (iOS) Fixed a regression where external keyboard events are not captured
- (iOS) Fixed an error where extraneous stale VM entries show up after the container name changes (#4392)
- (iOS) Fixed a crash on iOS 14 when opening a terminal view due to SwiftTerm handling the colour configuration
- (macOS) Fixed a layout issue of the compress/resize buttons
- (macOS) Forgot to actually enable compression for the drive setting button (#4377)
- (macOS) Fixed some settings layout issue on < macOS 13 (#4374)
Changes (v4.0.3)
- Fixed an issue where changing external drive/shared directory for a QEMU VM -> exit UTM -> reopen UTM and start the VM results in the drive/share not being restored
- Disable changing a VirtFS share from the home window (this is not an supported operation)
- Better detection of UUID collision which addresses an issue where VMs with the same UUID do not show up on the home screen and other VMs show up as duplicates and clicking on any of them results in a freeze
- Fixed floppy drive argument not being correctly generated (#4362)
- Fixed an issue where ejecting an external drive or shared directory does not persist
- Fixed a memory issue when stopping or closing VMs causing UTM to crash
- Fixed a regression where an access error occurs after moving a VM
- Added the ability to download the Windows SPICE tools and drivers automatically (#4364)
- Added support for more than 2 IDE drives in PC emulation
- Restored the setting to turn off blinking cursor (#4296)
- Translation: Updated Japanese (thanks @MMP0)
- Wizard: Reworked some of the UI, text, and file selection
- Wizard: Add option to auto download and mount the SPICE tools to a second CD drive
- Wizard: Fixed an issue where the selected boot image and shared directory was not saved on the new VM
- Wizard: Recommend UUP built ISO over the VHDX by default
- Wizard: New "confused user" check will catch trying to mount an "amd64" ISO on an "arm64" guest or vice versa
- (iOS 16) Use the new NavigationSplitView for a slightly polished look
- (iOS 16) Fixed an issue where the bottom toolbar does not show up (#4325)
- (iOS) Fixed an issue where the file importer was not opening (#4365)
- (iOS 14) Fixed an issue in the settings screen where multiple drives were occupying a single cell
- (iOS 14) Fixed an issue where UTM may crash when adding a drive or hardware
- (macOS) Added the ability to re-open closed windows for a given VM (#4351)
- (macOS) Fixed an issue where restarting a VM results in duplicate windows (#4367)
- (macOS) Save the size of terminal windows (#4296)
- (macOS) Add resize QCOW2 image feature (thanks @stewartsmith)
Changes (v4.0.2)
- Removed "view.plist" for host-specific configuration settings (i.e. bookmarks to removable drives and window options) and replaced it with a new "registry" that is stored outside of the .utm bundle. Old "view.plist" settings and bookmarks will be migrated to the registry on first launch and the file will be deleted from the .utm bundle. For Apple VMs, the bookmarks will no longer be stored in config.plist and the settings will be migrated to the registry as well.
- VirtFS no longer requires SPICE to be enabled (thanks @tie)
- Fixed an issue with PPC VMs not showing 256 colours correctly (#4277)
- Fixed incorrect parsing of CPU flags (#4282)
- Do not save screenshots when running in disposable mode
- Translation: Added Spanish (Latin America) (thanks @JezerM)
- Translation: Added Finnish (thanks @marcusziade)
- Translation: Updated Japanese (thanks @MMP0)
- Translation: Updated Chinese (Simplified) (thanks @ty-yqs)
- Translation: Updated French (thanks @FRtranslator)
- (iOS) Per-display window settings (zoom, position, keyboard visibility, etc) will be stored in the new registry
- (iOS) Prefer JitStreamer over AltJit when both are available (thanks @ktprograms)
- (macOS) Fixed saving removable drives and shared directories for Apple VMs
- (macOS) Fixed missing audio entitlements (#4342)
- (macOS) Fixed QEMULauncher process not terminating when a VM is force quit
- (macOS) Fixed issue selecting text in SwiftTerm (#4297)
Changes (v4.0.1)
- Fixed an issue where an UEFI BIOS error was reported when the target does not use UEFI (#4265)
- Added Elementary OS icon (thanks @Unbinilium)
- Updated ja localization (thanks @MMP0)
- Updated fr localization (thanks @FRtranslator)
- Changed the icon for "Serial" so it appears on iOS 14 and macOS 11 as well
- Fixed custom icon not showing up for "legacy" configurations
- Fixed an error trying to migrate "legacy" configuration when "Images" does not exist (#4266)
- Fixed USB redirection (#4263)
- (iOS) Fixed a toolbar issue where USB button overflowed on screen.
- (iOS) Fixed resume button not appearing on < iOS 16
- (iOS) Attempt to close the download progress pop-up after download completes (#4261)
- (iOS) "Open" popover refuses to show up again after swiping down (#4260)
- (iOS) Hide "Add" text on iOS 14 settings
- (iOS) Fixed crash on iOS 14 settings when attempting to use the picker (#4270)
- (iOS) Fixed an issue on iOS 14 where picker selection was being reset
- (iOS) Fixed an issue where the USB icon is stuck on busy after a device disconnects
- (macOS) Fixed a crash trying to change shared directory for Apple VM (#4271)
- (macOS) Wizard created invalid target configuration for virtualized targets (#4274)
Changes (v4.0.0)
- USB redirection support in terminal mode
- Configuration file format changed, newly saved VMs will not be compatible with older versions of UTM
- Newly imported disk images will be converted to QCOW2 automatically
- Settings: new layout with support for multiple {Display, Serial, Network, Sound} devices (#3585)
- Support multiple displays (#220)
- Added Japanese localization (thanks @MMP0)
- Support adding PTTY (macOS only), TCP client, and TCP server serial connections for QEMU machines (address should show up in the home screen) (#3546)
- Support headless display (remove all displays and built-in serial ports in the settings) (#2280)
- Support redirecting QEMU monitor and GDB stub to a serial port
- Support zstd compression for QCOW2 images and use zstd as default for image compression (#4211)
- Update ANGLE (GL backend) to latest git commit
- Added French localization (thanks @FRtranslator)
- Fixed microphone recording silence (#219)
- Fixed a crash when attempting to delete a QEMU additional argument
- Option in VM settings to use virtfs/9pfs for file sharing (#2184)
- Option in VM settings to change VGA RAM size (#4034)
- Option in VM settings to enable virtio-balloon driver (#4136)
- Invert mouse scrolling is now a global setting rather than a per-vm configuration option
- (iOS) Replaced hterm.js with SwiftTerm for terminal mode (#3473)
- (iOS) Attach to JitStreamer (set IP address in Settings app and UTM will try to connect automatically on launch) (thanks @ktprograms)
- (iOS) Automatically resize the display to fit the screen when the resolution changes if the resize toolbar option is used
- (iOS) Reimplemented the USB and Drives menu with a better UI
- (iOS) On iPadOS 16, show the menu bar when holding Cmd on the keyboard. On previous versions, an on-screen help will show supported commands
- (iOS) Improved audio handling including: output when on silence, mixing with other apps, working when both recording and outputting (including with another app) (#3996)
- (iOS) Added a global setting to always prefer the built-in microphone to a bluetooth microphone
- (macOS) Fixed running from shortcut in Apple VMs (no longer need to re-import after each launch)
- (macOS) Improved IPSW selection interface and support drag and drop (thanks @pointum)
- (macOS) Fixed running unsigned builds
- (macOS) Removed some deprecated global settings
- (macOS) Fixed an error when trying to download an IPSW and the Caches directory does not exist (thanks @LostInCompilation)
- (macOS) Fixed an issue where a VM could be started twice if the home screen's toolbar is used leading to data corruption (#4166)
- (macOS 13+) Boot into recoveryOS (to disable SIP, etc) by right clicking on the VM and selecting "Run in recovery..." (#3526)
- (macOS 13+) Option in VM settings to enable Rosetta for x86_64 emulation (#4100)
- (macOS 13+) Option in VM settings to enable clipboard sharing (SPICE support needed on the guest) (#4121)
- (macOS 13+) GUI display for Linux VMs (#4120)
- (macOS 13+) Add removable drives, will show up as USB mass storage
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(2) | Yes(1) | Yes |
UTM.SE.ipa | Non-jailbroken iOS version (sideloading) | AltStore, enterprise signing, etc | No | No | No |
- Hypervisor on iOS requires an M1 iPad.
- Enabling JIT may require a separate JIT enabler such as Jitterbug or Jitstreamer.