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

转载于:https://www.cnblogs.com/xavierjzhang/p/4501502.html

ColorOS和MIUI双系统安装笔记相关推荐

  1. 拯救者R7000系列(AMD) win10+ubuntu20双系统安装笔记,解决显卡、亮度控制、触控板问题

    我的电脑,拯救者R7000海外版Legion5 R5 4600+2060,配置比较奇葩.R7000系列应该都适用 1.系统盘制作 1.1 下载ubuntu20 反正能下载就行,我也忘了从哪下的,这里给 ...

  2. 优麒麟 2204 与 win10 双系统安装笔记

    本文为 amd64 架构下 GPT 分区格式磁盘进行优麒麟 22.04 与 windows10 双系统引导的实操笔记. 1.安装优麒麟(操作:略) 这里的 linux 分区规划为:dev/sda1 为 ...

  3. windows和ubuntu双系统安装笔记

    自己大部分的编程工作已经由Windows环境转移到了Linux环境中进行.原本考虑的方案是采用虚拟机,但是在使用的过程中发现虚拟机里面处理数据会出现一些问题,所以就考虑安装双系统的方案.基于Linux ...

  4. linux windows10双系统安装教程,【笔记】windows10安装linux双系统教程(可能是现今最简单方法)...

    这周测试成功了大牛漂移菌教的树莓派系统镜像的压缩方法,虚拟机下备份镜像不太方便,无论是存储空间还是读卡操作都不方便.所以打算装个linux系统,一个硬盘纯装一个linux太浪费了,毕竟我linux用不 ...

  5. Window10 和 Ubuntu20.04 双系统安装

    Window10 和 Ubuntu20.04 双系统安装 工欲善其事,必先利其器 摆脱Bug附体,从装系统做起 文章目录 Window10 和 Ubuntu20.04 双系统安装 适用 Window1 ...

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

    带固态硬盘的电脑Ubuntu和Windows双系统安装 说明 假设电脑有一个230G固态硬盘一个1T机械硬盘.(其他硬盘大小同理)此教程适用于win10与Ubuntu都装在固态以及win10装在固态, ...

  7. 小米MIUI双系统原理及刷机

    很多人都会关注小米手机的双系统吧,其实小米现在还不能真正的实现双系统,但确实能用上双系统.# M9 B# m% q! Z- c 说到MIUI系统的刷机,我们首先想到的是观音哥介绍的6种刷机的方式.具体 ...

  8. Win8/Win7或XP 双系统安装图文教程

    本安装教程为Windows8之家原创,做成图文模式,希望能帮助正在使用Win7或者XP的同学顺利安装好Windows 8消费者预览版,是双系统能够正常使用!今天我们的,微博,论坛等诸多朋友使用各种方法 ...

  9. Win10 + ubuntu16双系统安装以及cuda,cudnn安装

    Win10 + ubuntu16双系统安装以及cuda,cudnn安装 其实这些东西我已经弄过好多次了但是每一次都遇到坑,所以记录一下.仅供参考 1.windows安装 这一步较为简单,注意安装系统到 ...

最新文章

  1. Servlet生命周期与工作原理
  2. run cuda samples ubuntu_NVIDIA cuDNN v8 deb方法安装教程(Linux/Ubuntu)
  3. Altium Designer 正反面布元器件
  4. ldap、additional info: no global superior knowledge
  5. Nginx的rewrite应用
  6. 网易笔试题——计算机视觉_深度学习方向
  7. 多个18B20组成测温系统
  8. Lazy Load, 延迟加载图片的 jQuery 插件
  9. English debate for sports motion with notes from PM (feedback included)
  10. [LeetCode] 9. Palindrome Number
  11. Linux系统利用Crontab命令实现定时重启
  12. idea创建标准的meaven项目
  13. python类中引用数据是通过_重载python类中的[]运算符以引用数字阵列数据内存
  14. Google工程师多图详解Android系统架构
  15. STM32控制WS2812B HAL库
  16. 选自《致加西亚的信》
  17. 分销开源微信小程序-真正意义上的开源
  18. 大型游戏后台实践浅谈
  19. react-native 报错Cannot add a child that doesn't have a YogaNode to a parent without a measur
  20. Portapack应用开发教程(十一) 加入内置麦克风

热门文章

  1. 全局体渲染光照技术总结概括(截止到2014年)
  2. 头条号个人中心登录_头条号平台上线「插入小程序」功能 帐号服务变现进一步提升...
  3. 中科大计算机实验室导师,中科大信息科学技术学院导师介绍:陈长汶
  4. AEJoy——使用 JS 脚本创建图层和蒙版(一)
  5. 辛普森一家,有趣的句子
  6. 话剧的一般内容及一份话剧台词
  7. Android :couldn't find libnative-lib.so
  8. java毕业设计绿叶有限公司工资管理信息系统源码+lw文档+mybatis+系统+mysql数据库+调试
  9. 科目三 临时停车 与 红绿灯 路口 LTS
  10. Altium Designer16对 PCB异形板和异形焊盘的形状设计