corpnewt / USBMap

Python script for mapping USB ports in macOS and creating a custom injector kext.
MIT License
1.06k stars 89 forks source link

can not edit/cerate #26

Closed lalitaalaalitah closed 3 years ago

lalitaalaalitah commented 3 years ago

Here is what I'm getting:


Traceback (most recent call last):
  File "~/USBMap/USBMap.py", line 1345, in <module>
    u.main()
  File "~/USBMap/USBMap.py", line 1334, in main
    self.edit_plist()
  File "~/USBMap/USBMap.py", line 851, in edit_plist
    print("    ----- {}{} Controller{} -----".format(self.cs,self.merged_list[cont]["parent"],self.ce))
KeyError: 'parent'```
I've tried with latest script.
corpnewt commented 3 years ago

Hey there, could you run the following in terminal and send the resulting ioreg.txt file from the Desktop?

ioreg -lw0 > ~/Desktop/ioreg.txt

-CorpNewt

lalitaalaalitah commented 3 years ago

Here it is : https://drive.google.com/file/d/1jkbJ-cZLaRbe4RJ6xeP2pBtaTy7PV1N1/view?usp=sharing

BTW, I'm on 11.3 and my USB are broken. Remapping results in USB 3 ports not working anyhow. And Bluetooth is not visible in discovery so I can't map it.

To add USBInjectAll.kext halts boot at loading kext.

Any help is appreciated.

corpnewt commented 3 years ago

That ioreg.txt works fine for me when piped to USBMap:

image

Both in discovery and when editing & creating USBMap.kext:

image

I wonder if you have some older, garbage data in your USB.plist? You can reset that with R. Reset All Detected Ports in the main menu of USBMap.

Your USB ports are likely broken on 11.3 (and 11.4 betas 1 and 2 so far) due to the XhciPortLimit quirk no longer working. Make sure you disable that in your config.plist as it just causes USB ports (even those under the 15 port limit) to not respond. USBInjectAll is also broken IIRC. You can use USBMap's K. Create Dummy USBMap.kext option from the main menu to create a dummy injector that fills in the info that USBInjectAll normally would - so you can still map ports via discovery + removing (or renaming their port key in the dummy injector's Info.plist to #port) to work around the 15 port limit.

-CorpNewt

lalitaalaalitah commented 3 years ago

Thanks, somehow the python file worked and I was able to do all steps mentioned by you. Everything works as old times. Thanks again.

corpnewt commented 3 years ago

Not a problem - glad you were able to get it working.

-CorpNewt