在這里我說一說35內核的雙系統,32系統也可參照。
沒刷雙系統的可以照做,刷了雙系統的可以學著改包修改雙系統包的那部分,不感興趣的可以跳過由于安智問題,下載的附件可能沒有后綴名,請自己添加,zip
小白跳過重口味部分按照這個辦法:
破解粉屏>分區>刷入兩個recovery>刷第一系統>手動切換到第二系統recovery下>刷第二系統>完畢
前言:在日漸增多的rom面前,尤其今晚rom大賽開始,你是不是感覺手足無措呢,想刷這個,又想刷那個,雙系統就可以滿足你的愿望.
我建議第一系統用作刷機測試,第二系統就作日常使用.
還有優點就自己去試了,誰用誰知道啊
1.首先你必須破解粉屏,這是必須的,因為雙系統分區和刷系統時有可能導致無法開機,出現卡第一屏,或者藍屏。
(在這里說一下,如果粉屏下沒有boot.img或者recovery.img,開機或者進入recovery時就會藍屏,藍屏不可怕)
只要粉屏能夠掛載,就無壓力了,破解粉屏以防萬一。
破解粉屏文件,recovery下直接刷入:
update-B518-bootloader.zip 訪問密碼 5635
2.破解了粉屏就開始刷分區包了,這里提供兩種分區大小大家自己選擇,對此分區容量不滿意的同學參照:u8800自定義雙系統各分區大小
A方案:第一系統分區大小200M,第一DATA分區大小1050M,內置卡分區大小500M,第二系統分區大小200M,第二DATA分區大小1055M
twosys-partition-a.zip 訪問密碼 a094
B方案:第一系統分區大小220M,第一DATA分區大小1180M,內置卡分區大小200M,第二系統分區大小220M,第二DATA分區大小1185M
twosys-partition-b.zip 訪問密碼 dc96
恢復單系統:
offical-partition.zip 訪問密碼 5672
分區包要刷兩遍,以防分區不成功,刷了第一遍,選擇Advance(高級)→Reboot Recovery(重啟到recovery),再刷一次。
刷完分區包就不要想著開機了,因為原來的system已經被格式化了,開機就要卡第一屏,請老老實實的待在recovery 界面。
屏分區包顧名思義,就是要重新分區。這個分區類似硬盤分區,把手機上的空間多分兩個區出來。
多出來的兩個區名字叫mmcblk0p15和mmcblk0p16,將作為第二系統的system區和data區。
分了兩個區出來,這部分容量是從內置2G空間分出來的,自然2G內置空間會減少。
3.關于雙系統的基本原理
要點1.內核(準確的說應該是boot.img),正常開機時,手機會讀取粉屏下的image/boot.img,然后boot.img啟動,boot.img內包含了一個叫init.rc的文件(其實是個文本文件,可用記事本打開,但要用專用工具EmEditor修改)
最關鍵的內容就是把哪兩個分區當做system和data
普通的系統讀取的是mmcblk0p12和mmcblk0p13分區當做system和data
我們已經分出mmcblk0p15和mmcblk0p16分區當做system和data
由上面的啟動原理知道,關鍵在于init.rc這個文件了,只許將里面的mmcblk0p12和mmcblk0p13分別改成mmcblk0p15和mmcblk0p16就好了。
怎么得到init.rc并且修改它呢?
當然是解包boot.img
以下是重口味,小白跳過
下載解包工具:https://yunpan.cn/Ock9YFTn2tBwQ9? 訪問密碼 2839
修改工具EmEditor: https://yunpan.cn/Ock9YrPQg4WJX6? 訪問密碼 3319
加壓到任意地方
請關閉殺毒軟件
看到如下界面
選擇2
把要修改的boot.img放到boot文件夾里面
然后繼續解包,直到這一步
好了,init.rc就在boot/initrd
打開EmEditor
然后用EmEditor打開init.rc
查找替換
把mmcblk0p12改成mmcblk0p15,mmcblk0p13改成mmcblk0p16
點程序的搜索按鈕
下拉菜單中選擇替換
mmcblk0p12改成mmcblk0p15
mmcblk0p13改成mmcblk0p16
當然你也可以一行一行的看,手動慢慢改
修改前
修改后
然后保存,繼續下一步
一直到最后打包完畢,修改就完成了
把boot.img復制出來
替換刷機包的文件,下面會詳細說道
建議做完后清除boot文件夾中除了bootimg.exe以外的所有文件,保持良好習慣
要點2.刷入指定分區,這個就通過刷機腳本(updater-script)來實現,位置是刷機包\META-INF\com\google\android\updater-script.
刷機腳本就不詳解了,直接提供.
如果你要做雙系統包,替換原刷機包的就可以了。這里提供兩種.
#一種是判斷式的,也是birdyi常采用的。
判斷式(內有updater-script和checksys兩個文件):https://yunpan.cn/Ock9YRaWsduLz4? 訪問密碼 9d3b
下載后把updater-script放到\META-INF\com\google\android
checksys放到包的根目錄
原包的boot.img重命名為boot-sys1.img
改過的boot.img重命名為boot-sys2.img
放到包里即可(可能需要重新簽名,否者會刷機失敗)
特點是包含了第一和第二系統的boot.img,刷機時會自動判斷你的系統
需要的文件有刷機腳本(updater-script),checksys文件,然后是兩個系統的boot.img,所以可以在任何系統下刷入,建議以后romer就用這種。
#還有一種是僅支持刷到第二系統的腳本,不能在第一系統刷入
僅支持刷到第二系統腳本(內含updater-script文件):
https://yunpan.cn/Ock9YvgDTcePQX? 訪問密碼 b70e
直接替換原包中\META-INF\com\google\android\updater-script
然后把改過的boot.img復制替換(可能需要重新簽名,否者會刷機失敗)
這種包外觀和普通包沒有區別,但是只能刷入第二系統
我建議你改完這種包后在文件尾部加上"Olny_Sys2"的字樣以便區分
要點3.第二系統的recovery是修改過的(第一系統是普通recovery),這個你看一下就是了,我下面會提供改過的recovery.
其實recovery.img和boot.img是有一定程度的相似的
下面介紹如何修改支持第二系統的recovery
還是要用到解包boot.img的工具
重口味又來了,小白跳過
選擇4
接下來把recovery放到boot文件夾下,保持該文件夾僅有bootimg.exe和recovery.img兩個文件,免得搞混了
然后就一和解包boot.img一樣了
就連解包出來的文件都類似,都是這種
然后就是修改recovery了,但recovery就不是修改init.rc了,雖然recovery也包含init.rc
要修改的地方是initd/etc/recovery.fstab
同樣用EmEditor打開recovery.fstab,把mmcblk0p12改成mmcblk0p15,mmcblk0p13改成mmcblk0p16
如果你要修改recovery里面的圖片請打開boot/initrd/res/images
改完就打包,然后ok
記得清理現場
4.刷第一和第二系統的recovery
我已經做好了,直接在分區后刷入兩個recovery: ? https://yunpan.cn/Ock9YebRycqgMp? 訪問密碼 c21a
為了區別這兩個recovery,我在背景中加入了1或者2的字樣
呃。。。隨手一涂的,美工不咋的,將就看了。.{:236:}
美工好的同學可以解包recovery然后美化一下圖片。
注意里面的電池圖標是關機充電顯示的圖標,也可以加入1或者2的字樣,以便充電時區分哪個系統。
弄好了記得共享哦。
還有問題這兩個recovery 是英文的,有些同學可能感覺陌生,也可以用中文版修改。
存在有可能讀取不到sd卡的問題,只許拔出內存卡,過一兩秒鐘再插回去就可以啦。
5.刷好了recovery,你最好選擇Advance(高級)→Reboot Recovery(重啟到Recovery),然后就會進入剛剛刷入的我的Recovery,背景有個明顯的1字樣。
接下來刷第一系統,第一系統就隨便你刷了,記得還是要雙wipe一下。刷完直接Reboot System Now(立即重啟),然后就進入系統啦。
6.有的同學到這一步就開始執行第八腳本切換系統了,然后神奇的一幕出現了,再怎么執行腳本重啟了還是第一統!!
好多同學就在這一步放棄了。
原因是什么呢,第八腳本的內容是,稍微懂點英文的同學就看得懂.
如果同時存在boot2.img和recovery2.img才會把這兩個文件文件重命名為boot.img和recovery.img。原來的boot.img和recovery.img重命名為boot1.img和recovery1.img,于是就切換到第二系統了。
但是我們現在僅有一個recovery2.img,沒有boot2.img所以腳本不會起作用的嘛
所以無論怎么執行腳本,重啟都是第一系統。
那么這一步就最好手工操作了
關機,同時按音量上下,前后按開機鍵,進入粉屏,連接電腦。把boot.img改成boot1.img,recovery.img改成recovery1.img,最后把recovery2.img改成recovery.img(也可以用RE管理器改)
改完了,扣電池關機,接著進入recovery(不要直接開機,因為缺少boot.img所以會藍屏哦,反正進入recovery就是了)
此時的recovery背景有2的字樣
那么就可以開始刷第二系統了,保險起見還是雙wipe一下。
要刷的第二系統可以自己改,比如你可改dzo的4.0,或者改好了發到論壇分享
或者下載birdyi的包都支持雙系統。【Birdyi】【3.16更新】MIUI開發版2.3.16【35內核】【移植DHD】
刷完第二系統直接重啟就進入第二系統了。
7.另外我提倡把第八腳本放在粉屏下(.cust_backup)
這樣有以下優勢:
1.不用拷貝第八腳本到system/etc
2.不用改權限!!
3.有些包拷貝到System/etc無法執行,粉屏就沒有這樣的問題。
4.刷機不會被清除,它會一直待在粉屏下。如果放在System/etc下,刷另外一個包時,恰巧這個包沒有內置第八腳本,你還要復制第八腳本到System/etc,改權限,麻煩死了。
修改了的系統切換工具: ? https://yunpan.cn/Ock9YDiCP7CkJy? 訪問密碼 5846
8.有同學擔心那個系統切換工具是不是沒法用了?
所以我請騎士king幫忙反編譯了那個系統切換工具,把位置從System/etc改到了.cust_backup
為了區別原來那個系統切換工具,我把圖標稍微改了一下,加了個性感的嘴巴。。。
呃,再次聲明,拙劣的美工技術。。。{:236:}
有需要的同學,可以自己改。..
9.我已經在刷兩個recovery的包里內置了第八腳本,刷recovery時順帶刷入了。你就不用復制到粉屏.cust_backup下了。
但還是單獨提供一下第八腳本:https://yunpan.cn/Ock9YIdcGEmH6z? 訪問密碼 9aa8
10.至此雙系統完工。
總結如下:
破解粉屏>分區>刷入兩個recovery>刷第一系統>手動切換到第二系統recovery下>刷第二系統>完畢
我想說的是你不必按照我的步驟來,只要你理解到原理隨便怎么折騰都可以。
有什么不足請指出哦