internal and external USB device list

Using IOServiceMatching and IOServiceGetMatchingServices api's written in swift to extract the info of both internal and external USB devices connected.

  1. For the same code Intel based Mac OS devices gives all the info like product id , vendor id , Serial number and etc for both external and Internal USB devices( Apple and Non Apple devices connected either to Apple T2 bus or USB bus).
  2. For the same code M2 Mac Machine only gives the external device info which are connected to USB, doesn't give any info of Internal USB connected devices.

Why is this difference ? Which api's need to be used to extract info of internal USB connected devices even in M2 based Mac machine.

Thanks

Replies

what makes you think there are any internal USB devices? Which devices do you think are missing?

Why do you need the information? If you can't do anything with the device (because it is proprietary, and can only be accessed over the higher-level interfaces provided by Apple), why would you care about it?

The Touchpad , camera , laptop keyboard all are connected to Apple T2 bus. Using IOKit library in Intel Mac machine, I am able to extract all these information but not in M2 Mac Machine. I need these info for taking certain decision. Can you let me know which higher-level interfaces provided by Apple be used to extract this info? Thanks.

I need these info for taking certain decision.

Please elaborate on this.

This matters because the nature of those decisions informs how you proceed. Specifically, nothing in the macOS API contract guarantees that a laptop’s keyboard and mouse will be accessible via USB. Indeed, historically macOS ran on hardware that didn’t even have USB.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"