Gathering files

Gathering files

This section is for gathering miscellaneous files for booting macOS, we do expect you to know your hardware well before starting and hopefully made a Hackintosh before as we won't be deep diving in here.

What's the best way to figure out if my hardware is supported?

See the supported hardware section for some better insight into what macOS requires to boot, hardware support between Clover and OpenCore are quite similar.

Firmware Drivers

These are the drivers used for OpenCore, for the majority of systems you only need 3 .efi drivers to get up and running:

For extra functionality with OpenCore:

  • UsbKbDxe.efi

    • Used for Apple Hotkeys and FileVault support when OpenCore's built-in drivers do not work with your firmware. Recommended testing without it first.

  • VirtualSmc.efi

    • Only used for proper FileVault support, cannot be used with FakeSMC.

For a full list of compatible drivers, see 11.2 Properties in the OpenCorePkg Docs. These files will go in your Drivers folder in your EFI


A kext is a kernel extension, you can think of this as a driver for macOS, these files will go into the Kexts folder in your EFI

All kext listed below can be found pre-compiled in the Kext Repo. Kexts here are compiled each time there's a new commit.

Must haves:

  • VirtualSMC

    • Emulates the SMC chip found on real macs, needed for all hacks

  • Lilu

    • A kext to patch many processes, required for AppleALC and WhateverGreen and recommended for VirtualSMC

VirualSMC Plugins:

  • SMCProcessor.kext

    • Used for monitoring CPU temperature, doesn't work AMD CPU based systems

  • SMCSuperIO.kext

    • Used for monitoring fan speed, doesn't work AMD CPU based systems

  • SMCLightSensor.kext

    • Used for the ambient light sensor on laptops, desktops can ignore

  • SMCBatteryManager.kext

    • Used for measuring battery readouts on laptops, desktops can ignore


  • WhateverGreen

    • Used for graphics patching, all GPUs benefit from this kext.


  • AppleALC

    • Used for AppleHDA patching



  • USBInjectAll

    • Used for injecting intel USB controllers, H370, B360, H310 and X79/X99 systems will likely need XHCI-unsupported as well(X299 may need this for HighSierra). Does not work on AMD CPU based systems

WiFi and Bluetooth:

  • AirportBrcmFixup

    • Used for patching non-Apple Broadcom cards

  • BrcmPatchRAM

    • Used for uploading firmware on broadcom bluetooth chipset, required for all non-Apple Airport cards.

    • To be paired with BrcmFirmwareData.kext

      • BrcmPatchRAM3 for 10.14+

      • BrcmPatchRAM2 for 10.11-10.14

      • BrcmPatchRAM for 10.10 or older

AMD CPU Specific kexts:

  • NullCPUPowerManagment

    • AMD CPUs cannot use Intel's power management so we need to nullify it


    • USB fix for AMD FX systems

  • VoodooHDA

    • Audio for FX systems and front panel Mic+Audio support for Ryzen system, do not mix with AppleALC


  • AppleMCEReporterDisabler

    • Useful starting with Catalina to disable the AppleMCEReporter kext which will cause kernel panics on AMD CPUs and dual-socket systems:

      • MacPro6,1

      • MacPro7,1

      • iMacPro1,1

  • VoodooTSCSync

    • Needed for correcting TSC on Asus's HEDT/Server motherboards

Please refer to for a full list of supported kexts


So you see all those SSDTs in the AcpiSamples folder and wonder whether you need any of them. Well, we'll be going over a couple to see whether you need them. Do note you'll need to compile these SSDTs with MaciASL and please read them before compiling. Some require you to adjust them for your specific system(ie: EC0 to H_EC for SSDT-EC-USBX). These files will go in your ACPI folder in your EFI

If you're unsure which you need, the specific ones for each platform are mentioned in the ACPI section of the guide.



    • Alternative to SSDT-AWAC when not compatible with your system.


    • Needed to setup USB power and such correctly, prefered option over renaming XHCI and required for booting macOS Catalina. This SSDT is meant for Skylake+ systems, please use SSDT-EC and SSDT-EHCx_OFF for older systems. See the What's new in macOS Catalina for more info regarding Embedded controller fix.


    • Needed to setup USB power correctly on pre-skylake systems and required for booting macOS Catalina.


    • Prefered alternative over renaming EHCI for setting up USB correctly on pre-skylake systems like for Z77, Z87, Z97, X79 and X99


    • Sets PluginType, Clover alternative would be under Acpi -> GenerateOptions -> PluginType. Do note that this SSDT is made for systems where AppleACPICPU attaches CPU0, though some ACPI tables have theirs starting at PR00 so adjust accordingly. X99 and X299 users need to verify if the path is correct(ie: \_PR.PR00 vs \_PR.PC00.PR00)


    • Adds an SMBus device and fixes DeviceProperties injection via _DSM for when adding properties via an SSDT.

Remember to verify that the ACPI path in the SSDT matches up with your DSDT, extremely important for X79, X99 and X299 users