USBInjectAll
by SnikiUSB port injection for proper USB mapping on Intel-based Hackintosh systems
USBInjectAll
USBInjectAll is a kext that injects all USB ports on Intel-based systems. Itโs commonly used as a starting point for USB mapping on Hackintosh builds.
Overview
macOS has a 15-port limit per USB controller. USBInjectAll enables all available USB ports so you can identify which ones you need, then create a custom USB map with only the ports you use.
Features
- Port Injection: Enables all USB ports on Intel controllers
- Discovery Tool: Helps identify which ports your system has
- Custom Mapping: Used as a base for creating custom USB maps
- Wide Compatibility: Works with most Intel USB controllers
Installation
Prerequisites
- OpenCore bootloader (0.7.0 or later)
- macOS 10.11 or later
- Intel-based system (AMD systems use different approaches)
Steps
- Download the latest release from GitHub
- Copy
USBInjectAll.kextto your EFI partition:EFI/OC/Kexts/ - Add the kext to your
config.plistunderKernel > Add - Add boot argument
uia_exclude=to disable specific ports (optional) - Reboot your system
config.plist Entry
<dict>
<key>BundlePath</key>
<string>USBInjectAll.kext</string>
<key>Comment</key>
<string>USB port injection</string>
<key>Enabled</key>
<true/>
<key>ExecutablePath</key>
<string>Contents/MacOS/USBInjectAll</string>
<key>MaxKernel</key>
<string></string>
<key>MinKernel</key>
<string></string>
<key>PlistPath</key>
<string>Contents/Info.plist</string>
</dict>
USB Mapping
USBInjectAll is meant to be a temporary tool for discovery. Once youโve identified your ports, you should create a custom USB map:
- Install USBInjectAll and reboot
- Use Hackintool or USBMap to identify active ports
- Plug devices into each port to discover them
- Create a custom USBPorts.kext or USB map SSDT
- Remove USBInjectAll and use your custom map instead
Troubleshooting
USB devices not detected
- Verify USBInjectAll is loaded
- Check that your USB controller is Intel-based
- Try different boot arguments for port exclusion
Too many ports showing
- Use
uia_exclude=boot argument to disable unused ports - Example:
uia_exclude=HS01;HS02;SS01to disable specific ports
System instability
- USBInjectAll is not meant for permanent use
- Create a proper USB map as soon as possible
- Remove USBInjectAll after mapping is complete
FAQ
Do I need USBInjectAll permanently?
No, USBInjectAll is a discovery tool. Use it to find your ports, then create a custom USB map and remove it.
Can I use USBInjectAll with AMD?
USBInjectAll is designed for Intel USB controllers. AMD systems use different approaches for USB mapping.
Whatโs the 15-port limit?
macOS limits each USB controller to 15 ports. This includes both USB 2.0 and USB 3.0 ports. A custom USB map ensures you stay within this limit while enabling the ports you need.
Related Kexts
- USBToolBox - Alternative USB mapping tool
- USBPorts - Custom USB port maps