破解的iphone上, 如何编写具有root权限的程序
正常途径下, 我们编写的程序发布在App store上, 使用官方规定的SDK. 但有些时候, 正常途径实现不了的功能, 可以在破解的iphone上面实现. 以cydia上文件管理软件iFile为例, iFile可以修改系统的任何文件, 这需要iFile具有root权限, 在iphone没有破解的情况之下, 是无论如何都实现不了的.
对于iphone系统, 有两个目录会安装应用程序
1. /Application
2. /var/mobile/Applications
/var/mobile/Applications下的应用程序会有很多限制, 似乎系统会认为此目录下的程序一定会运行在沙盒中, 不管怎么设置权限也无用. /Application目录下的程序限制会小一些, 要取得root权限, 第一步就是要将程序安装在/Application目录下.
幸好有cydia. 系统破解之后, 绝大多数都会安装上cydia. 自己搭建cydia源, 第三方软件也可以通过cydia来发布. 搭建cydia源中有一步是将编译出的程序打包成deb. 打包的时候, 可以指定最终安装后的目录结构. 至于如何搭建cydia源, google一下会有详细的教程, 这里不多说, 下面已假设可以将程序安装在/Application目录下.
先简单复习一下unix的权限管理, iOS系统其实是个小的unix.
unix下面每个文件都有自己所属, 和访问权限.
比如用户complex_ok是组mobile的成员, 他登录的时候创建了一个文件A, 默认下, A就属于用户complex_ok, 组为mobile.
另外文件A还可以指定自己的访问权限, 分成用户, 组, 其它人三个级别, 三个级别都可以指定自身的 是否可读, 是否可写, 是否可执行.