SMJobBless是苹果官方提供的用于“MacOS app获取root权限”的Demo,本文主要记录配置过程中踩过的坑......
官方Demo: developer.apple.com/library/arc…
paython脚本:SMJobBlessUtil.py 在官方Demo中获取
具体步骤:
1. 在工程中新键Target --> Command Line Tool
2. 给添加Command Line tool 添加 SMJBlessTestHeloper-Info.plist 文件
绿色框中的item 可以不用添加,通过官方 Demo 中的paython脚本文件生成
3. 主工程添加依赖的Security.framework 和 ServiceManagement.framework
4. 给主工程添加Copy Files
5. 给添加Command Line tool 添加 SMJBlessTestHeloper-Launchd.plist 文件
黄色框中必须这么配置,key 的名称必须是:Label,不能是 Bundle identifier 或者其他
6. Xcode 13 以后的项目需设置 plist 文件路径
设置 tool 的plist
设置主工程的plist
7. 使用官方 Demo 中的 paython 脚本更新主工程和tool 中的plist文件
8. 设置Command Line tool 的Other Linker Flags
9. 更新完成后build项目,使用 SMJobBlessUtil.py 脚本检查是否有错误
如果有报错,按照提示检查并修改
控制台输出:包含uid=0(root)表明获取root成功