通过 LaunchAgent 运行具有输入监控访问权限的 MacOS LaunchDaemon

问题描述

我正在 MacOS 中构建 launchdaemon(由于需要以 root 身份运行),但是我遇到了一个障碍,其中我需要调用的 Apple SDK 之一要求用户响应提示以访问输入监控。

正如 this post 所理解的那样,这对于守护进程是不可能的,因为它不在图形会话中运行(如果我的术语在这里不合适,请原谅我)。

我查看了其他一些开源程序,我看到为了解决这个问题,他们将守护进程作为守护进程运行。

代理的存在纯粹是为了触发提示,然后守护进程在后台等待,检查是否授予权限,然后在获得继续所需的访问权限后接管。

问题 1

这是否有效,因为代理和守护程序的包标识符是相同的,所以如果代理获得输入监控权限,那么守护程序也会获得输入监控权限吗?

我想我记得读过,虽然可以在代理和守护程序之间使用相同的包标识符(因为我相信它们在不同的启动进程中运行),但不推荐这样做。

问题 2

代理是否能够触发输入监控权限提示,因为它在登录后运行,因此以用户身份在这个所谓的“图形会话”中运行?

问题 3

如果我对方法的理解是正确的,那么这是一种足够强大的方法来让守护程序访问 TCC 提示后面的 API 吗?或者,还有更好的方法?或者,这是人们根本不应该做的事情吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...