I am trying to rewrite old FireWire CamCorder controll command line utilities into XPC Service.
- Old utility was modified version of simpleAVCSample.c in legacy sample code
- And existing command binary works on macOS 10.14
- I tried same IOKit/IOCFPlugIn code in Application or XPCService
- But they failed at following step
kern_return_t result = IOCreatePlugInInterfaceForService(
service, kIOFireWireAVCLibUnitTypeID, kIOCFPlugInInterfaceID, &interface,&score);
// 0xe00002be = kIOReturnNoResources in IOReturn.h
And always console.app logged sandboxd rejected as:
Sandbox: testAVC(8332) System Policy: deny(1) iokit-open IOFireWireAVCUserClient
Violation: System Policy: deny(1) iokit-open IOFireWireAVCUserClient
But this is always logged even if I DO NOT check sandbox entitlement.
I also tried "com.apple.security.device.firewire" entitlement, because /System/Library/Sandbox/Profiles/Application.sb contains following part as:
(when (entitlement "com.apple.security.device.firewire")
(allow iokit-open (iokit-user-client-class "IOFireWireUserClient"))
(allow iokit-open (iokit-user-client-class "IOFireWireAVCUserClient"))
(allow iokit-open
(iokit-user-client-class "IOFireWireAVCProtocolUserClient"))
(allow iokit-set-properties (iokit-property "SummonNub")))
But it also does not help.
Please give me some hint how to resolve IOCreatePlugInInterfaceForService() error.