Apple Silicon and Virtual Machines: Beating the 2 VM Limit (2023)
L'auteur décrit la limite de deux machines virtuelles macOS actives imposée par le contrat de licence et signalée par Virtualization.framework. L'enquête a montré que la restriction est implémentée dans le noyau XNU via la variable hv_apple_isa_vm_quota et qu'un boot-arg permettait de la contourner, mais les kernels de production vérifient un flag AppleInternal protégé par SIP. La méthode proposée consiste à assembler une Kernel Collection de développement à partir du Kernel Debug Kit, à la déployer avec kmutil et à configurer le démarrage depuis macOS Recovery en activant le boot-arg hypervisor et en définissant hv_apple_isa_vm_quota via nvram. Une fois configuré, l'auteur a pu lancer de nombreux invités macOS simultanément (par exemple neuf) avec des outils comme UTM, Viable ou Parallels, au prix d'une charge matérielle accrue. L'utilisation d'une Kernel Collection personnalisée empêche les mises à jour système simplifiées et il faut rétablir la politique de démarrage en recovery pour revenir au noyau stock, et l'auteur évoque des pistes futures pour automatiser le processus ou remplacer la variable par une extension.