Contribute
Register

[Release] Hackintool v3.x.x

@headkaze I want to report a minor bug issue when using the patch tool in I think with the latest release. When I patch Intel HD 4600 graphics or Audio the patch works but About this Mac/System Report shows this very long Intel Xeon ----------------------------------------------- naming scheme. It rolls off the window with ... I am able to use Clover Configurator to edit the patch in Devices/Properties to rename HD 4600, but for other users it may be a stumper. Below is the highlighted name can you correct that in the code or is it something to just live with? Its a minor bug and everything works, but it might freak some people out, like me, lol.

P.S. this is a great all around tool, big thanks for this it is an amazing utility.

Screen Shot 2020-02-17 at 10.39.25 AM.png
 
I want to report a minor bug issue when using the patch tool.
About this Mac/System Report shows this very long Intel Xeon naming scheme.

@Gigamaxx,

It's not a bug, Hackintool uses on-line databases to parse PCIe device VID's/PID's in to descriptive text.
The long Xeon name for the HD 4600 IGPU comes from the database not Hackintool.

You can manually edit the string value for the device property "model" to whatever you want such as "Intel HD 4600" or "Intel HD 4600 (headless)" if you have it so configured.

Just make sure that the string starts with "Intel" otherwise Intel Power Gadget wont show the IGPU trace.

Cheers
Jay
 
Last edited:
@headkaze I want to report a minor bug issue when using the patch tool in I think with the latest release. When I patch Intel HD 4600 graphics or Audio the patch works but About this Mac/System Report shows this very long Intel Xeon ----------------------------------------------- naming scheme. It rolls off the window with ... I am able to use Clover Configurator to edit the patch in Devices/Properties to rename HD 4600, but for other users it may be a stumper. Below is the highlighted name can you correct that in the code or is it something to just live with? Its a minor bug and everything works, but it might freak some people out, like me, lol.

P.S. this is a great all around tool, big thanks for this it is an amazing utility.

View attachment 450411


The PCI ID database is currently maintained by Albert Pool and Martin Mares.

The PCI ID Repository
The home of the pci.ids file


 
I have never been able to get iMessage/Facetime to work on this machine since the beginning. Would deleting the iMessage keys that I see on the Info page possibly help me to get it working? Could one or more of these old keys be blacklisted on Apple's servers?
 
since 3.0.x the USB module, "Clear All", "Refresh" function just don't work very well

since 3.1.0 -> 3.1.3, USB module no longer works

I had delete the old cache "Clear All" in 3.1.0, then if I click the USB tab (3.1.x), the app just crashed immediately.
I'm not entirely sure what is causing this but I did do some "cleaning up" that might have fixed it. Please try v3.1.4
 
If Location ID is valid, then it's a good way to sort by tree (to keep children next to the parents in the list). Otherwise, it's a good way for the user to know that they need to fix their stuff.

I added the Location ID to the sorting but have just recently removed it again since a user reported their ports being out of order (see attached image).
1514827949_ScreenShot2020-02-15at18_07_27.thumb.png.1fbc21aeabc5fae89a780aba15388275.png

If a USB device exists inside and outside of IOResources, does using IOServiceMatching("IOUSBDevice") give both or only the one from IOResources or random one of the pair?
It seems to only give the one in IOResources.

I guess that makes sense. There are zero AppleUSBHostPort in AppleUSBLegacyRoot. There are only Controllers, Devices, and Interfaces. Interfaces are unique to AppleUSBLegacyRoot.
Yep, and so to do the matching against the device I wrote this function.

Does it only give IOUSBDevice inside IOResources, or does it also give IOUSBDevice inside outside IOResources? Or is it randomly one or the other?
Yeah only IOResources it seems.

I don't know the best way. You can recursively iterate over the IORegistry like ioreg and gfxutil do. Just go through all devices, and work on the ones you need for the USB list. You can skip over anything you like (such as IOResources).
The issue is that I'm using a notification for "IOUSBDevice" and so the callback gives me an iterator in IOResources. So the only way I can match it to the port is using the routine I linked to above.

I have attached my ioregistry (txt and v2.1 ioreg), the log as shown in the Hackintool log tab (Is there a different log?), and the crash log.
Is the crashing fixed in v3.1.4?
 
I'm not entirely sure what is causing this but I did do some "cleaning up" that might have fixed it. Please try v3.1.4

the USB module do not crash the app now

Screen Shot 2020-02-18 at 14.49.12.png


but the detection algorithm is incorrect (e.g. device BCM20702A0 is connected to HP25 not PR25, HP25 =/=PR25)

USBInjectAll config file, inject all the ports in this way

EHC1: controller (8 Root Ports : PR11..PR18), ECH1 base address: 0x1D000000

