3

我们已请求所有与 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 发送请求权利时,我们是否遗漏了什么?或者当我们选择适当的功能时,此权利已在某些项目上准备就绪?

4

1 回答 1

3

在向 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 用户客户端访问权限一起提及它。

于 2020-08-31T12:15:07.297 回答