What Kexts Do I Need?
VirtualSMC.kext is a requirement - it emulates the SMC chip found on real macs, and convinces the OS that yes, this is a real Mac. Without it, no Hackintosh :(
All of the following kexts are available on this repo courtesy of Goldfish64. Each kext is auto-built whenever a new commit is made. If you prefer to build them yourself, you can utilize my Lilu And Friends script.
- IntelMausiEthernet.kext - this works with most newer Intel LAN chipsets
- AppleIntelE1000e.kext - this works with older Intel LAN chipsets - but can cause KPs on newer chipsets
- AtherosE2200Ethernet.kext - this works for most Atheros or Killer networking chipsets
- RealtekRTL8111.kext - this works with most gigabit Realtek LAN chipsets
- RealtekRTL8100.kext - for 10/100 Realtek LAN chipsets
You'll want to grab USBInjectAll.kext. If you're on an H370, B360, and H310 Coffee Lake system, or an X79/X99/X299 you'll likely want to make sure to include the XHCI-unsupported.kext as well. As of 10.11, Apple has imposed a 15 port limit on each USB controller. This doesn't sound like a terribly imposing issue until you realize that each USB 3 port counts as 2 - one for USB 2, one for USB 3. On Skylake and newer builds where USB 2 and 3 are handled only on XHCI, and each USB 3 port counts as 2, this limit can be reached quickly. There is a way to route all USB 2 through EHCI though - utilizing RehabMan's FakePCIID.kext + FakePCIID_XHCIMux.kext (it only works on some chipsets though) which can take some of the pressure off the XHCI controller.
For Audio - you'll want to grab /u/vit9696's AppleALC.kext and the companion Lilu.kext - providing you have a supported codec. AppleALC is capable of patching AppleHDA.kext on the fly to allow for native audio with unsupported codecs. It also has a number of codec verbs built in to help with audio-after-sleep.
For GPUs - you should grab WhateverGreen.kext and the companion Lilu.kext - this has the functionality of IntelGraphicsFixup, NvidiaGraphicsFixup, CoreDisplayFixup, and Shiki all rolled into it. Prior, all of these kexts were separate - but since many of them share resources, they've been combined.
WiFi and Bluetooth
Apple is pretty minimal with their WiFi support, so I'll only cover the two main chipsets I'm familiar with. I've used a BCM94360CD + PCIe adapter, and BCM94352HMB/BCM94352Z in my Hackintoshes. The BCM94360CD worked OOB with no extras as it's a native card. For the BCM94352 flavors, I've been using AirportBrcmFixup.kext and the companion Lilu.kext for WiFi setup and BrcmBluetoothInjector.kext (on 10.13.6+) or BrcmPatchRAM2.kext alongside BrcmFirmwareData.kext - all of the Brcm* kexts are from RehabMan's OS-X-BrcmPatchRAM repo.
Depending on the rest of your hardware - you may need more kexts as well, but this guide is designed to be a general foundation, so you'll have to rely on your google-fu for that.