IOS越狱开发大概搞了有半年,写了一个小的一卡多号的应用,大概路子是将一个手机号伪装成另外一个号,通过插件读取这个伪装的号码与其他用户交互的短信和通话,写入自己应用的数据库,同是将系统库中的短信和通话记录删除,看起来就好像一个手机号 有了两个号码一样。不过这里不涉及这款应用的细节,只是简单介绍一下整个的开发过程,希望能对做越狱开发的同学有一点点帮助。
1 软件准备
机器:lion 10.7.5
Xcode:4.6
MacPort:MacPorts-2.1.2-10.7-Lion.pkg
iOSOpenDev:iOSOpenDev-1.5.pkg
没有开发者账号的自己申请一个吧 一年99刀也不贵 要不没法真机
2 开发环境搭建
2.1 theos安装
参考http://iphonedevwiki.net/index.php/Theos/Getting_Started
2.2 MacPort安装
2.3 DPKG安装
sudo port -f install dpkg
可能会遇到问题,根据出错提示安装必要的包即可。
安装完成后,在终端应该是能识别dpkg-deb命令。这个后续应用和插件打包会用。
2.4 iOSOpenDev安装
注意在安装之前要先指定xcode版本和路径。
https://github.com/kokoabim/iOSOpenDev/wiki/Targeting-Specific-Xcode-&-SDK-Versions
下载:http://iosopendev.com/download/
wiki :https://github.com/kokoabim/iOSOpenDev/wiki/_pages
遇到安装失败的问题,可以看log然后相应去解决:
https://github.com/kokoabim/iOSOpenDev/wiki/Troubleshoot
安装成功后/opt下有对应文件夹,并且在xcode中会有iOSOpendev工程选项。
3 开发流程
3.1 Class-dump安装
class-dump用来导出私有的API.
私有API路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/PrivateFrameworks
使用方法:class-dump –H 私有API路径 –o 导出到的路径
下载:https://github.com/nygard/class-dump
3.2 建立工程
参考下面的帖子(类似的帖子比较多)
http://www.cnblogs.com/xiongwj0910/archive/2012/09/03/2668362.html
通过class-dump导出的私有API中会有一些编译错误,修改就可以。添加头文件到工程中后,要相应添加私有的库到工程。
3.3 工程编译
编译方法:product-->Bulid for-->profiling,每次编译前最好clean。
参考3.2中的帖子。
3.4 插件的真机运行
用iFunBox将生成的deb包拷贝到手机中直接安装,然后重启springboard。
3.5 插件+应用程序的打包和运行
1)首先将生成的插件deb包解包 dpke-deb –x xxx.deb 解压后的路径
在解压后的路径中能看到/Library/MobileSubstrate/DynamicLibraries下面有两个文件xxx.dylib 和xxx.plist,这就是注入系统启动过程的动态程序。
2)然后构建应用的打包目录。可参考
http://bbs.weiphone.com/read-htm-tid-669283.html
在打包目录下创建/Library/MobileSubstrate/DynamicLibraries,并修改目录权限,同时将xxx.dylib和xxx.plist拷贝到该目录下。
注意保持插件的名字和应用程序的名字一致。
3)打包 dpkg-deb –b
4)真机运行 将生成的deb包拷贝的真机安装运行。
安装完应用程序如果需要向cydia写命令,则一定要注意命令格式,cydia在容错方面做的较差,命令格式不对容易引起cydia崩溃,导致无法进入cydia,只好重刷机器。
后记:这个文档编写时间是2013年4月3日 中间的很多链接可能都不能用了