Contribute
Register

[Release] Hackintool v3.x.x

Just thought I would mention that Hackintool v1.9.2 added SSDT-UIAC.aml export support for those that prefer to use SSDT patching rather than the USBPorts.kext method.
 
(...)
4. Go to the General->USB tab to check your USB Controllers list. Based on your USB Controller you may need to install additional kexts:
(...)
8086:8D31, 8086:A2AF, 8086:A36D, 8086:9DED -> XHCI-unsupported.kext
(...)

Hi :)
389885


Where can I DL XHCI-unsupported.kext?
Found it! Didn't realize I had to DL the whole folder from RehabMan and then the .kext file I need would be in it :)
Should I place it into /E/E/C/K/O or /L/E? Or both?

Tx
-a-
 
... OK...

Rig:
Asus Prime z390-a
i9-9900K
Rx590


USB ports (11 total):
  • front : 1x USB2.0, 2x USB3.1 gen1
  • Back : 2x USB2.0, 2x USB3.1 Gen1, 3x USB3.1 Gen2 typeA, 1x USB3.1 Gen2 TypeC
I tried and failed (not all USB ports are working)... Here is what I did:

macOS 10.14.1+ does not work with the USB port limit patch and therefore there is no way to have all ports available to configure at one time. RehabMan has updated USBInjectAll.kext to include boot flags for excluding groups of ports

OK, So I didn't install the patch to remove port limit from Multibeast.

1. Place the USBInjectAll.kext (for port discovery) into EFI/CLOVER/kexts/Other

Done. I also placed it into /L/E since kext injection is set to detect in my config.plist

USBInjectAll.kext Requirements:
• Clover Rename XHC1 -> XHC
• Clover Rename EHC1 -> EH01
• Clover Rename EHC2 -> EH02


Didn't do any of that since XHC1 nor EHC could be found in IORegistryExplorer.app
(XHCI is present but apparently doesn't need any rename. Tell me if I'm wrong)

2. Reboot
3. Run Hackintool then go to General->Installed to check USBInjectAll is installed correctly
• Eg. USBInjectAll: Yes (Release-0.7.1)
4. Go to the General->USB tab to check your USB Controllers list. Based on your USB Controller you may need to install additional kexts:
• 8086:8CB1 and macOS < 10.11.1 -> XHCI-9-series.kext
• 8086:8D31, 8086:A2AF, 8086:A36D, 8086:9DED -> XHCI-unsupported.kext
• 8086:1E31, 8086:8C31, 8086:8CB1, 8086:8D31, 8086:9C31, 8086:9CB1 -> FakePCIID.kext + FakePCIID_XHCIMux.kext


I have
389906

So I only installed XHCI-unsupported.kext (both into /E/E/C/K/O and /L/E).
I did NOT install FakePCIID.kext nor FakePCIID_XHCIMux.kext. Was this a mistake?

5. Reboot if you need to install one of the additional kexts then run Hackintool again
6. Go to the General->USB tab

7.Select all items in the USB Ports list and select the “Delete” then the “Refresh” button
8.Reboot with -uia_exclude_ss uia_include=HS01,HS02 boot flags
• Change the HS01,HS02 ports to the ones you have your mouse and keyboard attached
9. Run Hackintool and go to the General->USB tab
• Plug and unplug a USB 2.0 device into all ports on your system
• The ports that are active will remain highlighted green
10. Delete all ports that are not highlighted green


When doing this, one of the USB3.1 Gen1 port on the front behaved differently. The USB2.0 device was detected as Mass Storage but was not mounted (this was on HS08). Mass Storage was blinking in Hackingtool GUI and then it switched to IOUSBHostDevice (instead of Mass Storage) and stopped blinking (still not mounted, though).

I ended up with 11 ports in green (HS01->03, HS06->10, HS12->14)

11. Reboot with -uia_exclude_hs boot flag and remove the -uia_exclude_ss boot flag
12. Run Hackintool and go to the General->USB tab
• Plug and unplug a USB 3.0 device into all ports on your system
• Plug and unplug a TypeC device into all ports (in both orientations)
• The ports that are active will remain highlighted green

13.Delete all ports that are not highlighted green
14.Set each port to the appropriate Connector using the drop down list


When doing this the USB2.0 ports (1 on the front, 2 on the back) didn't detect (nor mount) the USB3.0 device.
The USB-C port was the same in both orientations.

I ended up with 8 ports in green (SS01->04, SS07->10)

• USB ports with devices permanently attached (eg. M.2 Bluetooth card) should be set to “Internal”

No such thing

• HSxx ports connected to USB3 ports should be set to USB3
• Internal HUBs are typically connected to ports PR11 and PR21 and therefore should be set to “Internal”


PRxx were not present

TypeC:
• If it uses the same HSxx/SSxx in both orientations, then it has an internal switch (use “TypeC+Sw”)
• If it uses a different HSxx/SSxx in each orientation, then it has no switch (use “TypeC”)
15. Use the “Export” button to generate files to your Desktop


When doing this Hackingtool asks for the permission to add a rename EC0 to EC in config.plist. I accepted

• Copy USBPorts.kext into EFI/CLOVER/kexts/Other

Did that and also added it into /L/E using KextBeast -> KextUtility

• If SSDT-EC.aml is created copy it to EFI/CLOVER/ACPI/patched

No such thing

16. You can now perform a clean up and remove unnecessary files:
• Remove custom boot flags (-uia_exclude_ss -uia_exclude_hs uia_include=x)
• Remove USBInjectAll.kext


Done. USBinjectAll was removed from both locations

• Remove Clover Renames (XHC, EH01, EH02)

Not done (does not apply)

17. Reboot
18. Run Hackintool and go to the General->USB tab
19. Select all items in the USB Ports list and select the “Delete” then the “Refresh” button
• Now you can check all ports are working correctly


Here however I only have a total of 15 ports (rather than the 19 expected).
SS07->10 are missing and thus not working.
-> all 4 USB3.1 Gen1 ports (2 on the back and 2 on the front) only work with USB2.0 devices (except HS08, see below) but fail to detect USB3.0 devices.
However, the one USB3.1 Gen1 port on the front that had a strange behavior when connected to a USB2.0 device (HS08 cf step 9, above) still behaves the same (Mass Storage -> IOUSBHostDevice, nothing mounted).

I tried to apply the port limit patch -> no change
I tried to disable the rename EC0 to EC -> no change

My best guess is that If I manage to recover SS07 to SS10 then the USB3.1 Gen1 ports will start detecting USB3.0 devices normally.

However, I don't know what's wrong with HS08, the one USB3.1 Gen1 port on the front that has issues with USB2.0 devices (USB3.0 devices work fine on this port). Could it be a hardware failure?

I don't know what to do now...

(Let me know if you want my config.plist or any of the /E/E/C or /L/E folders)

Please help.
Best,
-a-
 
Last edited:
Well for one thing you should update to the latest Hackintool (currently v1.9.4). There is a new port limit patch included in that.
The port limit patch is embedded in the USBports.Kext file generated by hackingtool?
 
The port limit patch is embedded in the USBports.Kext file generated by hackingtool?
the port limit patch should only be used to enable all ports to then create your ssdt or kext

it wouldn't make sense to include the port limit patch in a kext that makes your usb ports
 
the port limit patch should only be used to enable all ports to then create your ssdt or kext

it wouldn't make sense to include the port limit patch in a kext that makes your usb ports
OK. So iiuc hackingtool transiently uses the patch to relieve port limit until it generates the kext.
Sounds correct?
 
the port limit patch should only be used to enable all ports to then create your ssdt or kext

it wouldn't make sense to include the port limit patch in a kext that makes your usb ports

Yes and the instructions do not include anything about the port limit patch because we now use boot flags with USBInjectAll. The port limit patch can change with new releases of macOS so it's not officially supported but I include it anyway. So you can try it as it's admittedly easier to configure ports without the need to use boot flags.

Current port limit patch for macOS 10.14.x looks like this:
Code:
    <key>KernelAndKextPatches</key>
    <dict>
        <key>KextsToPatch</key>
        <array>
            <dict>
                <key>Comment</key>
                <string>USB port limit patch #1 10.14.x modify by DalianSky(credit ydeng)</string>
                <key>Find</key>
                <data>
                g/sPDw==
                </data>
                <key>MatchOS</key>
                <string>10.14.x</string>
                <key>Name</key>
                <string>com.apple.iokit.IOUSBHostFamily</string>
                <key>Replace</key>
                <data>
                g/s/Dw==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>USB port limit patch #2 10.14.x modify by DalianSky(credit PMHeart)</string>
                <key>Find</key>
                <data>
                g+MP0w==
                </data>
                <key>MatchOS</key>
                <string>10.14.x</string>
                <key>Name</key>
                <string>com.apple.iokit.IOUSBHostFamily</string>
                <key>Replace</key>
                <data>
                g+M/0w==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>USB Port limit patch #3 10.14.x modify by DalianSky(credits PMheart)</string>
                <key>Find</key>
                <data>
                g/sPDw==
                </data>
                <key>MatchOS</key>
                <string>10.14.x</string>
                <key>Name</key>
                <string>com.apple.driver.usb.AppleUSBXHCI</string>
                <key>Replace</key>
                <data>
                g/s/Dw==
                </data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>USB Port limit patch #4 10.14.x modify by DalianSky(credits PMheart)</string>
                <key>Find</key>
                <data>
                g/8PDw==
                </data>
                <key>MatchOS</key>
                <string>10.14.x</string>
                <key>Name</key>
                <string>com.apple.driver.usb.AppleUSBXHCI</string>
                <key>Replace</key>
                <data>
                g/8/Dw==
                </data>
            </dict>
        </array>
    </dict>
 
OK.
But as per instructions I didn't use the port limit patch...
So will 1.9.4 really change anything?

Any idea why the version I used didn't allow me to use more than 15 ports in the end?

Best
-a-
 
Back
Top