This repository is the EFI directory (basically, a boot drive) that can boot a macOS (10.12.1, at time of writing) installation. Think of the EFI as the isolated magic boot image that will let you start macOS on unofficial hardware. Ideally, all your system compatibility changes are in this boot partition, away from macOS itself. You don't want a macOS update accidentally breaking your system. This EFI will only work with my specific setup, but may work with similar ones via tweaking.
This is the easiest way to make and track changes to improve support and manage OS updates (as needed). Not having your EFI in revision control is bad. Eventually you will end up breaking something and not remember what you did. Additionally, someone using this repository can stay up to date with my changes by simply pulling down the latest files through Github on their boot partition.
My Hackintosh Hardware
Total Cost: ~$3500 ($500 more if using a PCIe flash drive). A maxed out Mac Pro, for reference, is around ~$10,000, and is dated in comparison.
You need to have mostly the same hardware for this to work. Parts that can not be swapped easily will be noted.
- Cooler Master HAF XB II EVO, HTPC Computer Case
- Corsair RMx Series, RM750x, 750W, Fully Modular Power Supply
- Gigabyte X99P-SLI Motherboard 
- 2 x Corsair Vengeance LPX 32GB DDR4 3200
- Intel Core i7-6950X Processor 
- MasterAir Pro 3 CPU Air Cooler
- Gigabyte GeForce GTX 980Ti 
- BCM94360CD Wireless and Bluetooth Card 
- Samsung 960 EVO Series - 1TB PCIe NVMe - M.2 Internal SSD 
- This motherboard is a little wonky, so while other Gigabyte or Asus X99 motherboards may work, my EFI repository may not work with it. Change at your own risk. See Motherboard and Graphics Card Notes below.
- If you get a different CPU, you MUST modify this line in your checkout with the correct IOCPUNumber value. Each CPU core has two hyper threading cores. Subtract 1 to get the max IOCPUNumber (zero indexed). IOCPUNumber = (Number of CPU Cores * 2) - 1. For example, the 6950X has 10 cores. So (10*2)-1=19, as shown in the link.
- Do not get any Pascal (1070, 1080, or Titan X) hardware. It is not supported on Mac yet. I recommend sticking with 970/980 NVidia hardware. You must install NVidia Web Drivers after booting. That will get your graphics card drivers installed, and you won't be stuck in VESA graphics mode. Also, see Motherboard and Graphics Card Notes below.
- Any USB wifi will work. I chose this card because this is the the best/easiest way to get AirDrop working. Totally optional though. You don't have to get any wifi at all.
- Any SSD or HDD drive works. Samsung M.2 drives should work as well. Will need to patch SSDT-NVMe-Pcc.aml with the appropriate device path. See guide.
- Motherboard on F01 (Retail Bios) - Will NOT boot a CPU newer than 5820K and you need a 5820K to flash the latest BIOS to boot any CPU other than this. So
- Make sure its flashed to F22+ (ask your reseller, like NewEgg)
- Have access to a CPU which works on F01. See list of supported CPUs.
macOS Boot USB and BIOS Update Preparation (Optional)
This step is optional if you do not want a bootable USB stick and your BIOS is already up to date.
Sometimes when tweaking things, the OS drive will fail to boot. It is extremely recommended to have a backup bootable USB stick. Make tweaks to the EFI boot on your macOS drive, and if it fails to boot, fall back to the USB stick to boot. The USB boot stick is optional, but encouraged.
- Insert a USB drive into your real Mac. This will be used to update your BIOS. It will also optionally serve as a USB boot stick.
- Use Disk Utility to erase the USB stick and create a GPT drive with a single Fat32 partition. Fat32 is mandatory for the BIOS update process.
- Download the latest BIOS (F23, at time of writing).
- Unzip and copy the BIOS file to the Fat32 partition.
- Make sure the BIOS file is named GIGABYTE.bin as the previous link instructs. This is the file name required by the BIOS Updater.
macOS Drive Preparation
- Attach your Hackintosh OS drive to a real Mac. Use a USB enclosure or drive dock to do this.
- Use Disk Utility to erase and create a GPT drive.
- Mac OS Extended (Journaled) format
- Name can be anything you want
Making your Drive Bootable
This EFI directory lives on an ESP (EFI System Partition). This partition is typically hidden from operating systems.
First, get the prerequisite Clover Bootloader (I am using r3949 at time of writing).
On the real Mac, again. You will be performing the following steps (optionally twice, if creating a USB boot stick as well):
- Install Clover to the target drive (Hackintosh Drive or USB Stick) using these options:
- Change Install Location to the target drive (DO NOT FORGET THIS!!!!)
- Customize, with only the following checked:
- Install for UEFI booting only
- Install Clover in the ESP.
- Don't delete the Clover PKG file when the installation ends, you may need it later.
- After installation of Clover is complete, the installer leaves the ESP mounted.
- In that ESP, there will be an EFI directory. So typically, the directory structure will be as follows /Volumes/ESP/EFI.
- In Terminal:
cd /Volumes/ESP/ # Clover already creates an EFI directory with some files. # Wipe this out to overwrite with the EFI from this respository. rm -rf EFI # check out this EFI git clone https://github.com/koush/EFI-X99.git EFI # If you chose a different processor, modify the aforementioned file in VoodooTSCSync.kext. # Exit the Terminal and unmount ESP in Finder.app.
Optional: Repeat the above steps with the USB stick.
- On the Mac, download the latest macOS Installer (Sierra, 10.12.1 at time of writing).
- Run the Install macOS app.
- Before starting the install, click Show All Disks, and point it to the attached Hackintosh Drive.
- Install to the Hackintosh Drive
- The Mac will restart to complete the install, and then will restart once more into the new OS installation on your Hackintosh drive.
- Complete the installation, shut down, and disconnect the drive.
- Assemble your computer.
- Connect your front panel USB ports to the USB_1 connector on the motherboard. Connecting to USB_2 and leaving USB_1 empty seems to cause the USB sluggishness.
- Connect your mouse and keyboard to the USB 3.0 ports, and not the USB 2.0 ports. It's the second column of ports from the left. They are labelled on your motherboard I/O shield.
- Make sure the video card is in the slot closest to the CPU. This matters, or you will get a post boot black screen. macOS will erroneously put your graphics card to sleep, and it can not be woken. The EFI partition contains a patch to prevent this from happening in the aforementioned PCIe slot.
- The OS drive should already be set up with macOS from a real Mac. Connect it to your Hackintosh if you haven't already.
- Boot into the BIOS. Update the BIOS using the USB stick which contains the update from the previous steps.
- You may want to shut down and reset your CMOS by connecting the CMOS reset pins.
- Restart and get into the BIOS again. Load Optimized Defaults.
- You'll see 2 or 3 options show up in the Clover bootloader.
- Boot Clover
- Boot macOS
- Boot Recovery
- Choose Boot macOS
- The installation and set up of macOS should have already been completed on the original real Mac. So, you should just boot right in.
- You'll notice that the graphics are running in VESA mode (low resolution and framerate). Just need to install the Nvidia Web Drivers now. Get the appopriate download for your version of macOS and install it.
- Restart when prompted.
Wanna pimp your ride? Enable XMP Profile 1 in the BIOS. It's overclocking your RAM, so it may make your system unstable. That's why I didn't have it enabled out the gate.
Staying Up To Date
I'll be making improvements and fixes as needed. To stay up to date, use EFI Mounter to mount your EFI partition (or do it manually with mount_msdos if you know the partition, typically /dev/disk0s1).
cd /Volumes/EFI/EFI git pull # Done!
Motherboard and Graphics Card Notes - Black Screen
If you chose a different graphics card or motherboard, there's a chance that your computer will boot to a black screen (graphics card is powered down, but macOS is running).
Booting past black screen in VESA mode:
- Boot to the Clover boot selector.
- Press space bar on boot macOS.
- Select NVidia VESA mode.
- Boot with selected options
This will boot you without graphics acceleration. Then, you can fix the black screen (and restore acceleration) with one of the two following methods:
- Hard Method (permanent fix): SSDT GPU Injection
- Easy Method (must reapply after every macOS update): Modify AppleGraphicsControl.kext using AGDPfix.
- Download and run AGDPfix.
- AGDPfix needs to be run after every update (because the kext file change gets clobbered).
- Here's the change it makes in case one is curious, or wants to apply it manually (and use KextUtility to rebuild the kext cache). Just use the app though. You'll screw this up.