How kholia/osx-kvm works
OSX-KVM provides a QEMU/KVM-based macOS installation and virtual-machine setup. The documented main workflow fetches a macOS recovery image, converts it, creates a virtual disk, and starts the installer through the OpenCore boot script; users then install macOS in the VM. The repository also includes boot variants, an OpenCore EFI bundle, and binary-patching utilities. Edges reflect README-documented actions; the sampled sources do not show how the boot scripts configure QEMU or how EFI components are dispatched.
Main entry points: OpenCore.efi OpenCore core · OpenCore-Boot.sh OpenCore boot · fetch-macOS-v2.py Recovery fetcher · BOOTx64.efi EFI bootloader
Components 18
Image preparation
- Recovery fetcher
fetch-macOS-v2.py - Recovery image
- DMG converter
- Virtual disk
Boot and firmware
- OpenCore boot
OpenCore-Boot.sh - macOS boot variant
OpenCore-Boot-macOS.sh - Boot CD variant
OpenCore-Boot-CD.sh - EFI bootloader
OpenCore/EFI/BOOT/BOOTx64.efi - OpenCore core
OpenCore/EFI/OC/OpenCore.efi - ACPI tables
OpenCore/EFI/OC/ACPI - UEFI drivers
OpenCore/EFI/OC/Drivers - macOS extensions
OpenCore/EFI/OC/Kexts - Boot UI resources
OpenCore/EFI/OC/Resources
Virtual machine
- QEMU / KVM
- macOS installer / VM
Binary patching
- Kernel autopatcher
resources/kernel_autopatcher.py - IDA diff patcher
resources/idadif.py
Other components
- VM operator
Connections 19
- VM operator → Recovery fetcher: selects version
README.md - Recovery fetcher → Recovery image: downloads
README.md - VM operator → DMG converter: converts image
README.md - Recovery image → DMG converter: input image
README.md - DMG converter → Virtual disk: prepares installer
README.md - VM operator → Virtual disk: creates disk
README.md - VM operator → OpenCore boot: starts install
README.md - OpenCore boot → QEMU / KVM: launches VM
README.md - QEMU / KVM → macOS installer / VM: runs installer
README.md - VM operator → macOS boot variant: starts boot
- VM operator → Boot CD variant: starts boot
- OpenCore boot → EFI bootloader: loads EFI
- EFI bootloader → OpenCore core: dispatches to
- OpenCore core → ACPI tables: uses tables
- OpenCore core → UEFI drivers: loads drivers
- OpenCore core → macOS extensions: loads extensions
- OpenCore core → Boot UI resources: uses resources
- VM operator → Kernel autopatcher: patches kernel
resources/kernel_autopatcher.py - VM operator → IDA diff patcher: patches binary
resources/idadif.py