如何获得“ 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发送请求权利时,我们会错过某些东西吗?还是当我们选择适当的功能时在某些项目上已经准备好此权利?

解决方法

向苹果发送请求权利时,我们会错过某些东西吗?

该表单不会询问它,但是很遗憾,您必须在自由格式文本字段中明确请求它。确保您还列出了您的应用程序需要与之通信的所有dext捆绑包ID,因为每个dext的权限都是单独授予的。 (或者至少是在几周前)。

您可以重新提交表格,或尝试回复有关原始权利授予的电子邮件。确保您明确要求使用权利的发行渠道(开发,开发人员ID,App Store)(并检查是否已为所需的渠道授予了所有现有权利),因为我的一位客户获得了某些权利只是开发,而不是发行,因为我们没有明确要求。

出于开发目的,在授予您权利之前,您可以启用以下boot-args内核参数,以便系统将忽略您的配置文件中缺少该权利(但是该应用仍然需要列出的权利) )-这样,应用程序仍可以启动,并且内核端的userclient访问权限将通过。通常,如果该应用列出的资源不在配置文件中,则该应用将立即被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类颁发。我不知道它如何工作的详细信息,但是如果适用于您,我肯定会在驱动程序包userclient访问权利中提及它。