首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Mac OS上的应用内内核扩展卸载/加载

Mac OS上的应用内内核扩展卸载/加载
EN

Stack Overflow用户
提问于 2018-06-02 21:35:13
回答 1查看 324关注 0票数 3

在Mac OS上,我需要在Qt Desktop应用程序开始时卸载一堆驱动程序(kext)。我尝试使用QProcess,但kextunload需要具有管理员权限。有人知道解决方法吗?或者如何使用sudo启动QProcess?我需要这对最终用户来说很容易:只需在提示时输入管理员密码,应用程序就会完成其余的工作。

问题是苹果在设备上加载他们自己的驱动程序,我想使用特定的驱动程序(带有FT2Dxx驱动程序的FTDI232H)。

EN

回答 1

Stack Overflow用户

发布于 2018-06-04 05:14:48

我发现了一些似乎对我有用的东西:

代码语言:javascript
复制
QString password = "yourRootPassword"; //could be asked with QInputDialog::getText(...)
QString cmd = QString("sudo -S kextunload -b %1 > /dev/null").arg(driverName);
FILE *pipe = popen(cmd.toStdString().c_str(), "w");
if(pipe != nullptr)
{
    fprintf(pipe, "%s\n", password.toStdString().c_str());
    if (ferror(pipe))
    {
        qDebug() << "Failed to write to pipe";
    }
    else
    {
        qDebug() << "Written to pipe";
    }
}
else
{
   qDebug() << "Failed to open pipe";
}
qDebug() << "Pipe returned : " << pclose(pipe);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50657464

复制
相关文章

相似问题

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