I have these entitlements granted by apple so no SIP deactivation needed:
<key>com.apple.developer.driverkit</key><true/>
<key>com.apple.developer.driverkit.family.serial</key<true/>
<key>com.apple.developer.driverkit.transport.usb</key>
<array>
<dict>
<key>idVendor</key>
<integer>3245</integer>
</dict>
</array>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>IOTTYSuffix</key>
<string>0</string>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>CFBundleIdentifierKernel</key>
<string>com.apple.kpi.iokit</string>
<key>IOTTYBaseName</key>
<string>tetra-pei</string>
<key>IOClass</key>
<string>IOUserService</string>
<key>CFBundleIdentifier</key>
<string>dev.paulober.MotorolaTetraPeiDriver</string>
<key>IOMatchCategory</key>
<string>dev.paulober.MotorolaTetraPeiDriver</string>
<key>IOProviderClass</key>
<string>IOUSBHostInterface</string>
<key>IOResourceMatch</key>
<string>IOKit</string>
<key>IOUserClass</key>
<string>MotorolaTetraPeiDriver</string>
<key>IOUserServerName</key>
<string>dev.paulober.MotorolaTetraPeiDriver</string>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>IOParentMatch</key>
<dict>
<key>IOProviderClass</key>
<string>IOUSBHostDevice</string>
<key>idVendor</key>
<integer>3245</integer>
<key>idProduct</key>
<integer>36886</integer>
</dict>
<key>bInterfaceClass</key>
<integer>255</integer>
<key>bInterfaceSubClass</key>
<integer>0</integer>
<key>bInterfaceProtocol</key>
<integer>0</integer>
<key>IOProbeScore</key>
<integer>60000</integer>
My iig looks like this in the beginning:
#include <Availability.h>
#include <DriverKit/IOService.iig>
#include <USBSerialDriverKit/IOUserUSBSerial.iig>
class MotorolaTetraPeiDriver: public IOUserUSBSerial