I’m a developer working on a third celebration USB HID product that’s meant to be used with MAC. The product is required to ship the instructions to invoke each Mission Management and Launchpad over the USB interface.
Throughout product improvement on a macOS Catalina take a look at system, this was working properly. The suitable definitions had been created in the product USB HID Descriptor tables to allow these Apple vendor-specific perform definitions to work. Native USB HID instructions could possibly be despatched to the MAC and each Misson Management and Launchpad could possibly be triggered from the product.
Drawback: Testing on macOS Monterey exhibits this to have stopped working, but works superb on Catalina.
Since my implementation of the Apple vendor-specific perform definitions was working in Catalina, however not Monterey, I initially figured that there could be some subtlety related to how the product reported itself in the HID descriptors, and that probably Monterey was being stricter on the format of the USB HID Descriptor it will settle for. I imagine Microsoft did one thing comparable in Home windows 10, changing into extra strict on USB message codecs than in the previous.
Earlier than happening the path of experimenting with different USB HID Descriptor studies, I made a decision to take a look at the best change first – quickly have the keyboard report itself as an Apple Keyboard. Making no different modifications to the product, I modified:
- The VID (Vendor ID) to “Apple Inc.”
- The PID (Product ID) to the one for the Apple Aluminium keyboard.
Notice that the VID/PID change was purely for testing and debugging functions.
Instantly the macOS Particular Capabilities began working once more (Mission Management and Launchpad).
I modified the VID and PID again to the ones for our product – Apple Vendor-specific Capabilities stopped working. I modified the VID and PID again to the Apple ones – they began working once more.
This tells me that the knowledge format being reported to macOS in the HID Descriptor and the HID Instructions are right, and could be accepted, nevertheless macOS is selecting to ignore these instructions as they don’t originate from an Apple keyboard. Evidently, in both Large Sur or Monterey, Apple has chosen to intentionally ignore these correctly-formed HID instructions, primarily based on both the VID or PID of the gadget sending the instructions.
On condition that the data required to implement these options is publicly obtainable, it will appear to me to be anti-competitive for Apple to publish this data after which intentionally forestall it is use.
Can anybody else confirm that Apple have chosen in macOS Monterey to intentionally cripple third celebration USB HID merchandise from implementing the Apple Vendor-Particular USB HID Utilization pages? In that case, has anybody discovered a work-around?