让 Mac 信任应用程序(登录窗口上的协同作用)

2024-02-22

我试图在我的 mac 启动时加载协同作用,以便我可以使用鼠标/键盘登录。我按照这些说明进行操作

http://sourceforge.net/p/synergy2/discussion/199580/thread/76cf630a http://sourceforge.net/p/synergy2/discussion/199580/thread/76cf630a

我的 Synology 安装在哪里/Applications/Synergy.app/

plist 文件看起来像这样

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>KeepAlive</key> <true/>
    <key>Label</key> <string>net.sourceforge.synergy2.loginwindow</string>
    <key>LimitLoadToSessionType</key> <string>LoginWindow</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Applications/Synergy.app/Contents/MacOS/synergyc</string>
        <string>-f</string>
        <string>-1</string>
        <string>--name</string>
        <string>mini</string>
        <string>--debug</string>
        <string>WARNING</string>
        <string>192.168.1.200</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

但我收到这些错误/var/log/system.log

synergyc[220]: 3891612: (connect_and_check) Untrusted apps are not allowed to connect to or launch Window Server before login.

这些文件都拥有正确的所有权

-rwxr-xr-x  1 root  wheel   893040 May  2 21:07 Synergy
-rwxr-xr-x  1 root  wheel  3999988 May  2 21:07 synergyc
-rwxr-xr-x  1 root  wheel  4269168 May  2 21:07 synergys

我已经解除隔离

xattr -d com.apple.quarantine /Applications/Synergy.app/Contents/MacOS/*

我不知道还能做什么?为什么 OSX 这么难?我还能尝试什么?

附注我尝试了钩子方法,但也不起作用。这种方法看起来更干净。


摘自 Apple 的开发者技术说明守护进程和代理 https://developer.apple.com/library/mac/technotes/tn2083/_index.html#//apple_ref/doc/uid/DTS10003794-CH1-SUBSECTION14:

如果在 Mac OS X 10.5 及更高版本中,您看到类似清单 9 中所示的消息,您可能会错误地认为解决方案是让系统“信任”您的应用程序(可能是通过代码签名)。

清单 9:登录前信任消息

Untrusted apps are not allowed to connect to or launch Window Server before login.

然而,事实并非如此。该消息实际上告诉您您正在尝试从错误的上下文连接到窗口服务器。如果您在用户登录之前尝试从预登录上下文外部连接到全局窗口服务器服务,您会看到此消息;通常这意味着您正在尝试从守护程序使用窗口服务器。

您不应该尝试通过说服窗口服务器信任您的程序来解决此问题;这样做只会进一步导致其他问题。例如,如果您确实从守护程序成功连接到窗口服务器,您仍然需要处理前面描述的窗口服务器生命周期问题。

相反,您应该通过更改代码以在正确的上下文中运行来解决此问题。如果您需要在预登录上下文中连接到窗口服务器,请创建预登录 launchd 代理。有关此示例,请参阅示例代码“PreLoginAgents” https://developer.apple.com/samplecode/PreLoginAgents/index.html.

在我看来,执行此操作的“正确”方法将涉及对协同本身进行一些重写(请参阅上面的示例代码链接)。有一个关于此的协同错误报告 http://synergy-foss.org/spit/issues/details/549/,三年前提交,但没有采取任何实际行动...我认为如果您希望修复它,就由您自己决定。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让 Mac 信任应用程序(登录窗口上的协同作用) 的相关文章

随机推荐