java - 是否可以在应用程序中捆绑 kext?

标签 java macos installation kernel-extension

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

最佳答案

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

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

步骤:

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

Apple 的开发者文档非常糟糕。祝你好运。您可能必须使用 Objective-C 或 C 而不是 Java 来完成这一切,因为您必须使用 C 库,例如安全框架和服务管理器,以及代码签名。

关于java - 是否可以在应用程序中捆绑 kext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12917102/

相关文章:

java - 如何在不同网络的 NAT 后面的两个客户端之间建立 TCP 连接?

Java 准备好的语句未输入数据并命中捕获

javascript - PHOTOSHOP/JSX : How to efficiently check if tool was used

java - UDP 组播在错误的 NIC 上发送(Java、Mac OS X)

python - 在 Windows 中安装 eyed3

delphi - 如何使用Delphi 7构建安装程序?

java - mybatis - 获取sql字符串的映射结果

java - 我想使用 thymeleaf 包含到 html 文件中

macos - 无法在 MacOS 上删除旧版本的 ChromeDriver

postgresql - 如何在 PostgreSQL 9.0(MacPorts 安装)上安装 hstore 模块?