我正在使用 hidapi 访问 HID 设备(不是鼠标或键盘)。要支持的最旧的操作系统版本是 10.6,我目前使用的是 Mac OX X 10.6.8。如果我的 Mac OS X 可执行文件以普通用户权限运行,它可以枚举设备,识别要由其供应商和产品 ID 使用的设备,然后像这样打开它:
IOHIDDeviceRef os_dev = ...
IOReturn ret = IOHIDDeviceOpen(os_dev, kIOHIDOptionsTypeNone);
if (ret == kIOReturnSuccess) { ... } // here I get kIOReturnNotPrivileged for daemon
实际上可执行文件应该作为守护进程运行,但随后IOHIDDeviceOpen
失败并显示kIOReturnNotPrivileged
. 对于 Linux,我通过 udev 规则绕过了热插拔脚本触发的类似问题,从而更改了新连接(匹配)设备的权限。我想坚持守护进程用户。我怎样才能做到这一点?