首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOKit不允许在沙箱?

IOKit不允许在沙箱?
EN

Stack Overflow用户
提问于 2014-04-23 12:30:44
回答 6查看 3.1K关注 0票数 6

我刚开始使用IOKit,并且已经注意到我认为沙箱会使它失败。

下面是我正在尝试的测试(在Pascal中),它在沙箱外运行良好,但是当我启用它时,IOServiceOpen每次都返回错误kIOReturnNotPermitted。

对于某些服务,IOKit在沙箱中不安全吗?我试图获得一些风扇速度/cpu温度,我看到在AppStore (沙箱)有一些应用程序这样做,所以我相信这是可能的。我能确认的唯一一个例子似乎是将XPC服务与应用捆绑在一起,作为一个助手,所以也许这是让IOKit工作的一个线索?我基本上尝试了所有的权利,但似乎都没有任何帮助。

谢谢你的想法。

代码语言:javascript
复制
procedure TestIOKit;
var
    err: kern_return_t;
    masterPort: mach_port_t;
    iterator: io_iterator_t;
    device: io_object_t;
    matchingDictionary: CFMutableDictionaryRef;
    conn: io_connect_t;
begin
    IOMasterPort(0, masterPort);
    matchingDictionary := IOServiceMatching('AppleSMC');
    err := IOServiceGetMatchingServices(masterPort, matchingDictionary, iterator);
    if err <> kIOReturnSuccess then
        writeln('IOServiceGetMatchingServices: ', err);

    device := IOIteratorNext(iterator);
    IOObjectRelease(iterator);
  if device = 0 then
        writeln('no smc found');

    err := IOServiceOpen(device, mach_task_self_, 0, conn);
  if err <> kIOReturnSuccess then
        writeln('IOServiceOpen: ', err);
end;
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-10-27 17:41:26

我发现了同样的问题,试图读取SMC键,以便从OSX的“今日扩展”中获取传感器、温度和风扇速度。扩展需要沙箱,而且每当我尝试读取临时感应器和风扇感应器时,我都会得到kIOReturnNotPermitted错误。

我让它工作的唯一方法是创建一个XPC服务来管理所有的SMC内容,配置为一个启动代理。这样,沙箱应用程序(“今天”扩展)要求XPC服务提供所有相关数据,而不是直接处理IOKit。

到目前为止,它似乎运行正常。

票数 4
EN

Stack Overflow用户

发布于 2016-02-01 18:57:31

您不需要XPC (不确定我是否理解这个答案,因为它也需要沙箱)。

你可以使用这个临时的权利,虽然我没有任何希望苹果批准它的MAS -你需要提出你的理由,试图证明它的使用在iTunes连接。我也有类似的问题,到目前为止,这是我找到的唯一“解决方案”:

代码语言:javascript
复制
com.apple.security.temporary-exception.sbpl string (allow iokit-open)
票数 3
EN

Stack Overflow用户

发布于 2015-09-25 09:35:24

我看不出Luis的回答提供了一个解决方案,但提供了错误的信息。

事实上,目前无法从一个沙箱应用程序中访问这个I/O工具包功能,苹果也不会批准它的应用商店。如果您从Luis处选中该应用程序的沙箱状态,就会发现它根本没有沙箱。另外,它在assume中不可用,我想这就是原因所在。

航站楼:

代码语言:javascript
复制
codesign --display --entitlements - VitalStats.app

最近在开发者论坛上进行了一次讨论,来自苹果的人证实了这是不可能的。

https://devforums.apple.com/message/1082393#1082393

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23244349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档