我使用命令:


  须藤kextunload /系统/库/扩展/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext
  
  sudo kextload /系统/库/扩展/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext


手动禁用/启用mac内置键盘。似乎可以卸载/加载内置键盘驱动程序,并且工作正常。

那么如何在代码中做到这一点。我认为,我需要完成两项任务。
1.卸载/加载驱动程序
2.运行sudo命令

第一项任务很简单,仅使用KextManager API会对我有利。

第二个,我发现Apple文档说,当您要运行sudo身份验证任务时,出于安全考虑,您应该使用类似以下内容的方法:
1.发射
2. SMJobless
3. XPC服务
4.等等
将高权限任务抽象为作为启动过程运行的子帮助程序工具,并使用XPC服务在主应用程序和此帮助程序工具之间进行通信。

我尝试了所有这些,并且辅助工具正常工作,但是当我使用


  KextManagerUnloadKextWithIdentifier(CFSTR(“ com.apple.driver.AppleUSBTCKeyboard”));


在辅助工具中。它不起作用,内置键盘未正确禁用。

我会错过某些东西吗,还是有另一种方式来做这项工作?

最佳答案

当我重新启动Macbook时,它可以正常工作……因此,这是解决此问题的正确方法。
如果您还有其他想法,请发表评论。

07-24 19:14