EHC1.PR11 (0x1D100000)
EHC1.PR12 (0x1D200000)
EHC1.PR13 (0x1D300000)
EHC1.PR14 (0x1D400000)
EHC1.PR15 (0x1D500000)
EHC1.PR16 (0x1D600000)
EHC1.PR17 (0x1D700000)
EHC1.PR18 (0x1D800000)

EHC2: controller (6 Root Ports : PR21..PR26), ECH2 base address: 0x1A000000

EHC1.PR21 (0x1A100000)
EHC1.PR22 (0x1A200000)
EHC1.PR23 (0x1A300000)
EHC1.PR24 (0x1A400000)
EHC1.PR25 (0x1A500000)
EHC1.PR26 (0x1A600000)

EHC1.PR11, EHC1.PR21 act as internal HUB, extended 8 HUB Ports respectively (Ports PR12..PR18; PR22..PR26 are not used)

EHC1.PR11.HP11 (0x1D110000)
EHC1.PR11.HP12 (0x1D120000)
EHC1.PR11.HP13 (0x1D130000)
EHC1.PR11.HP14 (0x1D140000)
EHC1.PR11.HP15 (0x1D150000)
EHC1.PR11.HP16 (0x1D160000)
EHC1.PR11.HP17 (0x1D170000)
EHC1.PR11.HP18 (0x1D180000)

EHC2.PR21.HP21 (0x1A110000)
EHC2.PR21.HP22 (0x1A120000)
EHC2.PR21.HP23 (0x1A130000)
EHC2.PR21.HP14 (0x1A140000)
EHC2.PR21.HP15 (0x1A150000)
EHC2.PR21.HP16 (0x1A160000)
EHC2.PR21.HP17 (0x1A170000)
EHC2.PR21.HP18 (0x1A180000)

