Contribute
Register

The New Beginner's Guide to USB Port Configuration

Given Hackintool's output of either file, I have never needed USBInjectAll.kext at all. I once did, many moons ago, but that was to activate all ports to find which ones were wanted and which were not. SSDT-UIAC.aml works fine for me all by itself. And so does UBPorts.kext. I thought there might be some magical "techie" reason why one would be better than the other.
no, SSDT-UIAC.aml does nothing on it's own, USBInjectAll.kext is also needed to make it work

more info here:
 
no, SSDT-UIAC.aml does nothing on it's own, USBInjectAll.kext is also needed to make it work
Didn't realize that, but post #18 in your link confirmed that. So I looked at my Skylake's EFI folder and found that both "SSDT-UIAC.aml" and "USBPorts.kext" were in it! I guess the SSDT wss ignored and the USBPorts.kext was all that was needed. I'll go ahead and delete the SSDT. Thanks for clearing that up!
 
Didn't realize that, but post #18 in your link confirmed that. So I looked at my Skylake's EFI folder and found that both "SSDT-UIAC.aml" and "USBPorts.kext" were in it! I guess the SSDT wss ignored and the USBPorts.kext was all that was needed. I'll go ahead and delete the SSDT. Thanks for clearing that up!
you are most welcome! :)
 
Maybe out of my depth here, but looking at the original USBPorts.kext's info.plist, I found a "weirdness" probably due to my Skylake computer's combination of both SSDT-UIAC.aml and USBPorts.kext files in the EFI folder. As you can see from the left jpeg image, there are two "IOKitPersonalities" ("iMac17,1 XHC" and "iMac17,1 XHC-8086_a12f") instead of just one. (It works okay, though.) But I didn't like that, so...

I edited the info.plist to what is in the right jpeg image. I think I did that correctly, but maybe I have overstepped. Any comments?

Orig Plist.jpgEdited Plist.jpg
 
Last edited:
Any comments?

Well, correct, you will probably only have one XHC controller so no need for the second (I take it your PC doesn't have Thunderbolt?)

Using Hackintool to edit your USBPorts.kext is more visual and avoids any accidental deletions or additions, making understanding your USB ports easier (in my view!)

:)
 
Well, correct, you will probably only have one XHC controller so no need for the second (I take it your PC doesn't have Thunderbolt?)

Using Hackintool to edit your USBPorts.kext is more visual and avoids any accidental deletions or additions, making understanding your USB ports easier (in my view!)
Right, no Thunderbolt.
I edited the info.plist directly with PlistEditPro. I do know how to originate USBPorts.kext in Hackintool., but do not know how to edit it using Hackintool.
 
In PlistEditor all you need do is copy and paste the HS05 and HS06 entries from the iMac17,1-XHC port section to the iMac17,1-XHC-8086_a12f port section.

Then delete the empty iMac17,1-XHC section from the IOKitPersonalities section.

Assumptions:
  1. The USBPorts.kext is for your Mini-ITX 2 (2016) system.
  2. Not the Coffee Lake system displayed in your user profile or other Mini-ITX systems in your signature.
 
Edhawk,

Your assumptions are correct. But I did the exact opposite, as you can see from my jpegs in post #1468. I copied and pasted the larger number of ports from the iMac17,1-XHC_8086_a12f section into the iMac17,1-XHC section, and changed the "port-count" there from 06000000 to 16000000. Then I deleted the empty iMac17,1-XHC-8086_a12f port section. The result is as seen in the right-side image.

If, as I'm guessing, your method works, then so also should mine. Or am I missing something here?

Thanks for your reply!
 
No you are not missing anything, both ways should work.
 
Right, no Thunderbolt.
I edited the info.plist directly with PlistEditPro. I do know how to originate USBPorts.kext in Hackintool., but do not know how to edit it using Hackintool.

Usually we would activate all ports using USBInjectAll and a port-limit removal technique and then create a new USBPorts.kext with Hackintool. With a previously set-up system that you want to edit however you can approach this two ways.

1) Yes, use PlistEditPro or similar to manually edit the Info.plist as required.

2) With a working system, use the Hackintool "broom" icon to clear the stage then the circular-arrows icon to reload the config. Once loaded you see the configuration as it currently stands. Remove sections/ports as needed and Export the files again. There is a way to "add" ports in Hackintool and this involves using the syringe icon to inject a full list of ports, but that's for another tutorial and I don't think applicable here.

The "techie" reason for preferring the USBPorts.kext over the SSDT-UIAC.aml/USBInjectAll.kext method is to remove a kext with executable code within it. The new security features macOS uses are liable to block third-party kexts that execute from within kernal-space. This is only likley to get stricter. The USBPorts.kext option contains no executable code and is "invisible" to "kextstat" (run it in Termial and check etc). So is safer in the long run. It also works on whatever macOS version you are using.
 
Last edited:
Back
Top