iOS | 越狱环境搭建 | Objective-C
1.准备
调试设备:
1> 建议至少iPhone5s(因为从5s开始支持arm64架构)
2> 或者至少是iPad Air、iPad mini2等支持arm64架构的设备系统版本:
1> 版本不能太高,最好保证能够完美越狱
2> 戳这里查看手机是否可以越狱
选择系统版本 -> 选择设备 -> 查看是否支持越狱(最好支持完美越狱)
2.iOS Jailbreak(iOS越狱)
利用iOS系统的漏洞,获取iOS系统的最高权限(Root),解开之前的各种限制(合法行为)
优点:
打造个性化、与众不同的iPhone
1> 自由安装各种实用的插件、主题、APP
2> 修改系统APP的一些默认行为自由安装非AppSore来源的APP
1> “付费APP”秒变“免费APP”
2> 未越狱iPhone安装APP的途径: AppStore、真机调试、通过证书打包签名ipa安装灵活管理文件系统,让iPhone可以像U盘那样灵活
- 给开发者提供了逆向工程的环境
缺点:
- 不予保修
- 费电,越狱后的iOS系统会常驻一些进程,耗电速度约提升10%~20%
- 在新的iOS固件版本出来的时候,不能及时地进行更新
1> 每个新版本的固件,都会修复上一个版本的越狱漏洞,使越狱失效
2> 如果需要保持越狱状态,要等待新的越狱程序发布时,才能升级相应的固件版本 - 不再受iOS系统默认的安全保护,容易被恶意软件攻击,个人隐私有被窃取的风险
- 如果安装了不稳定的插件,容易让系统变得不稳定、变慢,甚至出现“白苹果”等问题
完美越狱:
- 越狱后的iPhone可以正常关机和重启
不完美越狱:
- iPhone一旦关机后再开机时,屏幕就会一直停留在启动画面,也就是“白苹果”状态
- 或者能正常开机,但已经安装的破解软件都无法正常使用,需要将设备与PC连接后,使用软件进行引导才能使用
- 一般说来,在苹果发布新的iOS固件后,针对该固件的不完美越狱会先发布,随后完美越狱才可能发布
- 一般较新的系统版本,均为不完美越狱
越狱方法推荐:
PP助手:http://jailbreak.25pp.com/
如何判断是否越狱成功?
- 桌面是否有Cydia
- 工具判断(eg. PP助手)
3.Cydia
1> 越狱后的“App Store”
可以在Cydia中安装各种第三方的软件(插件、补丁、APP)
2> 作者
Jay Freeman (saurik)
Cydia安装软件的步骤:
1>添加软件源(不同软件的软件源可能不同)
2>进入软件源找到对应的软件,开始安装
SpringBoard
- SpringBoard就是iOS的桌面
- 有时候通过Cydia安装完插件后,可能会出现以下界面
4.必备软件安装
Apple File Conduit “2”
- Apple File Conduit “2”补丁的作用:
1> 可以访问整个iOS设备的文件系统
2> 类似的补丁还有:afc2、afc2add - 软件源:
1> http://apt.saurik.com
2> http://apt.25pp.com
AppSync Unified
- AppSync Unified补丁的作用:
1> 可以绕过系统验证,随意安装、运行破解的ipa安装包 - 软件源:
1> http://apt.25pp.com
iFile
- iFile的作用:
1> 可以在iPhone上自由访问iOS文件系统
2> 类似的还有Filza File Manager、File Browser - 软件源:
1> http://apt.thebigboss.org/repofiles/cydia
PP助手
- PP助手的作用:
1> 可以利用PP助手自由安装海量APP - 软件源:
1> http://apt.25pp.com/
Mac必备:
iFunBox
1> 管理文件系统PP助手
1> 自由安装海量APP
2> 卸载APP
3> 备份APP为ipa安装包(iOS9开始,不再支持备份APP)
建议安装顺序:
安装包
- 通常情况下
1> 通过Cydia安装的安装包是deb格式的(结合软件包管理工具apt)
2> 通过PP助手安装的安装包是ipa格式的 - 如果通过Cydia源安装deb失败
1> 可以先从网上下载deb格式的安装包
2> 然后打开 iFunBox -> 文件系统,将deb安装包放到/var/root/Media/Cydia/AutoInstall
3> 重启手机,Cydia就会自动安装deb - 比如,下图是iFile 2.2.0-1所需的deb安装包
点击下载iFile安装包
5.如何在iOS代码中判断设备是否越狱?
1> 针对不同iOS版本的判断方法可能不一样
2> 最简单的一种方法:判断手机上是否安装了Cydia1
[[NSFileManager defaultManager] fileExistsAtPath:@"/Applications/Cydia.app"];
当然,不同系统版本判断方法可能不太一样,仅用这个方法判断是不严谨的,如果需要更完善的方法的同学们可自行谷歌