macos - 如何获得“com.apple.developer.driverkit.userclient-access”的权利?
问题描述
我们已请求所有与 DriverKit 相关的权利。我们得到的如下:
com.apple.developer.driverkit
com.apple.developer.driverkit.transport.hid
com.apple.developer.driverkit.family.hid.device
com.apple.developer.driverkit.family.hid.eventservice
com.apple.developer.driverkit.family.hid.virtual.device
我们刚刚了解到,如果我们要分发能够与 DriverKit 通信的应用程序,com.apple.developer.driverkit.userclient-access
则需要授权。但是,我们不知道如何生成包含此权利的配置文件。在向 Apple 发送请求权利时,我们是否遗漏了什么?或者当我们选择适当的功能时,此权利已在某些项目上准备就绪?
解决方案
在向 Apple 发送请求权利时,我们是否遗漏了什么?
该表单不会询问它,但不幸的是,您必须在自由格式文本字段中明确请求它。确保您还列出了您的应用程序需要与之通信的所有 dext 包 ID,因为权利是单独授予每个 dext。(或者至少是几周前的情况。)
您可以重新提交表单,或尝试回复有关您的原始权利授予的电子邮件。确保您明确要求您将使用该权利的分发渠道(开发、开发者 ID、App Store)(并检查是否已为您需要的渠道授予所有现有权利),因为我的一位客户获得了一些权利只是开发,而不是分发,因为我们没有明确要求。
出于开发目的,在您被授予权利之前,您可以启用以下boot-args
内核参数,以便系统将忽略您的配置文件中缺少权利(但应用程序仍需要列出的权利) - 这样应用程序仍然可以启动和内核端用户客户端访问权限将通过。通常,如果应用程序列出了不在配置文件中的权利,AMFI 将立即终止该应用程序。
nvram boot-args="amfi_get_out_of_my_way=1"
(这只能从恢复环境中设置;确保不覆盖任何现有boot-args
的,如有必要,只需将其附加到现有的)
最后,如果您打算从沙盒应用程序(例如通过 App Store 分发的任何应用程序)与 dext 通信,我认为您还需要从沙盒应用程序IOKit User Client Class Temporary Exception。这是com.apple.security.temporary-exception.iokit-user-client-class
权利,需要为IOUserUserClient
班级颁发。我不知道其工作原理的详细信息,但如果适用于您,我肯定会连同您的 driverkit 用户客户端访问权限一起提及它。
推荐阅读
- android - 仅在一种产品风格中替换 main 中的 Java 文件
- javascript - 具有相同脚本的多个模式
- raspberry-pi3 - 如何用 Android Things 搭建树莓派集群环境?
- sql - 使用 2 个表作为 JOIN 条件
- java - 如何使用 Filter 使我的 JFileChooser 工作?另外,我的 .getText() 和 .getSelectedIndex 有错误
- kubernetes - Kubernetes CRD 终结器
- sql - 如何从 JavaFx tableview 上的一个数据库中填充两个表
- android - 如何快速自动发送 FCM 或 APNS 消息?
- c# - 长 API 调用 - 异步调用答案?
- centos - 如何更改 systemd 单元文件目录?