客户端
扫码下载小米社区APP

首页 > 刷机教程 > 正文

教你完美解决小米手机双系统共存问题
2013-05-15 12:06:12   来源:小米粉嘿嘿   评论:0 点击:

【文章摘要】想搞个独立的双系统,搞二个data分区太麻烦了点,而且手机对第二个data分区不太支持,无意中发现userdata和cache这二个分区都是EXT4格式,我想如果系统二把userdata挂载在cache下

  软件下载请猛击此处:http://bbs.xiaomi.cn/thread-7335334-1-1.html

  本人是个爱折腾的人,喜欢尝鲜ROM,常用的“系统1”固定不动,用系统2来刷新ROM,可是每次换个新系统后都要双清,伤不起呀。

  于是想搞个独立的双系统,搞二个data分区太麻烦了点,而且手机对第二个data分区不太支持,无意中发现userdata和cache这二个分区都是EXT4格式,我想如果系统二把userdata挂载在cache下,把cache挂载在data下,也就是把用户分区和缓存分区换一下,不就是不互相影响了吗?于是动手证明此方法切实可行。换系统就跟电脑上换系统一样,一个字爽呀!看到这我相信动手能力强的已经可以自己干了吧(不怕做不到,就怕想不到)!先来点预备知识:

  1、重新分区,调整分区大小:http://bbs.xiaomi.cn/thread-6060785-1-1.html(其实cache分区有180M,如果第二系统不装什么大软件,完全可以不用重新分区)。

  2、boot.img的解包和打包(不会的直接下我已做好的包):这个工作最好在linux或ubuntu下进行,在windows下可能你打不开包的。

  工具下载:windows下的bootimg工具及bat文件:

  bootimg.rar (5.34 MB,下载次数: 22)

  linux或ubuntu下的工具(包括mkbootfs、mkbootimg、split_bootimg.pl):

  tools.zip (58.52 KB,下载次数: 3)

  下好后解压到bin目录,给权限,从你下载好的ROM包中,提取boot.img放到数据文件夹中。输入命令解压之:

  # mkdir /mnt/shared/boot

  # cd /mnt/shared/boot

  # split_bootimg.pl boot.img

  这时你发现BOOT目录下多了几个文件,其中有boot.img-ramdisk.gz和boot.img-kernel,创建一个新的名叫ramdisk的目录,用于存放ramdisk盘中的文件。然后,提取出ramdisk文件。命令如下:

  # mkdir ramdisk

  # cd ramdisk

  # gzip -dc ../boot.img-ramdisk.gz | cpio -i

  # cd ..

  这时,ramdisk中的文件已经解压出来了,可以修改了。不过修改之前,我们还是备份一下吧。

  3、修改init.rc文件,找到mount mtd partitions,修改前是:

  # Mount /system rw first to give the filesystem a chance to save a checkpoint

  mount yaffs2 mtd@system /system

  mount yaffs2 mtd@system /system ro remount

  mount yaffs2 mtd@usedata /data nosuid nodev

  mount yaffs2 mtd@cache /cache nosuid nodev

  修改后:

  # Mount /system rw first to give the filesystem a chance to save a checkpoint

  mount yaffs2 mtd@system /system

  mount yaffs2 mtd@system /system ro remount

  mount yaffs2 mtd@usedata /cache nosuid nodev

  mount yaffs2 mtd@cache /data nosuid nodev

  修改init.target.rc文件,找到on fs,修改前是:

  mount ext4 syspart /system wait ro barrier=1

  wait /dev/block/platform/msm_sdcc.1/by-name/userdata

  exec /system/bin/sh /system/bin/mount_ext4.sh /dev/block/platform/msm_sdcc.1/by-name/userdata /data

  mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist nosuid nodev barrier=1

  exec /system/bin/sh /system/bin/mount_ext4.sh /dev/block/platform/msm_sdcc.1/by-name/cache /cache

  修改后:

  mount ext4 syspart /system wait ro barrier=1

  wait /dev/block/platform/msm_sdcc.1/by-name/cache

  exec /system/bin/sh /system/bin/mount_ext4.sh /dev/block/platform/msm_sdcc.1/by-name/cache /data

  mount ext4 /dev/block/platform/msm_sdcc.1/by-name/persist /persist nosuid nodev barrier=1

  exec /system/bin/sh /system/bin/mount_ext4.sh /dev/block/platform/msm_sdcc.1/by-name/userdata /cache

  4、修改好打包吧:

  打包ramdisk命令:mkbootfs ramdisk |gzip >ramdisk.gz

  打包boot.img命令(小米1专用):

  mkbootimg --cmdline 'console=ttyHSL0,115200,n8 androidboot.hardware=qcom kgsl.mmutype=gpummu vmalloc=400M' --kernel boot.img-kernel --ramdisk ramdisk.gz --base 0x40200000 --pagesize 2048 --ramdiskaddr 0x41400000 -o boot2.img

  好了boot2.img就是我们要的第二系统的启动文件了,实际就是将/data和/cache目录互换了。举一仿三,将/data和/persist(要调整大小)目录互换,效果也不错。

  最后当然是把这个boot.img刷到boot1中去了,刷入命令是:

  fastboot devices

  fastboot flash boot1 boot2.img

  fastboot reboot

  刷机工具及做好的boot2.img下载:

  结束语:这方法确实完美解决了二个系统共存问题,如果觉得cache分区太少,可以自己多分点给cache;但有一点这个方法将第二系统的缓存和第一系统的用户数据混在一起了,但缓存数据较小,对系统不会有什么影响,你也可以装个缓存清理软件进行清理。反正我第二个系统很少用的,但经常换,在第二系统上装下一个新系统时我把cache分区格一下就OK。

  刷第二系统的方法就是用完整包升级,一定要记得删除ROM包里的boot.img文件,切记,否则一切白忙了!

225146pt7p9rs9o8p113f3.png

  软件下载请猛击此处:http://bbs.xiaomi.cn/thread-7335334-1-1.html

相关热词搜索:双系统

上一篇:第三方ROM评测:米基塔V5第二版使用体验
下一篇:我是刷机大师:史上最详细的手机刷机教程

分享到: 收藏

教你完美解决小米手机双系统共存问题相关评论

热门活动 更多 >




玩机 更多>

小米橙色跑

米粉之星