1

在过去(10.11 到 10.14),要调试系统首选项窗格,您可以制作系统首选项的副本并对其进行自签名,然后将此副本用作调试目标。此方法绕过了系统完整性保护限制。

使用 Catalina,所有第三方 prefPanes 现在都加载到名为“legacyLoader”的系统进程中。它位于:

/System/Library/Frameworks/PreferencePanes.framework/Versions/A/XPCServices/legacyLoader.xpc/Contents/MacOS/legacyLoader

不再可能对 legacyLoader 的副本进行自签名。尽管您显然仍然可以制作副本并对其进行自签名,但无法强制系统偏好设置使用修改后的自签名副本,因为它始终会启动内置的、Apple 签名的 legacyLoader。

我可以在 10.15 上看到调试 prefPane 的唯一方法是禁用 SIP 系统范围。不是一个很好的解决方案。

有谁知道在不禁用 SIP 的情况下在 legacyLoader 中调试某些东西的方法?

我曾尝试创建自己的主机应用程序以在开发过程中加载 prefPane,但我遇到了一些仅在系统偏好设置 (legacyLoader) 中运行时出现的错误,而在我自己的主机中运行时不会出现。

我真的需要一种在真实环境中调试它们的方法,而不会带来禁用 SIP 的固有安全风险。

4

0 回答 0