在这里我说一说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下>刷第二系统>完毕
我想说的是你不必按照我的步骤来,只要你理解到原理随便怎么折腾都可以。
有什么不足请指出哦