我正在尝试在SAP's Privileges.app中进行一些修改。不幸的是,他们的(可以理解的)支持政策是
这个项目是“原样”,没有任何支持,没有任何改变。欢迎您做出改进,但我们没有任何问题或支持。
不幸的是,这个应用程序使用了我在专业经验中从未见过的两个构造,一个XPC服务+助手(启动守护进程?)还有一个DockTile插件。当从Xcode启动时,我很难从根本上让这个应用程序正常工作--它启动了,但似乎在(可能?)之间存在一些问题。沙箱,签名,也许还有权利?当然,我已经更新了签名以使用我自己的团队,所有的东西都会正确编译/链接/启动,但是当XPC服务试图安装助手工具时,它会失败
2022-06-29 17:03:56.284544-0500 PrivilegesXPC[13079:128535] [logging-persist] cannot open file at line 45530 of [9ff244ce07]
2022-06-29 17:03:56.284570-0500 PrivilegesXPC[13079:128535] [logging-persist] os_unix.c:45530: (0) open(/var/db/DetachedSignatures) - Undefined error: 0
2022-06-29 17:04:21.060214-0500 PrivilegesXPC[13079:128537] SAPCorp: ERROR! Failed to connect to helper tool: NSCocoaErrorDomain / 4097
2022-06-29 17:04:31.471555-0500 Privileges[13064:127420] SAPCorp: ERROR! Error Domain=NSPOSIXErrorDomain Code=25 "Inappropriate ioctl for device"
2022-06-29 17:04:45.717751-0500 Privileges[13064:129162] SAPCorp: ERROR! Installation of the helper tool failed: Error Domain=CFErrorDomainLaunchd Code=4 "(null)"据我所知,最后两个错误是从失败抛出的
success = SMJobBless(
kSMDomainSystemLaunchd,
CFSTR("corp.sap.privileges.helper"),
self->_authRef,
&error
);但我没能确定这是为什么失败的。不幸的是,在Inappropriate ioctl for device周围搜索错误并没有什么成果。
如果有谁在处理应用程序方面有经验的话,我会非常感激他们使用这些更深奥的移动部件来分享一些东西。如果有任何方法来调试运行在DockTile插件中的代码--据我所知,它运行在SystemUIServer中,那么就可以得到额外的分数,但是我不能从Xcode中附加到它(即使是根)。
发布于 2022-07-13 15:24:52
我想我已经解决了这个问题。这是我遇到的几个路障。
SMJobBless对代码签名有一些非常特殊的期望--在某些论坛帖子中可以找到对此的引用,还有一个样本工程,它也是用实用程序脚本引用的--它不运行在现代macOS上,因为它是为Python2编写的--它不再默认安装,也很难找到。但是,在痛苦地将Python2语言转换为Python3之后,您会发现这并不是唯一改变的东西,许多工具(codesign和otool)在ARM64上的输出都不一样,这时您最终会遇到一个善良的灵魂改变了SMJobBless.py .只是为了发现这个项目实际上并不需要?!不确定它是否包含在XPC中,而不是应用程序中,但不管是哪种方式,似乎都不需要它。launchd状态。我不清楚launchctl的咒语是否会清除这一点,可能是调用launchctl kickstart -k <foo>之类的吗?最后,我重新启动了,这似乎是个好办法。Developer ID Application,它恰好与从GitHub回购中提取的.xcodeproj中编码的内容相匹配。这意味着您不能启用自动管理签名,因为您不会得到这种类型的证书(尽可能接近我可以告诉-请纠正我如果我错了)。SMAuthorizedClients和SMPrivilegedExecutables (查找7R5ZEU67FQ和用团队ID替换)。我想这基本上就明白了。希望这能帮到别人
https://stackoverflow.com/questions/72808399
复制相似问题