Hello,
We have developed a hardware product that embeds an FTDI USB-serial converter, and an application on MacOS that communicates with this device. We would like to port our application to iPadOS. I can see that when I plug the device into the iPad, it is recognized as a serial port, based on its console logs. When I attempt to enumerate serial ports on iPadOS using IOKit, I can see matching IOSerialBSDClient services, but the properties are sandboxed, including the IOCalloutDevice property, for example:
0 error 16:36:10.922450-0700 kernel Sandbox: ***(662) deny(1) iokit-get-properties iokit-class:IOUserSerial property:IOTTYSuffix
Is there an entitlement that can be applied that allows access to the serial port properties of an attached USB device? Or do I need to implement my own USBDriverKit driver for this device, as seems to be implied in these forum threads:
Is there an entitlement that can be applied that allows access to the serial port properties of an attached USB device?
No there is not. FYI, even if IOKit let you access the necessary properties, the file system sandbox would block you from accessing the device node. On iPadOS, IOKit is really ONLY useful for finding and communicating with DriverKit user clients, as the sandbox basically blocks access to "everything" else.
Or do I need to implement my own USBDriverKit driver for this device, as seems to be implied in these forum threads:
Yes, that's what you need to do.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware