2

我有一个需要 kext 的 Mac OS X 应用程序(也是由我构建的)。我想将kext“捆绑”到应用程序中,这样当用户运行应用程序时,会自动加载kext(当然,可能会显示管理员密码提示)。有可能,还是我需要在安装时安装 kext?

4

2 回答 2

1

您可以从您的应用程序安装它。您需要使用服务管理框架以提升的权限(用 C 或 Obj-C 编写)运行任务。然后可以安装kext。

您的帮助工具应该是一个可执行文件,以提升的权限运行,以代表您的应用执行安装 kext 的操作。

脚步:

  1. 将 Kext 和辅助工具作为资源包含在您的应用程序包中
  2. 创建一个辅助工具来为您完成工作。您的帮助工具需要将您的 kext 复制到 /System/Extensions 目录。您需要以提升的权限复制它。让你的帮助工具调用 kextload 来安装它。
  3. 您需要对帮助工具和应用程序进行代码签名,并将服务管理框架的相关条目放在帮助程序和主应用程序的 info.plist 中。

苹果开发人员的文档是绝对残暴的。祝你好运。您可能必须使用 Objective-C 或 C 而不是 Java 来完成这一切,因为您必须使用诸如 Security Framework 和 Service Manager 之类的 C 库以及代码签名。

于 2012-10-16T14:34:43.533 回答
0

我已经成功捆绑了它!我运行了一个脚本,要求输入 root 密码,然后继续安装 kext。唯一的问题是必须事先知道捆绑的 kext 的位置(我必须对它们“cd”);所以应用程序必须放在预定义的位置,否则它将无法工作。

于 2012-10-17T11:56:11.390 回答