I might be trying to achieve the impossible here, but if there's another way to go about it any advice would be appreciated.
I've got an older Linux application that reflashes firmware on a connected USB HID device that I'm trying to port to macOS.
Essentially the device starts as an HID interface (0x03/0x01/0x01) but to update firmware receives a simple control payload and then restarts and connects as a different (non-HID) device.
However I can't open the HID device at all, I'm guessing this is some sort of permission error (SIP?).
AppleUSBHostUserClient::openGated: failed to open IOUSBHostDevice... provider is already opened for exclusive access by AppleUSB20Hub
hid_open_path: failed to open IOHIDDevice from mach entry: (0xE00002E2) not permitted
AppleUSBXHCICommandRing::setAddress: completed with result code 4
AppleUSBHostPort::createDevice: failed to create device (0xe00002bc)
AppleUSBIORequest ... transaction error ... 0xe00002ed
Is there any way at all to do this on macOS? Interestingly if you run a Windows VM in VMWare or similar and connect the device to that VM it works, so there's obviously some way but I'd like to create a simple standalone tool.