We are trying to intercept raw reports from the built-in MacBook haptic trackpad using a DriverKit IOUserHIDEventDriver dext.
Our dext installs and activates successfully:
OSSystemExtensionRequestfinishes with result0systemextensionsctl listshows the dext asactivated enabled- the dext is embedded correctly in the app bundle
However, it never attaches to the built-in trackpad IOHIDInterface. ioreg shows the built-in trackpad interface still matched only by Apple’s HID dext. We also observed that Apple’s own HID dext appears to use com.apple.developer.driverkit.builtin, while that entitlement is not available in our provisioning profile.
Our dext specifically relies on:
IOUserHIDEventDriver::handleReport(...)SetProperties()withkIOHIDEventDriverHandlesReport
Questions:
- Is
com.apple.developer.driverkit.builtinrequired for a third-partyIOUserHIDEventDriverto match a built-in internal trackpadIOHIDInterface? - Is that entitlement public/requestable, or Apple-internal only?
- At what stage is it enforced: activation, personality matching, provider attach, or before
Start()? - If
builtinis not available to third parties, is there any officially supported way to receive raw reports from the built-in MacBook trackpad in DriverKit?
Our conclusion so far is that activation succeeds, but provider binding to the built-in trackpad fails due to built-in-only authorization/matching.