After OpCore Simplify builds your EFI, one task remains before you can consider your Hackintosh complete: USB port mapping. macOS enforces a hard limit of 15 logical USB ports per controller, and every port you leave unmapped is a potential source of boot failures, broken sleep/wake behaviour, and unreliable USB device detection. This step replaces the generic placeholder kext bundled by OpCore Simplify with a custom map that describes exactly the ports your system exposes.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/lzhoang2801/OpCore-Simplify/llms.txt
Use this file to discover all available pages before exploring further.
Why USB Mapping Is Required
macOS’s USB stack (IOUSBHostFamily) refuses to load controllers that expose more than 15 ports and, on some configurations, will panic or stall at boot. Even if your controller happens to have fewer than 15 physical ports, an unmapped controller still lacks important metadata — port type (USB 2.0, USB 3.0, internal, USB-C) — that macOS relies on for power management and device recognition. Common symptoms of missing or broken USB mapping include:- Boot stall at
[IOUSBHostFamily]during installer or recovery - USB devices that disconnect during sleep
- Bluetooth (which uses an internal USB port on most Hackintoshes) dropping out after wake
- Random USB port detection failures
The UTBDefault.kext Placeholder
OpCore Simplify bundles UTBDefault.kext from the USBToolBox project into yourEFI/OC/Kexts/ folder. This kext temporarily lifts the 15-port restriction and makes all detected ports available so that USBToolBox’s companion application can discover and profile them. It is intentionally generic and must not be left in your final EFI.
USB Mapping Steps
OpCore Simplify’s Before Using EFI screen prints the following instructions after every build. Complete them before your first macOS boot.Use USBToolBox to map your USB ports
Download and run the USBToolBox tool to discover and map the USB ports on your system:https://github.com/USBToolBox/toolUSBToolBox enumerates every USB controller and port the OS can see. Work through your ports and, when finished, export the resulting
UTBMap.kext.Add UTBMap.kext to your EFI
Copy the
UTBMap.kext that USBToolBox generated into the EFI/OC/Kexts folder of your EFI partition:Edit config.plist with ProperTree
Open
EFI/OC/config.plist in ProperTree and run OC Snapshot (Command+R on macOS, Ctrl+R on Windows). This rescans the Kexts folder, removes the UTBDefault.kext entry, and registers UTBMap.kext under Kernel → Add.If your controller exposes more than 15 ports on a single controller, enable the XhciPortLimit patch in Kernel → Quirks while you continue refining your map.XhciPortLimit is a workaround, not a permanent solution. It is known to cause kernel panics on macOS 11.3 and newer in some configurations. Re-map your ports to 15 or fewer and disable this quirk as soon as possible.Creating a Bootable macOS USB Installer
If you need to create a bootable macOS installer to perform a fresh install, the process differs by operating system.Windows: UnPlugged
Use the UnPlugged tool by CorpNewt to download and write a macOS recovery or full installer to a USB drive from Windows. No Mac required.
macOS: Dortania Guide
Follow the official Dortania OpenCore Install Guide for creating a full macOS installer USB from a real Mac or existing Hackintosh.
Next Steps
With USB mapping complete, your EFI is ready for a macOS installation. If your hardware requires OpenCore Legacy Patcher for GPU acceleration or Broadcom Wi-Fi support, complete that step after your first successful boot.OpenCore Legacy Patcher
Apply root patches to restore dropped GPU and Wi-Fi support in newer macOS versions
Troubleshooting
Diagnose boot failures, kernel panics, and other common issues