Introduction

  • Supported version: 0.5.8

About

OpenCore is an open-sourced tool designed to prepare a system for macOS booting and has been architected to alleviate many of the constraints imposed by its alternatives like Clover(these tools are sometimes referred to as "boot loaders"). The main thing OpenCore aims to do is create a more versatile and modular system which can better understand symbols and structures to make patching far more precise and effective. And with its custom prelinker, kext injection becomes macOS version agnostic meaning day 1 support on any macOS version supporting a prelinked kernel. While OpenCore is primarily designed for Hackintosh systems, it can be used in any scenario where an emulated EFI is needed with many using it on KVMs and even real Macs

Please remember that OpenCore is still new and currently in beta. While quite stable, and arguably much more stable than Clover in pretty much every way, is still being frequently updated and so chunks of configuration change quite often(ie. New quirks replacing old ones)

Lastly, this guide is only meant to be a starting point in your journey with OpenCore and not recommended for beginners unless absolutely necessary. For those starting, please see the r/Hackintosh Vanilla Desktop Guide. And those who have issues can visit both the r/Hackintosh subreddit and r/Hackintosh discord for more help.

This guide supports 0.5.8, newer versions will require you to read the Differences.pdf. Guide will be updated soon after each OpenCore release

Advantages of OpenCore

  • On average, OpenCore systems boot faster than those using Clover as less unnecessary patching is done
  • Better overall stability as patches can be much more precise : macOS 10.15.4 update as an example
  • OpenCore offers better overall security with better support for FileVault, no need to disable System Integrity Protection(SIP) and even secure boot-like functionality support via Vaulting
  • OpenCore supports boot hotkey support via boot.efi - hold Option or ESC at startup to choose a boot device, Cmd+R to enter Recovery or Cmd+Opt+P+R to reset NVRAM.
  • OpenCore is designed with the future in mind and uses modern methods to load 3rd party kernel extensions without breaking System Integrity Protection which Clover uses
  • BootCamp switching and boot device selection are supported by reading NVRAM variables set by Startup Disk just like a real mac.
  • Future development for AptioMemoryFix is directly tied to OpenCore, specifically being absorbed into OpenCore itself with the OpenRuntime.efi being used as an extension.
  • UEFI and Legacy boot modes are supported
  • More sophisticated patching such as mask patching means macOS updates have very little chance of breaking AMD systems, with AMD OSX patches supporting all versions of High Sierra, Mojave and Catalina. All future AMD OSX development is tied to OpenCore, so for 10.15.2+ you'll need OpenCore

OpenCore Tips

  • Kernel extensions are loaded in the order specified in your config file, so you must load an extension's dependencies before you load the extension itself. For example, Lilu must be loaded before WhateverGreen or VirtualSMC.
  • SMBIOS data, ACPI patches and DSDT/SSDTs are applied to all operating systems. Adjust your SSDTs with If (_OSI ("Darwin")) {}
    • Note that all SSDTs mentioned in this guide have been updated accordingly and should not affect booting
  • Some systems require pure UEFI mode to boot. (This setting is commonly called "Windows 8.1/10 UEFI Mode" by motherboard manufacturers. See also on flashing a UEFI ROM onto older GPUs)
  • Issues can occur if NVMe devices are set up as SATA devices in the BIOS.
  • OpenCore requires a version of macOS that supports a prelinked kernel, this means any installs of OS X 10.7 Lion or newer are supported with some later versions of OS X 10.6 Snow Leopard also having support.
  • Those having issues converting can refer to the Clover Conversion page