提取分区:修订间差异

来自Uotan Wiki · 刷机百科
(排版 and 内核节点 -> 块设备)
第18行: 第18行:
有很多软件支持提取分区的功能,比如爱玩机工具箱,如果需要方便,可以试试这些软件
有很多软件支持提取分区的功能,比如爱玩机工具箱,如果需要方便,可以试试这些软件


'''每个机型的提取方式可能不同,请自行在<code>/dev/block</code>下查看'''. 以红米5p举例,分区所在的内核节点路径在:
通过root权限提取分区主要是与块设备通信. Android中的块设备与Linux相似,可以通过块设备来读写分区
 
'''每个机型的提取方式可能不同,请自行在<code>/dev/block</code>下查看'''. 以红米5p举例,分区所在的块设备路径在:


<code>/dev/block/bootdevice/by-name/分区名</code>
<code>/dev/block/bootdevice/by-name/分区名</code>


比如,若需要提取system分区,则分区所在的内核节点路径为:<code>/dev/block/bootdevice/by-name/system</code>
比如,若需要提取system分区,则分区所在的块设备路径为:<code>/dev/block/bootdevice/by-name/system</code>
 
取得块设备路径后,有两种方式提取分区:
 
1.通过cp指令: <code>cp 块设备路径 要提取到的文件路径</code>
 
例如
 
<code>cp /dev/block/bootdevice/by-name/system /sdcard/system.img</code>
 
这会提取system分区到/sdcard/system.img
 
2.通过dd指令:
 
<code>dd if=块设备路径 of=要提取到的文件路径 bs=4M</code>


取得内核节点路径后,有两种方式提取分区:
例如<code>dd if=/dev/block/bootdevice/by-name/system of=/sdcard/system.img bs=4M</code>


# 通过cp指令: <code>cp 内核节点路径 要提取到的文件路径</code>,例如<code>cp /dev/block/bootdevice/by-name/system /sdcard/system.img</code>,这会提取system分区到/sdcard/system.img
这同样会提取system分区到/sdcard/system.img,<code>bs=4M</code>意为将块大小指定为4M,由于储存器的特性,小于扇区大小会造成更多的寿命损失并增加读写时间。因此,为了加快速度并减少寿命损失,可使用类似于4M的整数. 对于较老的机型,可尝试转为字节,如<code>bs=4M</code>可换为<code>bs=4194304</code>
# 通过dd指令: <code>dd if=内核节点路径 of=要提取到的文件路径 bs=4M</code>,例如<code>dd if=/dev/block/bootdevice/by-name/system of=/sdcard/system.img bs=4M</code>,这同样会提取system分区到/sdcard/system.img,<code>bs=4M</code>意为将块大小指定为4M,由于储存器的特性,小于扇区大小会造成更多的寿命损失并增加读写时间。因此,为了加快速度并减少寿命损失,可使用类似于4M的整数. 对于较老的机型,可尝试转为字节,如<code>bs=4M</code>可换为<code>bs=4194304</code>

2024年2月16日 (五) 21:29的版本

通常来说,Android有三种提取分区的方式:

  • 从刷机包中提取
  • 设备已获取root权限,通过root权限提取
  • 通过MTK深刷/9008提取(不讨论)
  • 大容量模式(不讨论)

从刷机包中提取

从刷机包中提取分区非常简单,对于zip格式的线刷包(其他格式自行寻找解包方法),只需要以压缩文件方式打开线刷包,解压需要提取的分区即可

如果是卡刷包, 参考这里提取分区

通过root权限提取

如果设备已经获取root权限,则可以通过root权限提取分区

注意:有些分区提取后可能并不支持直接通过fastboot刷入

有很多软件支持提取分区的功能,比如爱玩机工具箱,如果需要方便,可以试试这些软件

通过root权限提取分区主要是与块设备通信. Android中的块设备与Linux相似,可以通过块设备来读写分区

每个机型的提取方式可能不同,请自行在/dev/block下查看. 以红米5p举例,分区所在的块设备路径在:

/dev/block/bootdevice/by-name/分区名

比如,若需要提取system分区,则分区所在的块设备路径为:/dev/block/bootdevice/by-name/system

取得块设备路径后,有两种方式提取分区:

1.通过cp指令: cp 块设备路径 要提取到的文件路径

例如

cp /dev/block/bootdevice/by-name/system /sdcard/system.img

这会提取system分区到/sdcard/system.img

2.通过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,由于储存器的特性,小于扇区大小会造成更多的寿命损失并增加读写时间。因此,为了加快速度并减少寿命损失,可使用类似于4M的整数. 对于较老的机型,可尝试转为字节,如bs=4M可换为bs=4194304