Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Path of the libIOAccessoryManager file on Sonoma? #1

Open
dlqqq opened this issue Dec 8, 2023 · 1 comment
Open

Path of the libIOAccessoryManager file on Sonoma? #1

dlqqq opened this issue Dec 8, 2023 · 1 comment

Comments

@dlqqq
Copy link

dlqqq commented Dec 8, 2023

Hello, this is a really interesting project! I recently found this undocumented IOKit API while trying to figure out why my USB mouse isn't working. I lack experience with macOS-specific debugging and would like your input here.

I'm running macOS Sonoma on an M1 MBP. What is the path of the libIOAccessoryManager file that you mention in the README? Here's what I've tried so far:

cd /System/Library/Frameworks
find . -name "*libIOAccessoryManager*"
# => no results

cd /System/Library/PrivateFrameworks
find . -name "*libIOAccessoryManager*"
# => no results

For context, I'm trying to find information related to this function:

kernel: (IOAccessoryManager) IOPortTransportState::setNominalSignalingFrequencies(): [Port-USB-C@2: USB2] Setting nominal signaling frequencies...

I've noticed that my USB mouse fails to connect if and only if this function logs an ERROR message later.

@dehydratedpotato
Copy link
Owner

dehydratedpotato commented Dec 8, 2023

@dlqqq the binary for libIOAccessoryManager is actually in the system dyld embedded filesystem, but you actually want a different binary.

The binary you would want, that actually has methods for IOPortTransportState, is a part of the kext located at System/Library/Extensions/IOAccessoryManager.kext.

Now, there used to be a binary in that kext, but it seems Apple removed most kext binaries with Sonoma or maybe Ventura; so in case you can't find the binary yourself, here's my own copy.
IOAccessoryManager.zip

Using a disassembler, the setNominalSignalingFrequencies method should show up somewhere in there, hopefully, but If it doesn't it is most likely because that copy is 3 macOS releases old lol. I currently don't know what the method does, though...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants