Mac 沙盒和文件 ioctl

Posted

技术标签:

【中文标题】Mac 沙盒和文件 ioctl【英文标题】:Mac Sandbox & file-ioctl 【发布时间】:2012-05-07 12:09:17 【问题描述】:

我目前正在对连接到 NeuroSky MindWave 耳机的程序进行沙盒处理;本质上是一种通过 USB 加密狗连接并在其间使用蓝牙的脑电波读取设备。

可以通过 /dev/tty.MindWave 套接字访问设备。

我添加了对文件的读取权限的临时权利:

   <key>com.apple.security.temporary-exception.files.absolute-path.read-write</key>
    <array>
        <string>/dev/tty.MindWave</string>
    </array>

这消除了文件的沙盒错误消息,但现在出现以下错误:

deny file-ioctl /dev/tty.MindWave

似乎没有匹配的临时授权。这意味着我必须尽快从 Mac App Store 版本中删除对该设备的支持。

然而,在这样做之前,我想我会发出一个 SOS,看看这个小组中是否有人有解决方案..

任何帮助将不胜感激。

最好的问候,

弗兰克

【问题讨论】:

【参考方案1】:

此文档可能会有所帮助:

http://developer.apple.com/library/ios/#DOCUMENTATION/Miscellaneous/Reference/EntitlementKeyReference/EnablingAppSandbox/EnablingAppSandbox.html

看起来您需要的授权密钥是:

com.apple.security.device.usb

我感受到了你的痛苦:我正在与沙盒中的登录项搏斗,而我才刚刚走到一条长隧道的尽头!

希望它有所帮助,并且该设备听起来很棒 - 听说过这样的事情,但没有意识到它们是公开的!

托德

【讨论】:

感谢您的建议。我相当肯定我尝试了 com.apple.security.device.usb 权利,但它没有用。 Neurosky 与您的应用程序捆绑的可可插件实际上并不直接与设备对话,而是与作为单独进程运行的守护进程对话。我会再试一次以防万一,因为我对他们的设备驱动程序的工作原理知之甚少:-) 啊,一个守护进程。这在沙盒中可能会出现问题。确保它也是沙盒和代码签名的。它也可能需要放在特定位置。看看delitestudio.com/2011/10/25/…,它可能在这里有用....

以上是关于Mac 沙盒和文件 ioctl的主要内容,如果未能解决你的问题,请参考以下文章

Mac 应用程序沙盒和 forkpty()

10.7.3 之前的 Mac App Store 沙盒和处理安全范围的书签

ios - 沙盒和NSBundle

沙盒和App Group

沙盒和App Group

沙盒和App Group