Table of Contents

Hackintosh

Two main options available, either using the Clover bootloader, or the OpenCore bootloader. For why a custom bootloader is necessary:

To perform this bootloading, a custom bootloader is necessary to load MacOS. Notably, OpenCore supports creation of MacOS images on the Windows platform (yay), as opposed to Clover only on Linux and Mac.

Note an interesting article on the necessity of USB mapping for newer OSes since macOS 11.3.

OpenCore installation steps

The tutorial is best referenced from the official documentation. Replicating here for a summary only.

# Download OpenCore release, from https://github.com/acidanthera/OpenCorePkg/releases

# Download Catalina (macOS 10.15) base image
cd OpenCorePkg/Utilities/macrecovery/
python macrecovery.py -b Mac-00BE6ED71E35EB86 -m 00000000000000000 download

# ... alternatively, download Big Sur (macOS 11.2) base image from
# https://archive.org/details/base-system_202102 (link provided by OpenCore)

Subsequently:

  1. Clear all partitions from a USB flash drive, then copy the .dmg and .chunklist files into a parent directory named com.apple.recovery.boot in the USB root.
  2. Copy OpenCorePkg/X64/EFI directory into the USB root as well (if using 32-bit system, use the EFI folder under IA32 instead), from either the DEBUG or the RELEASE editions of OpenCorePkg.
    • Debug mode adds 3-5 seconds for boot time but allows easier troubleshooting, plus it's easy to transition back to release edition.

Clean up OpenCore files that are not used in macOS, i.e. leave the following files:

EFI
+-- BOOT/
|   +-- BOOTx64.efi
+-- OC/
    +-- ACPI/  (empty)
    +-- Drivers/
    |   +-- OpenRuntime.efi
    |   +-- OpenPartitionDxe.efi  (only for macOS 10.7-10.9)
    |   +-- OpenUsbKbDxe.efi  (only for non-UEFI/pre-2012 macOS)
    +-- Kexts/  (empty)
    +-- Resources/  (empty subdirectories)
    +-- Tools/
    |   +-- OpenShell.efi  (recommended for debugging)
    + OpenCore.efi

...and I am now stuck because documentation only specifies up to Comet Lake (10th gen) devices, while I'm on Alder Lake (12th gen)... The documentation seems to suggest that spoofing an Intel CPU as a supported model seems to work... but nope! My discrete GPU does not work (due to Nvidia/Apple not working together to attain driver support anymore), so need to rely on the integrated GPU on my Intel chip, but framebuffer patches for UHD Graphics 770 not out yet, as of 2022-07-25. Will just have to wait and see.

Now looking for virtualization alternatives.

Virtualization

Some alternatives:

Others