ColorOS和MIUI双系统安装笔记

PS:实在闲的蛋疼,在火车上用手机写的太乱,现在在电脑上修改完善笔记。

本文目的:color os 2.0与miuiV5系统完美共存。

本人实际ROM:Color OS V2.0.47 Beta和miui v5 4.12.12(Xs修改版)
双系统为COS正常刷机,MIUI刷入img文件中
MIUI底包基带版本:MPSS.DI.2.0.1.c7-0020-M8974AAAAANPZM-1
COS底包基带版本:MPSS.DI.3.0.c6-00230-M8974AAAAANAZM-1

一、所需文件:
本文使用的recovery为twrp recovery 2.8.5.1 (recovery.img)
1.1.Color OS和MIUI的ROM(不提供)
1.2.dd.exe(linux指令)
1.3.sed.exe(linux指令)
1.4.busybox
1.5 Color OS和MIUI的驱动底包(Base_Color.zip和Base_MIUI.zip)
1.7 Rashr.apk(刷机工具程序)
1.8 bootimg.exe
1.9清理包(四个)

百度云:http://pan.baidu.com/s/1gdrNtjt
提取码:eybc

二、准备工作
2.1.生成cache.img,data.img,system.img(推荐大小:100M,3G,1G)

命令:
dd if=/dev/zero of=cache.img bs=1024 count=102400
dd if=/dev/zero of=data.img bs=1024 count=3145728
dd if=/dev/zero of=system.img bs=1024 count=1048576

img存放目录:/data/media/rom/miui/

2.2.修改boot.img(由于我的手机原来系统是COS,所以将提取修改MIUI ROM的boot.img,使得MIUI从/data/media/rom/miui/下img镜像文件启动)。
boot-new.img文件为修改完成后的boot.img

命令:
/*解压boot.img*/
bootimg.exe --unpack-bootimg boot.img

/*修改initrd/fstab.bacon文件中cache,data,system配置*/
sed.exe
-i
"s:/dev/block/platform/msm_sdcc.1/by-name/system:\#/dev/block/platform/msm_sdcc.1/by-name/system:g"
initrd/fstab.bacon
sed.exe -i "s:/dev/block/platform/msm_sdcc.1/by-name/cache:\#/dev/block/platform/msm_sdcc.1/by-name/cache:g" initrd/fstab.bacon
sed.exe
-i "s:/dev/block/platform/msm_sdcc.1/by-name/userdata    
/data:/dev/block/platform/msm_sdcc.1/by-name/userdata     /rdata:g"
initrd/fstab.bacon

/*
在initrd/init.bacon.rc文件中添加执行语句,
语句作用:
(1)创建挂在点和临时文件系统
(2)利用busybox工具将img挂载到三大分区
(3)修改内置sdcard的配置
*/
sed.exe -i "/mount_all/i\    mkdir /rdata 0771 system system" initrd/init.bacon.rc

sed.exe
-i "/mount_all/a\    exec /sbin/busybox mount -t ext4 -o
noatime,nosuid,nodev,nomblk_io_submit,errors=panic,rw
/rdata/media/rom/miui/cache.img /cache" initrd/init.bacon.rc
sed.exe
-i "/mount_all/a\    exec /sbin/busybox mount -t ext4 -o
noatime,nosuid,nodev,nomblk_io_submit,errors=panic,rw
/rdata/media/rom/miui/data.img /data" initrd/init.bacon.rc
sed.exe -i
"/mount_all/a\    exec /sbin/busybox mount -t ext4 -o ro
/rdata/media/rom/miui/system.img /system" initrd/init.bacon.rc

sed.exe
-i "s:service sdcard /system/bin/sdcard -u 1023 -g 1023 -l
/data/media:\service sdcard /system/bin/sdcard -u 1023 -g 1023 -l
/rdata/media:g" initrd/init.bacon.rc

/*复制busybox至内核*/
copy busybox initrd\sbin\

/*在cpiolist.txt中添加语句,授予busybox 750(rwxr-x---)的权限*/
sed.exe -i "$a file sbin/busybox initrd/sbin\\busybox 0750" cpiolist.txt

/*重新打包,生成boot.img*/
bootimg.exe --repack-bootimg

2.3.修改updater-script(由于我的手机原来系统是COS,所以将提取修改MIUI ROM中\META-INF\com\google\android中updater-script,使得MIUI ROM刷入三个img文件中)。

