Custom FAT16 USB volume support

There's a slightly tweaked FAT16 implementation used on some Akai samplers. I've created an emulator of one of those samplers. It supports USB volume i/o with a custom FAT16 implementation. All of this works, but currently goes via the deprecated AuthorizationExecuteWithPrivileges for achieving raw USB volume access. The mechanism I specifically rely on currently is to, with elevated privileges, change the ownership of /dev/diskN, and then with normal privileges I can open a file handle against that disk device.

Yesterday I looked into migrating to SMJobBless, but it also turns out to be deprecated.

Does any of the macOS SDKs support my use case? Should I look into writing a DriverKit or IOKit driver?

Any tips or guidance would be appreciated. Ideally I can implement a flow where the user is only required to approve with admin privileges once and after that has raw block device access to a restricted set connected volumes -- FAT16/ms-dos volumes that have a special volume label, or a special flag set in the boot sector.

Yesterday I looked into migrating to SMJobBless, but it also turns out to be deprecated.

My general advice on BSD privilege escalation is in BSD Privilege Escalation on macOS.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Custom FAT16 USB volume support
 
 
Q