苹果ios多系统教程来啦!大家都知道一台iPhone只能装一个系统,但有大神实现了多系统,那么如何实现ios多系统呢?下文小乐哥给大家介绍一下!
苹果ios多系统教程:
关于iOS Boot Chains:
BootROM - LLB - iBoot - Kernel(普通启动)
在普通启动中,系统会层层验证,只要有一环出现问题,设备的启动就会中断
在老版本的iOS系统,可以通过nvram boot-args=xxxxxxxxx的方法设置boot-args,但很显然,在新的iOS系统上这是无法实现的。
BootROM - iBSS - iBEC - Kernel(DFU启动)
DFU启动在设备准备恢复系统时会用到,同样层层验证,但是,iBEC中的boot-args可以直接进行修改,原boot-args——“rd=md0………..”可在回复设备时启动Ramdisk进行设备恢复。
修改iBEC实现Tethered Verbose Boot。关于Ph0en1x:
我在我之前放出的Ph0en1x_S 双系统自制固件中,成功实现了iOS双系统的完美切换,而实现完美切换,重点就在于Boot Chains的交换,即如何从iOS 7的启动链切换到iOS X的启动链。而wincom所开发的kloader,正好能够满足这第一步的需求,如果我们使用普通启动Boot-Chains的话,就能够通过kloader加载pwned LLB,pwned LLB加载pwned iBoot,在pwned iBoot中修改boot path,进行boot-args重定向,就能够实现对另一内核的引导并在新的分区启动系统。
普通启动Boot Chains在设备恢复固件时被flash到设备中,为了把我们所需的新的一组启动链写入设备,我们只需要修改固件中的manifest(all_flash),加入我们所需的启动链即可,恢复该固件,即可完成启动链写入。
那么问题又来了,LLB如何找到它所需要引导的下一级链呢?发现,在LLB,iBoot中,利用标识寻找下一级启动元素,既然如此,修改pwned iboot的标识,同时patch LLB,使它寻找对应的标识,即可完成对应启动链的引导。
小编推荐阅读