因为SpringBoard可以突破沙盒执行任何app,查看SpringBoard的签名拥有很多权限,把自己的mach-o文件签名成SpringBoard的签名,就可以让自己的mach-o文件突破沙盒访问其他app
使用ldid导出mach-o文件的签名文件.entitlements文件
把xcode 的product 里的app,右键显示包内容,找到里面的mach-o文件.然后用终端打开当前目录,执行下列命令一个>大于号是覆盖,把ldid -e的权限覆盖到右边文件里, 2个大于号>是追加.这里用覆盖一个>
ldid -e 文件名 > 文件名.entitlements
例如我要改的文件叫TdwAppTool
要执行的指令是:
ldid -e TdwAppTool > TdwAppTool.entitlements
会发现目录里多了一个.entitlements文件这个文件格式是xml格式,可以吧扩展名改成xml或者plist,用xcode打开如下:
要把这个文件加上修改所有app的权限,可以把springboard的导出来
导出SpringBoard的签名文件
用越狱手机连接mac,然后用ifunbox打开目录Device\System Library\CoreServices\SpringBoard.app\SpringBoard
导出springboard的权限文件
ldid -e SpringBoard > SpringBoard.entitlements
注意看SpringBoard的签名文件权限很多,进度条很小
把SpringBoard的签名文件的权限签名给自己的app中
-S是强制替换被覆盖文件的权限
ldid -S签名文件名 被覆盖的文件名
注意这个指令大写的S和文件之间没有空格,签名文件和后面的被修改的文件有空格
ldid -SSpringBoard.entitlements TdwAppTool
验证签名是否正确,重新查看TdwAppTool的签名文件
ldid -e TdwAppTool > TdwAppTool.entitlements