I have been trying to get a stub DriverKit driver loading on my computers without success. I keep getting errors regarding the code signature being invalid. I've been beating my head against the wall for a couple weeks now, so I'd appreciate the help.
Layout: Standard Application that does the install/removal. BundleId (changed to protect the innocent) com.somename.someapp
. Second target with DriverKit driver: com.somename.someapp.mydriver
. To start out this is an IOUserHIDEventService
.
Question 1) I assume these need to be different with their own entitlements. Is that correct?
Question 2) this is my current Entitlement layout; App has SystemExtension
. Driver has DriverKit
, DriverKit HID Transport
, and DriverKit HID Event Service Family
. Is this correct for this layout?
Question 3) Does the Code Signing Identity/Profile in the Apple Developer section need to match exactly, or can that have more than what is requested? (I started equal, but gave more just to try to troubleshoot)
Question 4) I have requested and have been approved to have the "Additional Capabilities" versions of the DriverKit entitlements in Identities. Do i need both checked? can I only have the distribution one?
Question 5) I have SIP disabled on my machine (csrutil status
shows disabled). I thought this was supposed to bypass the code signing checks? I still see the driver loading being killed because of invalid code signing.
Question 6) Does the "Additional Capabilities" version of the DriverKit entitlements that I needed get get approval for bypass the need to disable SIP, or will i need to keep it off for the entirety of development?
Thanks!
Have you tried this with Xcode 14.1rc1?
I had reason to mess around with DriverKit today and with Xcode 14.0 I was seeing it build my macOS driver with the iOS-style provisioning profile name. I got halfway through filing a bug when I thought I’d better try it with the latest Xcode. On doing that I found that everything worked.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"