2

HIDデバイス(マウスやキーボードではない)にアクセスするためにhidapiを使用しています。サポートされる最も古いOSバージョンは10.6で、現在Mac OXX10.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ルールによるホットプラグスクリプトの起動に関する同様の問題を回避し、新しく接続された(一致する)デバイスの権限を変更しました。デーモンユーザーに固執したいと思います。どうすればこれを達成できますか?

4

3 に答える 3

1

Apple Developer Support Ticketを開いて、いくつかの回答を得ました。問題は、私のアプリケーションがユーザー「デーモン」として実行されているということではありません。少なくとも、正確には...

アプリケーションは、認証された(インタラクティブにログインした)ユーザーまたは「root」として実行する必要があります。したがって、「デーモン」としてログオンできれば、適切に実行されます。実際、これは役に立ちません。私のアプリケーションの機能は一種のネットワーク経由でアクセス可能なサーバーであるため、(起動された)デーモンが必要です。したがって、アプリケーションをユーザー「root」として実行する必要があります。これは、とにかくlauchdデーモンの危険なデフォルトです。

于 2012-12-20T10:44:54.857 に答える
0

IIRC Lion は、必要な特権を一段と高めました…今度は、サンドボックスの資格が必要になります。おそらく「com.apple.security.device.usb」です。

于 2012-12-14T00:04:08.780 に答える