蘋果ios多系統(tǒng)教程來啦!大家都知道一臺iPhone只能裝一個系統(tǒng),但有大神實現了多系統(tǒng),那么如何實現ios多系統(tǒng)呢?下文小樂哥給大家介紹一下!
蘋果ios多系統(tǒng)教程:
關于iOS Boot Chains:
BootROM - LLB - iBoot - Kernel(普通啟動)
在普通啟動中,系統(tǒng)會層層驗證,只要有一環(huán)出現問題,設備的啟動就會中斷
在老版本的iOS系統(tǒng),可以通過nvram boot-args=xxxxxxxxx的方法設置boot-args,但很顯然,在新的iOS系統(tǒng)上這是無法實現的。
BootROM - iBSS - iBEC - Kernel(DFU啟動)
DFU啟動在設備準備恢復系統(tǒng)時會用到,同樣層層驗證,但是,iBEC中的boot-args可以直接進行修改,原boot-args——“rd=md0………..”可在回復設備時啟動Ramdisk進行設備恢復。
修改iBEC實現Tethered Verbose Boot。關于Ph0en1x:
我在我之前放出的Ph0en1x_S 雙系統(tǒng)自制固件中,成功實現了iOS雙系統(tǒng)的完美切換,而實現完美切換,重點就在于Boot Chains的交換,即如何從iOS 7的啟動鏈切換到iOS X的啟動鏈。而wincom所開發(fā)的kloader,正好能夠滿足這第一步的需求,如果我們使用普通啟動Boot-Chains的話,就能夠通過kloader加載pwned LLB,pwned LLB加載pwned iBoot,在pwned iBoot中修改boot path,進行boot-args重定向,就能夠實現對另一內核的引導并在新的分區(qū)啟動系統(tǒng)。
普通啟動Boot Chains在設備恢復固件時被flash到設備中,為了把我們所需的新的一組啟動鏈寫入設備,我們只需要修改固件中的manifest(all_flash),加入我們所需的啟動鏈即可,恢復該固件,即可完成啟動鏈寫入。
那么問題又來了,LLB如何找到它所需要引導的下一級鏈呢?發(fā)現,在LLB,iBoot中,利用標識尋找下一級啟動元素,既然如此,修改pwned iboot的標識,同時patch LLB,使它尋找對應的標識,即可完成對應啟動鏈的引導。
小編推薦閱讀