iOS 越狱之后,使用 Xcode 编写程序在设备上运行是 mobile 用户,没有 root 权限,所以有些私有函数还是没法使用,比如 MGCopyAnswer 获取 UDID、序列号等等信息都返回空,必须使用 root 运行才行。
iOS 的应用安装目录有两个,一个是 /private/var/mobile/Containers/Bundle/Application,一个是 /Applications,使用 Xcode 安装或者在 Appstore 上下载安装的应用都是前者,后者一般是系统自带的应用。如果想让应用以 root 身份运行,可以按以下的步骤来操作1.在你应用的 main 函数添加代码
setuid(0);
setgid(0);
2.将生成的应用上传到 /Applications/yourApp.app
3.这时桌面上是没有图标的,需要登录 ssh 运行 uicache 命令就可以显示图标了,这个命令比有管用,经常用于修复没有图标的问题。
4.然后切换到应用的目录,运行 chmod u+s yourApp
5.再执行 chown root yourApp,更改所有者为 root
这时在手机上点击你的应用,通过 ps aux 命令查看进程运行的用户就是 root,而不是 mobile。
以上只是在 iOS 8.2 测试通过。