首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装程序被激活后DriverKit消失了

安装程序被激活后DriverKit消失了
EN

Stack Overflow用户
提问于 2020-09-07 22:41:09
回答 1查看 89关注 0票数 0

这真是一种奇怪的情况。我的应用程序是一个用户代理,它与我的driverkit驱动程序进行通信,通过我们的设计,这个应用程序(名为myAgent.app)激活了我的驱动程序(名为myDriverKit),因为myAgent.app开始与myDriverKit通信。在我们的测试中,我通过plist手动加载它,内容如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.myCom.myApp</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Applications/myApp.app/Contents/Helper/myAgent.app/Contents/MacOS/myAgent</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>                                                         
    <true/>
</dict>
</plist>

一切都在完美地运行(在SIP下,当我们还没有被授予权利的时候)。

然后我们将其打包,myDriverKit在安装过程中激活时看起来运行良好,安装后脚本最后写到:

代码语言:javascript
复制
CONSOLE_USER=$(stat -f%Su /dev/console)
su -l "$CONSOLE_USER" -c '/bin/launchctl load /Library/LaunchAgents/com.myCom.myAgent.plist' 2> /dev/null

然而,在重新启动后,myDriverKit不再工作了!当我使用systemextensionctl list查找它时,它看起来是存活下来的,但是检查控制台,通过日志流挂钩它,我再也找不到它了。除非我手动执行systemextensionctl reset并重新启动myAgent.app以使其能够永久生存。

我做了几次测试:

works.

  • chmod 644 com.myCom.myAgent.plist
  1. 不自动启动加载myAgent,但在安装完成-> it myAgent时自己手动加载,然后重新构建包->失败
  2. 在安全中不允许myDriverKit,然后在重新启动-> works
  3. 之后允许在安装后脚本instead->fail

中使用/usr/bin/sudo -u $USER /bin/launchctl load -S Aqua /Library/LaunchAgents/com.kensington.trackballworks.plist

似乎myAgent.app通过安装脚本启动与自己启动不同。可能的根本原因是什么?它可能在后置脚本中还是在myAgent.app激活过程中?如有任何答复,敬请见谅。

EN

回答 1

Stack Overflow用户

发布于 2020-09-24 09:52:44

我会自己回答这个问题。造成这种奇怪情况的根本原因是用户在安装程序处理kextcache时激活(单击安全中的“允许”按钮)。

如果我们在.pkg中指定一个kext复制到/Library/ kextcache /,安装程序将在安装过程中自动执行kextcache。这就是为什么安装程序需要这么长的时间来完成安装。

如果用户在kextcache处理过程中激活了一个dext,那么dext似乎可以工作,但是在重新启动之后,dext不会产生任何效果,即使它在systemextensionctl list发布时显示了“激活已启用”。

在我看来,这应该是macOS中的一个bug。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63785068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档