-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Labels
errorError or typo in the guidesError or typo in the guides
Description
USB Port Limit Removal Guide (Translated)
XhciPortLimit
Enable XhciPortLimit:
Open OpenCore’s config.plist, go to Kernel -> Quirks, find XhciPortLimit, and set it to True.
OpenCore will apply a patch to the AppleUSBXHCIPCI driver at boot time to allow more than 15 ports.
Removing USB Port Limit on macOS 26
This limitation stems from macOS’s XHCI driver, which restricts each controller to a maximum of 15 USB ports.
Tutorial Overview
- Load the macOS kernel cache (BootKernelExtensions.kc) using IDA Pro and analyze the com.apple.driver.usb.AppleUSBXHCI driver.
2. Locate the instruction controlling the USB port limit (e.g., cmp reg, 0Fh) and change 0Fh to 3Fh (i.e., increase from 15 ports to 63).
3. Similarly, modify the relevant functions in IOUSBHostFamily to loosen verification.
4. Convert these changes into binary patches (patched bytes).
Required Tools
IDA Pro: https://www.123pan.com/s/HQeA-Ay1Sh Follow the usage instructions provided with the software for installation.
I. Locating the Driver File - Open Finder → Go to Folder... → /System/Library/KernelCollections
2. Copy BootKernelExtensions.kc to the desktop.
II. Common Operations Demonstration
Loading Driver from Kernel Collection: - Drag BootKernelExtensions.kc into the IDA Pro window. - Choose "Apple XNU kernelcache for X86_64 (single kext)" - Locate com.apple.driver.usb.AppleUSBXHCI in the list. - Wait until the bottom left shows "idle" indicating loading is complete. Function Search: - Right-click → Quick filter → Enter function name Toggle Views: - Press Spacebar Search for Values: - Search menu → Immediate value... → Enter value → Find all occurrences Edit Instruction: - Right-click 0Fh → Choose Assemble... → Change to 3Fh → Enter → Confirm highlight
Convert to Patch Code
Edit → Patch program → Patched bytes Example Patch: A = Previous 2 instructions: 44 89 F3 E9 6A 01 00 00 B = Modified: 41 83 FE 3F C = Next 2 instructions: 0F 83 7C 08 00 00 41 8D 5E 01 D = Original instruction: 41 83 FE 0F Search Pattern = A + D + C Replace Pattern = A + B + C
III. Patch for com.apple.driver.usb.AppleUSBXHCI
- Load com.apple.driver.usb.AppleUSBXHCI
- Find:
AppleUSBXHCI::createPort(...) → search 0x0F → modify to 3F
AppleUSBXHCI::createPorts(void) → search 0x0F → modify cmp instruction to 40h
IV. Patch for com.apple.iokit.IOUSBHostFamily
Locate: - AppleUSBHostPort::setPortLocation(...) - Search for 0x0F - Modify cmp instructions to 40h - Other occurrences to 3Fh Apply all four patches and restart the software.
Metadata
Metadata
Assignees
Labels
errorError or typo in the guidesError or typo in the guides