命令:
/*删除updater-script默认挂载命令*/
sed -i "/getprop(\"ro.product.device\")/d" updater-script
sed -i "/getprop(\"ro.build.product\")/d" updater-script
sed -i "/mount(\"ext4\", \"EMMC\"/d" updater-script
sed -i "/format(\"ext4\", \"EMMC\"/d" updater-script
sed -i "/\/dev\/block\/platform\/msm_sdcc.1\/by-name\/boot/d" updater-script
sed -i "/\/dev\/block\/platform\/msm_sdcc.1\/by-name\/recovery/d" updater-script
sed -i "/\/dev\/block\/platform\/msm_sdcc.1\/by-name\/aboot/d" updater-script
sed -i "/\/dev\/block\/platform\/msm_sdcc.1\/by-name\/modem/d" updater-script
sed -i "/\/dev\/block\/platform\/msm_sdcc.1\/by-name\/sbl1/d" updater-script
sed -i "/\/dev\/block\/platform\/msm_sdcc.1\/by-name\/rpm/d" updater-script
sed -i "/\/dev\/block\/platform\/msm_sdcc.1\/by-name\/tz/d" updater-script
sed -i "/\/dev\/block\/platform\/msm_sdcc.1\/by-name\/oppostanvbk/d" updater-script
sed -i "/\/dev\/block\/platform\/msm_sdcc.1\/by-name\/LOGO/d" updater-script
sed -i "/\/dev\/block\/platform\/msm_sdcc.1\/by-name\/reserve4/d" updater-script
sed -i "/unmount/d" updater-script
sed -i "/test.img/d" updater-script
sed -i "/ui_print(\"Writing radio/d" updater-script
sed -i "/run_program(\"\/sbin\/reboot/d" updater-script
sed -i "/run_program(\"\/sbin\/busybox\", \"mount\"/d" updater-script
sed -i "/run_program(\"\/sbin\/busybox\", \"umount\"/d" updater-script
sed -i "/sha1_check(read_file(\"\/tmp\/releasekey\")/d" updater-script

