蘋果系統(tǒng)的小伙伴在使用的時(shí)候,想要設(shè)置多系統(tǒng),但是自己不知道怎么進(jìn)行設(shè)置。因此就讓小編給大家詳細(xì)的講講,想知道的可以一起來看看吧。
iPhone多系統(tǒng)設(shè)置方式介紹
關(guān)于iOS Boot Chains:
BootROM - LLB - iBoot - Kernel(普通啟動(dòng))
在普通啟動(dòng)中,系統(tǒng)會(huì)層層驗(yàn)證,只要有一環(huán)出現(xiàn)問題,設(shè)備的啟動(dòng)就會(huì)中斷
在老版本的iOS系統(tǒng),可以通過nvram boot-args=xxxxxxxxx的方法設(shè)置boot-args,但很顯然,在新的iOS系統(tǒng)上這是無法實(shí)現(xiàn)的。
BootROM - iBSS - iBEC - Kernel(DFU啟動(dòng))
DFU啟動(dòng)在設(shè)備準(zhǔn)備恢復(fù)系統(tǒng)時(shí)會(huì)用到,同樣層層驗(yàn)證,但是,iBEC中的boot-args可以直接進(jìn)行修改,原boot-args——“rd=md0………..”可在回復(fù)設(shè)備時(shí)啟動(dòng)Ramdisk進(jìn)行設(shè)備恢復(fù)。
修改iBEC實(shí)現(xiàn)Tethered Verbose Boot。關(guān)于Ph0en1x:
我在我之前放出的Ph0en1x_S 雙系統(tǒng)自制固件中,成功實(shí)現(xiàn)了iOS雙系統(tǒng)的完美切換,而實(shí)現(xiàn)完美切換,重點(diǎn)就在于Boot Chains的交換,即如何從iOS 7的啟動(dòng)鏈切換到iOS X的啟動(dòng)鏈。而wincom所開發(fā)的kloader,正好能夠滿足這第一步的需求,如果我們使用普通啟動(dòng)Boot-Chains的話,就能夠通過kloader加載pwned LLB,pwned LLB加載pwned iBoot,在pwned iBoot中修改boot path,進(jìn)行boot-args重定向,就能夠?qū)崿F(xiàn)對(duì)另一內(nèi)核的引導(dǎo)并在新的分區(qū)啟動(dòng)系統(tǒng)。
普通啟動(dòng)Boot Chains在設(shè)備恢復(fù)固件時(shí)被flash到設(shè)備中,為了把我們所需的新的一組啟動(dòng)鏈寫入設(shè)備,我們只需要修改固件中的manifest(all_flash),加入我們所需的啟動(dòng)鏈即可,恢復(fù)該固件,即可完成啟動(dòng)鏈寫入。
那么問題又來了,LLB如何找到它所需要引導(dǎo)的下一級(jí)鏈呢?發(fā)現(xiàn),在LLB,iBoot中,利用標(biāo)識(shí)尋找下一級(jí)啟動(dòng)元素,既然如此,修改pwned iboot的標(biāo)識(shí),同時(shí)patch LLB,使它尋找對(duì)應(yīng)的標(biāo)識(shí),即可完成對(duì)應(yīng)啟動(dòng)鏈的引導(dǎo)。
so,我做出了以下幾個(gè)patch:
1、LLB,iBoot幾處關(guān)于check的patch
2、啟動(dòng)元素的尋找
3、iBoot中Boot-args重定向,并修改為rd=disk0s1s3 -v amfi=0xff cs_enforcement_disabled=1
4、iBoot中Boot Path指向iOS 6 kernelcache的存放地址
kloader LLB, it works!
ah其實(shí)我是想放出iPhone 5的雙系統(tǒng)的,結(jié)果JonathanSeals一下放出了CoolBooter,支持了一票設(shè)備,抽空對(duì)它的實(shí)現(xiàn)方法做了點(diǎn)分析。
首先CoolBooter并不需要flash,這讓它變得格外方便,不許要制作一個(gè)特別的固件來寫入啟動(dòng)鏈
原理同樣是利用kloader,but!CoolBooter使用了winocm的multi_kloader來進(jìn)行多個(gè)映像的加載
CoolBooter要求越獄環(huán)境,它直接在固件寫入后,將DFU啟動(dòng)鏈放置于新分區(qū)中,準(zhǔn)備進(jìn)行啟動(dòng)。等會(huì)?!為什么DFU鏈可以用來正常啟動(dòng)?這就要牽扯回iBEC的Boot-args設(shè)置了,原設(shè)置啟動(dòng)Ramdisk,既然如此,直接修改為在新分區(qū)啟動(dòng)即可進(jìn)行引導(dǎo)。