Apple Silicon Macs are limited to 2 active macOS VMs simultaneously by macOS SLA and a kernel-level enforcement via the `hv_apple_isa_vm_quota` variable in XNU. Through reverse engineering the development kernel with IDA, the author discovered that this limit can be overridden using the `hv_apple_isa_vm_quota=` and `hypervisor=` boot-args, but only when the `AppleInternal` SIP flag is set. The workaround involves downloading a Kernel Debug Kit, building a custom development kernel collection with `kmutil`, disabling SIP in recoveryOS, and setting the appropriate boot-args — enabling up to 255 concurrent macOS VMs. The post also covers how to revert the setup before OS updates and discusses potential future improvements like a kext-based override.

8m read timeFrom khronokernel.com
Post cover image
Table of contents
macOS Internals Deep DiveBuilding a Development Kernel CollectionConfiguring our Mac to boot the Development Kernel CollectionPutting our machine to work!When did Apple grace us with this feature?Undoing our work for OS updatesClosing Thoughts

Sort: