Skip to main content

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.

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.

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 your EFI/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.
Using UTBDefault.kext as a permanent solution is not supported and may cause instability, boot failures, or broken sleep on some systems. Always replace it with a custom UTBMap.kext as soon as macOS is reachable.

USB Mapping Steps

OpCore Simplify’s Before Using EFI screen prints the following instructions after every build. Complete them before your first macOS boot.
1

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.
2

Add UTBMap.kext to your EFI

Copy the UTBMap.kext that USBToolBox generated into the EFI/OC/Kexts folder of your EFI partition:
EFI/OC/Kexts/UTBMap.kext   ← copy the new file here
3

Remove UTBDefault.kext

Delete the placeholder kext from the same folder:
EFI/OC/Kexts/UTBDefault.kext   ← remove this file entirely
4

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.
ProperTree is the recommended plist editor for OpenCore configs. Download it from https://github.com/corpnewt/ProperTree. Never use Xcode’s plist editor or plain-text editors for config.plist — they can silently corrupt data types.
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.
5

Save the file

Save config.plist in ProperTree when finished. Your EFI now uses your custom USB map.

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

Build docs developers (and LLMs) love