gpt4 book ai didi

macos - 检测 OS X 内核扩展是否可加载

转载 作者:行者123 更新时间:2023-12-03 17:38:39 25 4
gpt4 key购买 nike

我正在尝试编写一个与自定义 USB 设备通信的应用程序。我们编写了一个驱动程序(kext),当 USB 设备连接到计算机时会自动加载该驱动程序。在安装过程中,它被安装到适当的位置(/System/Library/Extensions 和/Library/Extensions)。

在我的应用程序 (.app) 中,我需要能够确认此 kext 已安装并且可以在用户计算机上加载。

我最初的想法是使用“System”命令并获取“kextstat | grep mykext”的结果。但是,kextstat 仅显示已加载的内核扩展。 (应用程序可能会在用户连接 USB 设备之前启动)。

我唯一能想到的就是使用“kextfind | grep mykext”来确定kext是否存在,但是,我不知道它是否可加载。 (即它可能存在,但有人弄乱了 plist 文件,现在签名失败,所以它永远不会被加载)

知道这是可能的,因为 Apple 的 System Profiler 能够列出所有扩展(如果已加载)以及是否可加载。
System Profiler

最佳答案

来自 kextutil 手册页:

kextutil prints diagnostic information about kexts by default, but some options cause certain tests to be skipped. To ensure that all tests are performed, use the -print-diagnostics (-t) option. The -print-diagnostics option is typically used with -no-load (-n) after a load failure to pinpoint a problem. It can be used with any other set of options, however.

注意:当使用 -no-load (-n) 选项时,不需要 sudo(root 用户)。

关于macos - 检测 OS X 内核扩展是否可加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28705435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com