FTDI USB-serial driver on iPadOS

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:

https://developer.apple.com/forums/thread/795202

https://developer.apple.com/forums/thread/655527

Answered by DTS Engineer in 861479022

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

Accepted Answer

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

FTDI USB-serial driver on iPadOS
 
 
Q