ioreg -rxn "EH01"
Code:
+-o EH01@1D  <class IOPCIDevice, id 0x1000001d5, registered, matched, active, busy 0 (27762 ms), retain 12>
  | {
  |   "assigned-addresses" = <10e80082000000000070d0f70000000000040000>
  |   "IOInterruptSpecifiers" = (<1700000007000000>)
  |   "class-code" = <20030c00>
  |   "IODeviceMemory" = (({"address"=0xf7d07000,"length"=0x400}))
  |   "IOReportLegendPublic" = Yes
  |   "built-in" = <00>
  |   "subsystem-vendor-id" = <58140000>
  |   "IOPowerManagement" = {"ChildrenPowerState"=0x2,"CurrentPowerState"=0x2,"CapabilityFlags"=0x102,"ChildProxyPowerState"=0x2,"MaxPowe$
  |   "acpi-device" = "IOACPIPlatformDevice is not serializable"
  |   "AAPL,current-extra" = <bc02>
  |   "IOInterruptControllers" = ("io-apic-0")
  |   "name" = <706369383038362c3163323600>
  |   "vendor-id" = <86800000>
  |   "device-id" = <261c0000>
  |   "acpi-pmcap-offset" = 0x50
  |   "IOPCIResourced" = Yes
  |   "AAPL,current-available" = <b004>
  |   "compatible" = <706369313435382c3530303600706369383038362c3163323600706369636c6173732c306330333230004548303100>
  |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/EH01@1d0000"
  |   "AAPL,current-in-sleep" = <e803>
  |   "subsystem-id" = <06500000>
  |   "revision-id" = <05000000>
  |   "IOPCIPMCSState" = 0x100
  |   "pcidebug" = "0:29:0"
  |   "device_type" = <45484349>
  |   "IOName" = "pci8086,1c26"
  |   "reg" = <00e800000000000000000000000000000000000010e8000200000000000000000000000000040000>
  |   "IOReportLegend" = ({"IOReportGroupName"="Interrupt Statistics (by index)","IOReportChannels"=((0x496e747200000000,0x100020001,"   $
  | }
  |
  +-o EH01@1d000000  <class AppleUSBEHCIPCI, id 0x100000228, registered, matched, active, busy 0 (27619 ms), retain 117>
    | {
    |   "IOClass" = "AppleUSBEHCIPCI"
    |   "Errata" = 0x400000
    |   "kUSBSleepPortCurrentLimit" = 0x834
    |   "IOPowerManagement" = {"ChildrenPowerState"=0x1,"DevicePowerState"=0x2,"CurrentPowerState"=0x2,"CapabilityFlags"=0x10000,"MaxPowe$
    |   "IOProviderClass" = "IOPCIDevice"
    |   "RM,USBInjectAll" = Yes
    |   "ports" = {"PR18"={"UsbConnector"=0x0,"port"=<08000000>},"PR15"={"UsbConnector"=0x0,"port"=<05000000>},"PR12"={"UsbConnector"=0x0$
    |   "IOProbeScore" = 0x0
    |   "locationID" = 0x1d000000
    |   "name" = <4548303100>
    |   "64bit" = Yes
    |   "kUSBWakePortCurrentLimit" = 0x834
    |   "IOPCIPauseCompatible" = Yes
    |   "device-properties" = {"acpi-path"="IOACPIPlane:/_SB/PCI0@0/EH01@1d0000","AAPL,current-in-sleep"=<e803>,"AAPL,current-extra"=<bc0$
    |   "IOMatchCategory" = "IODefaultMatchCategory"
    |   "CFBundleIdentifier" = "com.apple.driver.usb.AppleUSBEHCIPCI"
    |   "port-count" = <08000000>
    |   "IOGeneralInterest" = "IOCommand is not serializable"
    |   "IOPCITunnelCompatible" = No
    |   "controller-statistics" = {"kControllerStatIOCount"=0x199cb,"kControllerStatPowerStateTime"={"kPowerStateOff"="0ms (0%)","kPowerS$
    |   "kUSBSleepSupported" = Yes
    |   "IOPCIClassMatch" = "0x0c032000"
    | }
    |
    +-o PR11@1d100000  <class AppleUSBEHCIPort, id 0x100000262, registered, matched, active, busy 0 (27618 ms), retain 13>
    | +-o IOUSBHostDevice@1d100000  <class IOUSBHostDevice, id 0x1000002ad, registered, matched, active, busy 0 (27618 ms), retain 38>
    |   +-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x1000002b5, !registered, !matched, active, busy 0, retain 8>
    |   +-o AppleUSB20InternalIntelHub@1d100000  <class AppleUSB20InternalIntelHub, id 0x1000002bf, registered, matched, active, busy 0 ($
    |   | +-o HP11@1d110000  <class AppleUSB20InternalIntelHubPort, id 0x1000002cb, registered, matched, active, busy 0 (27615 ms), retai$
    |   | +-o HP12@1d120000  <class AppleUSB20InternalIntelHubPort, id 0x1000002cc, registered, matched, active, busy 0 (0 ms), retain 13$
    |   | +-o HP13@1d130000  <class AppleUSB20InternalIntelHubPort, id 0x1000002cd, registered, matched, active, busy 0 (0 ms), retain 13$
    |   | +-o HP14@1d140000  <class AppleUSB20InternalIntelHubPort, id 0x1000002ce, registered, matched, active, busy 0 (0 ms), retain 13$
    |   | +-o HP15@1d150000  <class AppleUSB20InternalIntelHubPort, id 0x1000002cf, registered, matched, active, busy 0 (0 ms), retain 13$
    |   | +-o HP16@1d160000  <class AppleUSB20InternalIntelHubPort, id 0x1000002d0, registered, matched, active, busy 0 (0 ms), retain 13$
    |   | +-o HP17@1d170000  <class AppleUSB20InternalIntelHubPort, id 0x1000002d1, registered, matched, active, busy 0 (0 ms), retain 13$
    |   | +-o HP18@1d180000  <class AppleUSB20InternalIntelHubPort, id 0x1000002d2, registered, matched, active, busy 0 (0 ms), retain 13$
    |   +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x1000002c5, !registered, !matched, active, busy 0, retain 8>
    +-o PR12@1d200000  <class AppleUSBEHCIPort, id 0x100000263, registered, matched, active, busy 0 (0 ms), retain 11>
    +-o PR13@1d300000  <class AppleUSBEHCIPort, id 0x100000264, registered, matched, active, busy 0 (0 ms), retain 11>
    +-o PR14@1d400000  <class AppleUSBEHCIPort, id 0x100000265, registered, matched, active, busy 0 (0 ms), retain 11>
    +-o PR15@1d500000  <class AppleUSBEHCIPort, id 0x100000266, registered, matched, active, busy 0 (0 ms), retain 11>
    +-o PR16@1d600000  <class AppleUSBEHCIPort, id 0x100000267, registered, matched, active, busy 0 (0 ms), retain 11>
    +-o PR17@1d700000  <class AppleUSBEHCIPort, id 0x100000268, registered, matched, active, busy 0 (0 ms), retain 11>
    +-o PR18@1d800000  <class AppleUSBEHCIPort, id 0x100000269, registered, matched, active, busy 0 (0 ms), retain 11>


ioreg -rxn "EH02"
Code:
+-o EH02@1A  <class IOPCIDevice, id 0x1000001e0, registered, matched, active, busy 0 (252796 ms), retain 14>
  | {
  |   "assigned-addresses" = <10d00082000000000080d0f70000000000040000>
  |   "IOInterruptSpecifiers" = (<1000000007000000>)
  |   "class-code" = <20030c00>
  |   "IODeviceMemory" = (({"address"=0xf7d08000,"length"=0x400}))
  |   "IOReportLegendPublic" = Yes
  |   "built-in" = <00>
  |   "subsystem-vendor-id" = <58140000>
  |   "IOPowerManagement" = {"ChildrenPowerState"=0x2,"CurrentPowerState"=0x2,"CapabilityFlags"=0x102,"ChildProxyPowerState"=0x2,"MaxPowe$
  |   "acpi-device" = "IOACPIPlatformDevice is not serializable"
  |   "AAPL,current-extra" = <bc02>
  |   "IOInterruptControllers" = ("io-apic-0")
  |   "name" = <706369383038362c3163326400>
  |   "vendor-id" = <86800000>
  |   "device-id" = <2d1c0000>
  |   "acpi-pmcap-offset" = 0x50
  |   "IOPCIResourced" = Yes
  |   "AAPL,current-available" = <b004>
  |   "compatible" = <706369313435382c3530303600706369383038362c3163326400706369636c6173732c306330333230004548303200>
  |   "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/EH02@1a0000"
  |   "AAPL,current-in-sleep" = <e803>
  |   "subsystem-id" = <06500000>
  |   "revision-id" = <05000000>
  |   "IOPCIPMCSState" = 0x8100
  |   "pcidebug" = "0:26:0"
  |   "device_type" = <45484349>
  |   "IOName" = "pci8086,1c2d"
  |   "reg" = <00d000000000000000000000000000000000000010d0000200000000000000000000000000040000>
  |   "IOReportLegend" = ({"IOReportGroupName"="Interrupt Statistics (by index)","IOReportChannels"=((0x496e747200000000,0x100020001,"   $
  | }
  |
  +-o EH02@1a000000  <class AppleUSBEHCIPCI, id 0x100000227, registered, matched, active, busy 0 (252654 ms), retain 207>
    | {
    |   "IOClass" = "AppleUSBEHCIPCI"
    |   "Errata" = 0x400000
    |   "kUSBSleepPortCurrentLimit" = 0x834
    |   "IOPowerManagement" = {"ChildrenPowerState"=0x3,"DevicePowerState"=0x2,"CurrentPowerState"=0x3,"CapabilityFlags"=0x8000,"MaxPower$
    |   "IOProviderClass" = "IOPCIDevice"
    |   "RM,USBInjectAll" = Yes
    |   "ports" = {"PR21"={"UsbConnector"=0xff,"port"=<01000000>},"PR26"={"UsbConnector"=0x0,"port"=<06000000>},"PR24"={"UsbConnector"=0x$
    |   "IOProbeScore" = 0x0
    |   "locationID" = 0x1a000000
    |   "name" = <4548303200>
    |   "64bit" = Yes
    |   "kUSBWakePortCurrentLimit" = 0x834
    |   "IOPCIPauseCompatible" = Yes
    |   "device-properties" = {"acpi-path"="IOACPIPlane:/_SB/PCI0@0/EH02@1a0000","AAPL,current-in-sleep"=<e803>,"AAPL,current-extra"=<bc0$
    |   "IOMatchCategory" = "IODefaultMatchCategory"
    |   "CFBundleIdentifier" = "com.apple.driver.usb.AppleUSBEHCIPCI"
    |   "port-count" = <06000000>
    |   "IOGeneralInterest" = "IOCommand is not serializable"
    |   "IOPCITunnelCompatible" = No
    |   "controller-statistics" = {"kControllerStatIOCount"=0x580a8bb,"kControllerStatPowerStateTime"={"kPowerStateOff"="0ms (0%)","kPowe$
    |   "kUSBSleepSupported" = Yes
    |   "IOPCIClassMatch" = "0x0c032000"
    | }
    |
    +-o PR21@1a100000  <class AppleUSBEHCIPort, id 0x100000272, registered, matched, active, busy 0 (252652 ms), retain 13>
    | +-o IOUSBHostDevice@1a100000  <class IOUSBHostDevice, id 0x1000002ae, registered, matched, active, busy 0 (252653 ms), retain 34>
    |   +-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x1000002bc, !registered, !matched, active, busy 0, retain 8>
    |   +-o AppleUSB20InternalIntelHub@1a100000  <class AppleUSB20InternalIntelHub, id 0x1000002c2, registered, matched, active, busy 0 ($
    |   | +-o HP21@1a110000  <class AppleUSB20InternalIntelHubPort, id 0x1000002d3, registered, matched, active, busy 0 (20671 ms), retai$
    |   | | +-o USB2.0 Hub@1a110000  <class IOUSBHostDevice, id 0x1000002e9, registered, matched, active, busy 0 (20671 ms), retain 32>
    |   | |   +-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x1000002ec, !registered, !matched, active, busy 0, retai$
    |   | |   +-o AppleUSB20Hub@1a110000  <class AppleUSB20Hub, id 0x1000002ef, registered, matched, active, busy 0 (20669 ms), retain 23$
    |   | |   | +-o AppleUSB20HubPort@1a111000  <class AppleUSB20HubPort, id 0x1000002f2, registered, matched, active, busy 0 (20669 ms),$
    |   | |   | | +-o USB  AUDIO  @1a111000  <class IOUSBHostDevice, id 0x100017230, registered, matched, active, busy 0 (14 ms), retain $
    |   | |   | |   +-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x100017233, !registered, !matched, active, busy 0,$
    |   | |   | |   +-o AppleUSBHostCompositeDevice  <class AppleUSBHostCompositeDevice, id 0x100017238, !registered, !matched, active, b$
    |   | |   | |   +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x100017239, registered, matched, active, busy 0 (5 ms), reta$
    |   | |   | |   | +-o AppleUSBAudioDevice  <class AppleUSBAudioDevice, id 0x100017242, registered, matched, active, busy 0 (1 ms), re$
    |   | |   | |   |   +-o AppleUSBAudioEngine  <class AppleUSBAudioEngine, id 0x100017244, registered, matched, active, busy 0 (0 ms), $
    |   | |   | |   |     +-o IOAudioLevelControl  <class IOAudioLevelControl, id 0x10001724a, !registered, !matched, active, busy 0, ret$
    |   | |   | |   |     | +-o IOAudioControlUserClient  <class IOAudioControlUserClient, id 0x10001725a, !registered, !matched, active,$
    |   | |   | |   |     +-o IOAudioLevelControl  <class IOAudioLevelControl, id 0x10001724c, !registered, !matched, active, busy 0, ret$
    |   | |   | |   |     | +-o IOAudioControlUserClient  <class IOAudioControlUserClient, id 0x10001725b, !registered, !matched, active,$
    |   | |   | |   |     +-o IOAudioToggleControl  <class IOAudioToggleControl, id 0x10001724d, !registered, !matched, active, busy 0, r$
    |   | |   | |   |     | +-o IOAudioControlUserClient  <class IOAudioControlUserClient, id 0x10001725c, !registered, !matched, active,$
    |   | |   | |   |     +-o AppleUSBAudioStream  <class AppleUSBAudioStream, id 0x100017246, registered, matched, active, busy 0 (0 ms)$
    |   | |   | |   |     +-o IOAudioEngineUserClient  <class IOAudioEngineUserClient, id 0x10001725d, !registered, !matched, active, bus$
    |   | |   | |   +-o IOUSBHostInterface@1  <class IOUSBHostInterface, id 0x10001723a, registered, matched, active, busy 0 (4 ms), reta$
    |   | |   | |   | +-o AppleUSBAudioStream  <class AppleUSBAudioStream, id 0x100017246, registered, matched, active, busy 0 (0 ms), re$
    |   | |   | |   +-o IOUSBHostInterface@2  <class IOUSBHostInterface, id 0x10001723b, registered, matched, active, busy 0 (7 ms), reta$
    |   | |   | |     +-o IOUSBHostHIDDevice@1a111000,2  <class IOUSBHostHIDDevice, id 0x100017247, registered, matched, active, busy 0 ($
    |   | |   | |       +-o IOHIDInterface  <class IOHIDInterface, id 0x100017249, registered, matched, active, busy 0 (2 ms), retain 7>
    |   | |   | |       | +-o IOHIDEventDriver  <class IOHIDEventDriver, id 0x10001724e, registered, matched, active, busy 0 (0 ms), reta$
    |   | |   | |       |   +-o IOHIDEventServiceUserClient  <class IOHIDEventServiceUserClient, id 0x100017250, !registered, !matched, a$
    |   | |   | |       +-o IOHIDLibUserClient  <class IOHIDLibUserClient, id 0x10001724b, !registered, !matched, active, busy 0, retain $
    |   | |   | +-o AppleUSB20HubPort@1a112000  <class AppleUSB20HubPort, id 0x1000002f3, registered, matched, active, busy 0 (0 ms), ret$
    |   | |   | +-o AppleUSB20HubPort@1a113000  <class AppleUSB20HubPort, id 0x1000002f4, registered, matched, active, busy 0 (0 ms), ret$
    |   | |   | +-o AppleUSB20HubPort@1a114000  <class AppleUSB20HubPort, id 0x1000002f5, registered, matched, active, busy 0 (0 ms), ret$
    |   | |   +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x1000002f0, !registered, !matched, active, busy 0, retain 8>
    |   | +-o HP22@1a120000  <class AppleUSB20InternalIntelHubPort, id 0x1000002d4, registered, matched, active, busy 0 (230992 ms), reta$
    |   | | +-o IOUSBHostDevice@1a120000  <class IOUSBHostDevice, id 0x100000312, registered, matched, active, busy 0 (230992 ms), retain$
    |   | |   +-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x100000315, !registered, !matched, active, busy 0, retai$
    |   | |   +-o AppleUSB20Hub@1a120000  <class AppleUSB20Hub, id 0x100000318, registered, matched, active, busy 0 (230990 ms), retain 2$
    |   | |   | +-o AppleUSB20HubPort@1a121000  <class AppleUSB20HubPort, id 0x10000031b, registered, matched, active, busy 0 (0 ms), ret$
    |   | |   | +-o AppleUSB20HubPort@1a122000  <class AppleUSB20HubPort, id 0x10000031c, registered, matched, active, busy 0 (0 ms), ret$
    |   | |   | +-o AppleUSB20HubPort@1a123000  <class AppleUSB20HubPort, id 0x10000031d, registered, matched, active, busy 0 (230946 ms)$
    |   | |   | | +-o USB Receiver@1a123000  <class IOUSBHostDevice, id 0x1000172c4, registered, matched, active, busy 0 (2000 ms), retai$
    |   | |   | |   +-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x1000172c7, !registered, !matched, active, busy 0,$
    |   | |   | |   +-o AppleUSBHostCompositeDevice  <class AppleUSBHostCompositeDevice, id 0x1000172df, !registered, !matched, active, b$
    |   | |   | |   +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x1000172e0, !registered, !matched, active, busy 0, retain 7>
    |   | |   | |   +-o IOUSBHostInterface@1  <class IOUSBHostInterface, id 0x1000172e1, !registered, !matched, active, busy 0, retain 7>
    |   | |   | |   +-o IOUSBHostInterface@2  <class IOUSBHostInterface, id 0x1000172e2, !registered, !matched, active, busy 0, retain 7>
    |   | |   | +-o AppleUSB20HubPort@1a124000  <class AppleUSB20HubPort, id 0x10000031e, registered, matched, active, busy 0 (464 ms), r$
    |   | |   |   +-o IOUSBHostDevice@1a124000  <class IOUSBHostDevice, id 0x10000034b, registered, matched, active, busy 0 (464 ms), ret$
    |   | |   |     +-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x10000034e, !registered, !matched, active, busy 0,$
    |   | |   |     +-o AppleUSB20Hub@1a124000  <class AppleUSB20Hub, id 0x100000351, registered, matched, active, busy 0 (461 ms), retai$
    |   | |   |     | +-o AppleUSB20HubPort@1a124100  <class AppleUSB20HubPort, id 0x100000354, registered, matched, active, busy 0 (461 $
    |   | |   |     | | +-o Quick Fire PRO Keyboard@1a124100  <class IOUSBHostDevice, id 0x10000035c, registered, matched, active, busy 0$
    |   | |   |     | |   +-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x10000035f, !registered, !matched, active, b$
    |   | |   |     | |   +-o AppleUSBHostCompositeDevice  <class AppleUSBHostCompositeDevice, id 0x100000363, !registered, !matched, act$
    |   | |   |     | |   +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x100000364, registered, matched, active, busy 0 (40 ms$
    |   | |   |     | |   | +-o IOUSBHostHIDDevice@1a124100,0  <class IOUSBHostHIDDevice, id 0x100000368, registered, matched, active, bu$
    |   | |   |     | |   |   +-o IOHIDInterface  <class IOHIDInterface, id 0x100000369, registered, matched, active, busy 0 (8 ms), reta$
    |   | |   |     | |   |   | +-o IOHIDEventDriver  <class IOHIDEventDriver, id 0x10000036a, registered, matched, active, busy 0 (0 ms)$
    |   | |   |     | |   |   |   +-o IOHIDEventServiceUserClient  <class IOHIDEventServiceUserClient, id 0x1000003a5, !registered, !matc$
    |   | |   |     | |   |   +-o IOHIDLibUserClient  <class IOHIDLibUserClient, id 0x10000059e, !registered, !matched, active, busy 0, r$
    |   | |   |     | |   +-o IOUSBHostInterface@1  <class IOUSBHostInterface, id 0x100000365, registered, matched, active, busy 0 (42 ms$
    |   | |   |     | |     +-o IOUSBHostHIDDevice@1a124100,1  <class IOUSBHostHIDDevice, id 0x1000003bf, registered, matched, active, bu$
    |   | |   |     | |       +-o IOHIDInterface  <class IOHIDInterface, id 0x1000003f5, registered, matched, active, busy 0 (3 ms), reta$
    |   | |   |     | |       | +-o IOHIDEventDriver  <class IOHIDEventDriver, id 0x1000003fc, registered, matched, active, busy 0 (0 ms)$
    |   | |   |     | |       |   +-o IOHIDEventServiceUserClient  <class IOHIDEventServiceUserClient, id 0x10000041d, !registered, !matc$
    |   | |   |     | |       +-o IOHIDLibUserClient  <class IOHIDLibUserClient, id 0x10000059c, !registered, !matched, active, busy 0, r$
    |   | |   |     | +-o AppleUSB20HubPort@1a124200  <class AppleUSB20HubPort, id 0x100000355, registered, matched, active, busy 0 (0 ms$
    |   | |   |     | +-o AppleUSB20HubPort@1a124300  <class AppleUSB20HubPort, id 0x100000356, registered, matched, active, busy 0 (0 ms$
    |   | |   |     | +-o AppleUSB20HubPort@1a124400  <class AppleUSB20HubPort, id 0x100000357, registered, matched, active, busy 0 (0 ms$
    |   | |   |     +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x100000352, !registered, !matched, active, busy 0, retain 8>
    |   | |   +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x100000319, !registered, !matched, active, busy 0, retain 8>
    |   | +-o HP23@1a130000  <class AppleUSB20InternalIntelHubPort, id 0x1000002d5, registered, matched, active, busy 0 (0 ms), retain 13$
    |   | +-o HP24@1a140000  <class AppleUSB20InternalIntelHubPort, id 0x1000002d6, registered, matched, active, busy 0 (0 ms), retain 13$
    |   | +-o HP25@1a150000  <class AppleUSB20InternalIntelHubPort, id 0x1000002d7, registered, matched, active, busy 0 (2 ms), retain 17$
    |   | | +-o BCM20702A0@1a150000  <class IOUSBHostDevice, id 0x1000002fa, registered, matched, active, busy 0 (2 ms), retain 31>
    |   | |   +-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x1000002fd, !registered, !matched, active, busy 0, retai$
    |   | |   +-o BroadcomBluetoothHostControllerUSBTransport  <class BroadcomBluetoothHostControllerUSBTransport, id 0x100000300, regist$
    |   | |   +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x100000413, !registered, !matched, active, busy 0, retain 10>
    |   | |   +-o IOUSBHostInterface@1  <class IOUSBHostInterface, id 0x100000414, !registered, !matched, active, busy 0, retain 7>
    |   | |   +-o IOUSBHostInterface@2  <class IOUSBHostInterface, id 0x100000415, !registered, !matched, active, busy 0, retain 5>
    |   | |   +-o IOUSBHostInterface@3  <class IOUSBHostInterface, id 0x100000416, !registered, !matched, active, busy 0, retain 5>
    |   | +-o HP26@1a160000  <class AppleUSB20InternalIntelHubPort, id 0x1000002d8, registered, matched, active, busy 0 (1797 ms), retain$
    |   | | +-o STORE N GO@1a160000  <class IOUSBHostDevice, id 0x100016078, registered, matched, active, busy 0 (1240 ms), retain 25>
    |   | |   +-o AppleUSBHostLegacyClient  <class AppleUSBHostLegacyClient, id 0x10001607b, !registered, !matched, active, busy 0, retai$
    |   | |   +-o AppleUSBHostCompositeDevice  <class AppleUSBHostCompositeDevice, id 0x100016082, !registered, !matched, active, busy 0,$
    |   | |   +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x100016083, registered, matched, active, busy 0 (1203 ms), retain $
    |   | |     +-o IOUSBMassStorageInterfaceNub  <class IOUSBMassStorageInterfaceNub, id 0x100016088, registered, matched, active, busy $
    |   | |       +-o IOUSBMassStorageDriverNub  <class IOUSBMassStorageDriverNub, id 0x10001608a, registered, matched, active, busy 0 (1$
    |   | |         +-o IOUSBMassStorageDriver  <class IOUSBMassStorageDriver, id 0x10001608e, !registered, !matched, active, busy 0 (120$
    |   | |           +-o IOSCSILogicalUnitNub@0  <class IOSCSILogicalUnitNub, id 0x100016090, registered, matched, active, busy 0 (30 ms$
    |   | |             +-o IOSCSIPeripheralDeviceType00  <class IOSCSIPeripheralDeviceType00, id 0x100016093, !registered, !matched, act$
    |   | |               +-o IOBlockStorageServices  <class IOBlockStorageServices, id 0x100016096, registered, matched, active, busy 0 $
    |   | |                 +-o IOBlockStorageDriver  <class IOBlockStorageDriver, id 0x100016097, registered, matched, active, busy 0 (2$
    |   | |                   +-o Verbatim STORE N GO Media  <class IOMedia, id 0x100016098, registered, matched, active, busy 0 (28 ms),$
    |   | |                     +-o IOMediaBSDClient  <class IOMediaBSDClient, id 0x100016099, registered, matched, active, busy 0 (0 ms)$
    |   | |                     +-o IOFDiskPartitionScheme  <class IOFDiskPartitionScheme, id 0x10001609c, !registered, !matched, active,$
    |   | |                       +-o Untitled 1@1  <class IOMedia, id 0x10001609e, registered, matched, active, busy 0 (0 ms), retain 10$
    |   | |                         +-o IOMediaBSDClient  <class IOMediaBSDClient, id 0x10001609f, registered, matched, active, busy 0 (0$
    |   | +-o HP27@1a170000  <class AppleUSB20InternalIntelHubPort, id 0x1000002d9, registered, matched, active, busy 0 (0 ms), retain 8>
    |   | +-o HP28@1a180000  <class AppleUSB20InternalIntelHubPort, id 0x1000002da, registered, matched, active, busy 0 (0 ms), retain 8>
    |   +-o IOUSBHostInterface@0  <class IOUSBHostInterface, id 0x1000002c6, !registered, !matched, active, busy 0, retain 8>
    +-o PR22@1a200000  <class AppleUSBEHCIPort, id 0x100000273, registered, matched, active, busy 0 (0 ms), retain 11>
    +-o PR23@1a300000  <class AppleUSBEHCIPort, id 0x100000274, registered, matched, active, busy 0 (0 ms), retain 11>
    +-o PR24@1a400000  <class AppleUSBEHCIPort, id 0x100000275, registered, matched, active, busy 0 (0 ms), retain 11>
    +-o PR25@1a500000  <class AppleUSBEHCIPort, id 0x100000276, registered, matched, active, busy 0 (0 ms), retain 11>
    +-o PR26@1a600000  <class AppleUSBEHCIPort, id 0x100000277, registered, matched, active, busy 0 (0 ms), retain 11>

pmset -g assertions
Code:
....

....
   id=502  level=255 0x4=USB mod=1/1/70, 08:00 description=com.apple.usb.externaldevice.1a110000 owner=USB2.0 Hub
   id=504  level=255 0x4=USB mod=1/1/70, 08:00 description=com.apple.usb.externaldevice.1a150000 owner=BCM20702A0
   id=506  level=255 0x4=USB mod=1/1/70, 08:00 description=com.apple.usb.externaldevice.1a120000 owner=IOUSBHostDevice
   id=510  level=255 0x4=USB mod=1/1/70, 08:00 description=com.apple.usb.externaldevice.1a124000 owner=IOUSBHostDevice
   id=512  level=255 0x4=USB mod=1/1/70, 08:00 description=com.apple.usb.externaldevice.1a124100 owner=Quick Fire PRO Keyboard
   id=824  level=255 0x4=USB mod=1/1/70, 08:00 description=com.apple.usb.externaldevice.1a160000 owner=STORE N GO
   id=853  level=255 0x4=USB mod=1/1/70, 08:00 description=com.apple.usb.externaldevice.1a111000 owner=USB  AUDIO 
   id=855  level=255 0x4=USB mod=1/1/70, 08:00 description=com.apple.usb.externaldevice.1a123000 owner=USB Receiver

ignore the device IOUSBHostDevice, they are USB Hub

e.g.

Quick Fire PRO Keyboard is connected to

EH02.PR11.HP12 -> IOUSBHostDevice (Aten KVM USB HUB) -> IOUSBHostDevice (8 Port external Hub) -> USB Keyboard

com.apple.usb.externaldevice.1a124100 owner=Quick Fire PRO Keyboard

0x1a124100 : EH02.
0x1a124100 : EH02.PR11
0x1a124100 : EH02.PR11.HP12
0x1a124100 : EH02.PR11.HP12 -> IOUSBHostDevice (Aten KVM USB HUB) Port 4
0x1a124100 : EH02.PR11.HP12 -> IOUSBHostDevice (Aten KVM USB HUB) Port 4 -> IOUSBHostDevice (8 Port USB HUB) Port 1 -> Keyboard

actually the Keyboard is connected to HP12


USB Receiver :
EH02.PR11.HP12 -> IOUSBHostDevice (Aten KVM USB HUB) -> USB Mouse Receiver

com.apple.usb.externaldevice.1a123000 owner=USB Receiver

0x1a123000 : EH02.
0x1a123000 : EH02.PR11
0x1a123000 : EH02.PR11.HP12
0x1a123000 : EH02.PR11.HP12 -> IOUSBHostDevice (Aten KVM USB HUB) Port 3 -> Mouse Receiver

actually the Mouse Receiver is connected to HP12
 

Attachments

  • mac_20200218.ioreg.zip
    854.7 KB · Views: 58
Last edited:
but the detection algorithm is incorrect (e.g. device BCM20702A0 is connected to HP25 not PR25, HP25 =/=PR25)
This is most likely related to the issue I've been discussing with @joevt. It appears as if the routine I recently wrote to match an IOUSBDevice with its AppleUSBHostPort is still not quite right.

Can you please post your .ioreg file so I can take a closer look?
 
Last edited:
I noticed that USBInjectAll shows a new version (0.7.4) which is true based off the git repo that data is being sourced from, but when you select "build", it doesn't seem to execute a complete build because a proper USBInjectAll kext is never produced. It only builds Lilu.kext which I don't think is even a dependency of USBInjectAll.
Screen Shot 2020-02-18 at 12.57.51 PM.png
 
This is most likely related to the issue I've been discussing with @joevt. It appears as if the routine I recently wrote to match an IOUSBDevice with its AppleUSBHostPort is still not quite right.

Can you please post your .ioreg file so I can take a closer look?

sure, attached the ioreg in my post
 
Back
Top