关注互联网应用及运维技术的个人博客

任意安卓手机多系统方案

Part.0

原理:分割手机数据[userdata]分区为多个分区[系统2分区] 实现两套完整的系统[boot,system,userdata,vendor,cust等等],再通过改分区名字为system,userdata等等,使手机加载名字为上面的分区,而此时把系统2各个分区名字改为system2,userdata2等等,系统2不会被加载,如下图[此时加载了系统1,系统2不加载]

分区环境:终端[如twrp在 主页/高级/终端 里]

分区工具:sgdisk[系统自带]

涉及分区:system,userdata,vendor[可选],cust[可选],boot[可选] –可选看情况,如果安装差异大的系统,比如不同版本,需要都分2个分区

注意:1.分区最好分大,不然很可能完全刷不进[userdata,cust可适当减小],其它分区分得和原来一样大

2.更改[删分区,新建分区,改分区名字]会在重启后生效

本文涉及的命令只是列子
请勿直接复制使用,请根据实际情况输入命令!

Part.1-删除原分区

在此之前一定要备份,如果分区失误可能导致无法开机,请确认自己能救砖再尝试

1.备份分区表[在分区时误操作,可以使用备份的分区表来还原]

sgdsik /dev/block/mmcblk0 --backup=/sdcard/mmcblk0.bin

要恢复输入

sgdisk /dev/block/mmcblk0 --load-backup=/sdcard/mmcblk0.bin

2.查看自己分区表的分配

sgdisk /dev/block/mmcblk0 --print

3.删除userdata[当然,也可以删了系统1和2的各个分区重新配置]

sgdisk /dev/block/mmcblk0 --delete=[userdata分区号,就是图片中最前面那些数字,如图中是62]

Part.2-新建分区

依次建立系统2的各个分区,以及系统1的userdata分区

列子

sgdisk /dev/block/mmcblk0 --new=61:0:+1000mb

上面61是新建61分区,0是顺序分配下来,+1000mb是分1000mb给这个分区[小数貌似不行,请单位换算]

依照这样建立其它分区

注意,如果发现分区到一定数量无法创建,请输入

sgdisk /dev/block/mmcblk0 --resize-table=60

60是分区上限,可适当改大

Part.3-给分区改名

为了方便管理,可以把系统2各个分区名字改成system2,vendor2等等

改名命令

sgdisk /dev/block/mmcblk0 --change-name=61:system

61就是要改的分区号 :后面的system就是改的分区名

如果分区名有重复的,系统会加载分区号小的分区

依照这样把系统2分区改好

Part.4-载入分区[切换系统2]

1.把系统2分区名字改成system,vendor等等,并把系统1分区改成system1,vendor1等等,让系统1不加载,系统2加载

2.进入rec,会发现无法挂载分区,此时进入/清除/高级清除/system/更改分区格式/ext4 不行试试其它格式,成功了就转ext4格式,其它分区如vendor同理

3.现在,你可以刷入自己的刷机包了,此时系统1不受影响

Part.5-自动切换[可选]

使用MacroDroid可以实现自动化切换

赞(0)
未经允许不得转载:飞天狒狒 » 任意安卓手机多系统方案

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址