通常来说,Android有三种提取分区的方式:
- 从刷机包中提取
- 设备已获取root权限,通过root权限提取
- 通过MTK深刷/9008提取(不讨论)
- 大容量模式(不讨论)
从刷机包中提取
从刷机包中提取分区非常简单,对于zip格式的线刷包(其他格式自行寻找解包方法),只需要以压缩文件方式打开线刷包,解压需要提取的分区即可
如果是卡刷包, 参考这里提取分区
通过root权限提取
如果设备已经获取root权限,则可以通过root权限提取分区
注意:有些分区提取后可能并不支持直接通过fastboot刷入
有很多软件支持提取分区的功能,比如爱玩机工具箱,如果需要方便,可以试试这些软件
每个机型的提取方式可能不同,请自行在/dev/block
下查看. 以红米5p举例,分区所在的内核节点路径在:
/dev/block/bootdevice/by-name/分区名
比如,若需要提取system分区,则分区所在的内核节点路径为:/dev/block/bootdevice/by-name/system
取得内核节点路径后,有两种方式提取分区:
- 通过cp指令:
cp 内核节点路径 要提取到的文件路径
,例如cp /dev/block/bootdevice/by-name/system /sdcard/system.img
,这会提取system分区到/sdcard/system.img - 通过dd指令:
dd if=内核节点路径 of=要提取到的文件路径 bs=4M
,例如dd if=/dev/block/bootdevice/by-name/system of=/sdcard/system.img bs=4M
,这同样会提取system分区到/sdcard/system.img,bs=4M
用于加快速度并减少寿命损失(可选),可使用类似于4M的整数. 对于较老的机型,可尝试转为字节,如bs=4M
可换为bs=4194304