/*建立新的挂载命令*/
sed -i "1i run_program(\"/sbin/mount\", \"-t\", \"ext4\", \"/dev/block/loop2\", \"/data\");" updater-script
sed -i "1i run_program(\"/sbin/losetup\", \"/dev/block/loop2\", \"/realdata/media/rom/miui/data.img\");" updater-script
sed -i "1i run_program(\"/sbin/mount\", \"-t\", \"ext4\", \"/dev/block/loop1\", \"/system\");" updater-script
sed -i "1i run_program(\"/sbin/mke2fs\", \"-T\", \"ext4\", \"/dev/block/loop1\");" updater-script
sed -i "1i run_program(\"/sbin/losetup\", \"/dev/block/loop1\", \"/realdata/media/rom/miui/system.img\");" updater-script
sed
-i "1i run_program(\"/sbin/mount\", \"-t\", \"ext4\",
\"/dev/block/platform/msm_sdcc.1/by-name/userdata\", \"/realdata\");"
updater-script
sed -i "1i run_program(\"/sbin/mkdir\", \"/realdata\");" updater-script
sed -i "1i unmount(\"cache\");" updater-script
sed -i "1i unmount(\"data\");" updater-script
sed -i "1i unmount(\"system\");" updater-script
sed
-i "1i assert(getprop(\"ro.product.device\") == \"bacon\" ||
getprop(\"ro.build.product\") == \"bacon\" ||
getprop(\"ro.product.device\") == \"A0001\" ||
getprop(\"ro.build.product\") == \"A0001\");" updater-script
sed -i "$a run_program(\"/sbin/umount\", \"-d\", \"/data\");" updater-script
sed -i "$a run_program(\"/sbin/umount\", \"-d\", \"/system\");" updater-script
sed -i "$a run_program(\"/sbin/umount\", \"/realdata\");" updater-script
sed -i "$a ui_print(\"Image Installation complete!\"); " updater-script

2.4.准备三清脚本包
自己制作为:
wipe_all_img.zip /*三清包*/
wipe_cache_dalvik-cache_img.zip /*格式化cache.img*/
wipe_data_cache_img.zip /*格式化cache.img和data.img*/
wipe_system_img.zip /*格式化system.img*/

命令:
/*清理data*/
ui_print("Wiping data...");
unmount("/data");
run_program("/sbin/mkdir", "/realdata");
run_program("/sbin/mount", "-t", "ext4", "/dev/block/platform/msm_sdcc.1/by-name/userdata", "/realdata");
run_program("/sbin/losetup", "/dev/block/loop1", "/realdata/media/rom/rootdlhxr/data.img");
run_program("/sbin/mke2fs", "-T", "ext4", "/dev/block/loop1");
run_program("/sbin/mount", "-t", "ext4", "/dev/block/loop1", "/data");
run_program("/sbin/umount", "-d", "/data");

/*清理cache*/
ui_print("Wiping cache...");
unmount("/cache");
run_program("/sbin/losetup", "/dev/block/loop1", "/realdata/media/rom/rootdlhxr/cache.img");
run_program("/sbin/mke2fs", "-T", "ext4", "/dev/block/loop1");
run_program("/sbin/mount", "-t", "ext4", "/dev/block/loop1", "/cache");
run_program("/sbin/umount", "-d", "/cache");

/*清理system*/
ui_print("Wiping system...");
unmount("/system");
run_program("/sbin/losetup", "/dev/block/loop1", "/realdata/media/rom/rootdlhxr/system.img");
run_program("/sbin/mke2fs", "-T", "ext4", "/dev/block/loop1");
run_program("/sbin/mount", "-t", "ext4", "/dev/block/loop1", "/system");
run_program("/sbin/umount", "-d", "/system");
run_program("/sbin/umount", "/realdata");

/*清理dalvik-cache*/
ui_print("Wiping dalvik-cache...");
unmount("/data");
run_program("/sbin/mkdir", "/realdata");
run_program("/sbin/mount", "-t", "ext4", "/dev/block/platform/msm_sdcc.1/by-name/userdata", "/realdata");
run_program("/sbin/losetup", "/dev/block/loop1", "/realdata/media/rom/rootdlhxr/data.img");
run_program("/sbin/mount", "-t", "ext4", "/dev/block/loop1", "/data");
delete_recursive("/data/dalvik-cache");
run_program("/sbin/umount", "-d", "/data");

三、操作步骤(貌似还是准备工作比较长,操作比较简单)
3.1.文件操作:
3.1.1cache.img,data.img,system.img三个文件放入手机/data/media/rom/miui目录下
3.1.2将修改后的updater-script文件替换掉MIUI ROM中\META-INF\com\google\android中updater-script,再将两个ROM包放入手机sdcard中
3.1.3将各种清理脚本包放入sdcard中
3.1.4将ColorOS的boot.img命名为boot_color.img,MIUI修改后的boot.img命名为boot_miui.img

3.2.刷机操作:
首先,进入recovery,用recovery提供的三清来清理,然后刷入Color OS系统(我们正常的手机系统)
然后,在recovery中刷入wipe_all_img.zip /*三清包*/,然后再刷入MIUI ROM,至此,双系统已经完毕

四、系统切换
4.1.在使用的系统中刷Boot

安装Rashr.apk,点击“刷写其他内核”,选择对应的boot.img文件(boot_color.img和boot_miui.img),然后不
要选择重启(因为底包没换,会有写小问题),再选择重启到recovery刷入对应的Base_XXX.zip底包,重启即可。

4.2.在recovery中刷Boot
    在recovery中启动terminal command,选择到boot.img所在文件夹,输入命令:

dd if=boot_XXX.img of=/dev/block/platform/msm_sdcc.1/by-name/boot

XXX为对应的系统名(color或miui)

然后,在刷入对应的Base_XXX.zip底包,重启即可

Powered By  dlhxr

时间: 2024-10-18 04:02:38

ColorOS和MIUI双系统安装笔记的相关文章

Windows7 + Ubuntu双系统安装过程记录

Windows7 + Ubuntu双系统安装过程记录 时间: 2014-11-05 22:00:00 本文为在已安装Windows7系统的前提下安装Ubuntu Kylin 14.10系统的过程以及期间出现的各种问题的记录. p{text-indent:2em} Ubuntu系统下载 Ubuntu Kylin中文官方网站:http://www.ubuntu-china.cn/ Ubuntu Kylin 14.10 64位下载地址:http://cdimage.ubuntu.com/ubuntuk

Win10 + Fedora 双系统安装

注:Linux 小白的笔记,dalao 勿喷.... 前两天因为电脑上安装的 Fedora 系统在项目演示时无法连接投影仪,吾辈终究还是想起了 Win10 自动安装硬件驱动程序的便利性,然而用了这么久的 Fedora 系统吾辈也确实喜欢上了,所以吾辈就想装一下双系统玩一下.本以为 吾辈的笔记本有两块硬盘应该很容易安装来着,于是就安装完 Windows 之后做了一个 Fedora 的启动盘,然后就一路默认过去安装了.之后把系统的各种必备软件都安装后,才想到原来的 Win10 系统,于是就重启了一下

win8和ubuntu双系统安装

做了一个windows和Ubuntu双系统,参考了一些文章.网上资料不少,我就不重复了. 参考的部分文章如下: Ubuntu 14.04 和 Windows 8.1 双系统安装步骤:http://os.51cto.com/art/201405/439158.htm UEFI模式安装win8和ubuntu双系统:http://www.enjoydiy.com/1961.html 关于Windows8 UEFI安全启动协议解读的完整版:http://article.pchome.net/conten

带固态硬盘的电脑Ubuntu和Windows双系统安装

带固态硬盘的电脑Ubuntu和Windows双系统安装 说明 假设电脑有一个230G固态硬盘一个1T机械硬盘.(其他硬盘大小同理)此教程适用于win10与Ubuntu都装在固态以及win10装在固态,ubutnu装在机械这两种情况. 因为我频繁使用的Ubuntu,所以此分区教程把固态分一半给Ubuntu装系统.固态只用来放两个系统以提高速度.此教程只适合于有固态硬盘的双系统装机(无论是只有win10装在固态还是都装在固态). 因为是固态装系统,所以固态硬盘的格式要使用GUID模式而非MBR,同时

关于win10、ubuntu双系统安装的 geom erro错误

安装参考这个博客:http://blog.csdn.net/pop_rain/article/details/70477085 只记录安装ubuntu过程遇到的问题: 1.分区不可用(分区按以下设置) 10G     主分区     空间起始位置     Ext4日志文件系统           / 4G    逻辑分区         空间起始位置     交换空间      /swap 200MB     逻辑分区    空间起始位置     Ext4日志文件系统    /boot 剩余的空

Linux和Windows双系统安装要点

这里主要说下CentOS和Windows7的双系统安装遇到的一些问题 一.磁盘分区 这个不得不说下在Windows下坑爹的设定了,如果是用默认的磁盘划分,系统会自己先划出一个100M左右的区,关键还是主分区,这里要说下磁盘的分区最多是四个主分区(P),一个扩展区(E),(这里说下P和E总和最多是四个,至于原因,下面有详细说明)至于逻辑区(L)都是在扩展区下进一步划分. 刚开始的时候习惯性的用系统自带的分区软件熟练的分了C.D.E三个区,在Windows下没有任何问题,后来开始安装CentOS时候

轻松学习之Linux教程一 ubuntu14.04+windows双系统安装

本系列文章由@超人爱因斯坦出品,转载请注明出处.          文章链接:http://hpw123.net/member/index.php?uid=hpw&action=viewarchives&aid=60          作者:超人爱因斯坦    个人网站:http://www.hpw123.net        邮箱: [email protected]        CSDN:http://blog.csdn.net/u010283694 授之以鱼,不如授之以渔.    

Windows8和MacOS10.9双系统安装及Mac常用软件安装--联想E49A

前提 本篇内容所描述的内容只适合联想E49A笔记本,经过本篇的内容之后,对于Mac OS 10.9的使用达到正常工作使用的标准,完美度肯定达不到苹果本. 结果如下:显卡.网卡(RTL8168).声卡.电池都正常驱动了:无线网卡(RTL8192ce).U盘没有正常驱动. Windows8的安装,比较简单,前帖也有简要说明:http://blog.csdn.net/puma_dong/article/details/17316731 安装Mac前,要进入BIOS,把显卡改成集成显卡. 磁盘分区 使用

Red Hat Enterprise Linux Server release 7.0双系统安装

Red Hat Enterprise Linux Server release 7.0双系统安装 1.RedHat 公司的企业版7.0已经发布了.下面介绍一下在7.0下装双系统的步骤. 安装前系统:WIN7 要安装的第二个系统:RedHat Enterprise 7.0 @请注意:WIN8系统和企业版7.0不兼容.安装完7.0后,WIN8系统会起不来. @首先BOIS已经确定调好.[注意启用笔记本的高速运转模式],我是用PXE网络来安装的,所以还得设置从PXE网络启动. @接着以PXE启动. @