如何使Android分区的图像到您的电脑

hon*_*ngo 9 linux android image dd partition

我正在尝试进行备份(我的手机内置存储卡分区的直接dd图像到我的PC.我正在使用Linux而我的手机是Nexus 4.

ngr*_*een 10

不要安装 TWRP

反而:

  1. 安装android-platform-toolsandroid-sdk到您的计算机上。

  2. 下载TWRP

  3. 按住音量减小和音量增大按钮并打开手机以启动引导加载程序屏幕。确保您的手机已插入计算机的 USB 端口。

  4. 通过运行启动 TWRP fastboot boot twrp-3.1.0.0.img。(无需以这种方式刷新恢复分区。)

  5. 在 TWRP 中,选择 Advanced,然后选择 Terminal,这将打开一个 shell。键入mount并按 [ENTER] 以查看分区。您正在寻找/data可能的/sdcard坐骑。

  6. 假设您的/data分区映射到/dev/mmcblk0p28. 只需adb pull /dev/block/mmcblk0p28 data.img在您的计算机上运行,它就会复制分区。预计此过程需要一段时间,因为它正在复制整个分区,无论其中存储了多少文件。


hon*_*ngo 5

这是另一个更好的答案

要求:必须已安装adb

  1. https://www.androidfilehost.com/?fid=9390169635556426389下载不安全的boot.img到您的电脑
  2. 通过关闭电源,然后按住音量减小和电源按钮,将手机重新启动到快速启动模式.
  3. 从boot.img所在文件夹中的Linux PC输入:

    $ fastboot boot boot.img
    
    Run Code Online (Sandbox Code Playgroud)
  4. 要复制mmcblk0分区类型的图像:

    $ adb pull /dev/block/mmcblk0 mmcblk0.img
    
    Run Code Online (Sandbox Code Playgroud)


Cod*_*ing 5

编辑:本乡的回答步骤较少。

  1. 安装TWRP

    在 TWRP 页面上选择您的设备并按照那里的安装说明进行操作。
  2. 启动到恢复

    您可能必须找到特定于您的设备的组合键才能对引导加载程序菜单做出反应。如果您使用 fastboot ( fastboot flash recovery twrp.img)刷新了 TWRP ,那么您可以尝试fastboot reboot-bootloader,然后选择Recovery
  3. 在 TWRP 中挂载分区

    您现在应该在 TWRP 中。从那里,选择装载。确保您的data分区已安装。确保您的system分区已挂载,因为您需要一些驻留在那里的可执行文件。
  4. 连接 adb

    adb如果您还没有安装,请安装。通过 USB 数据线将手机连接到计算机。键入adb devices。如果您看到列出的设备,则您已连接。
  5. 转发端口 adb forward tcp:33333 tcp:33333

    我们需要启用对您手机的 TCP 访问。此命令侦听计算机的端口 33333(第一个参数)并将所有连接转发到手机上的端口 33333。您可以选择任何端口。PC 上低于 1024 的端口需要 root 访问权限。确保您选择的端口尚未被使用。这两个数字不需要匹配。
  6. 找到要备份的分区 adb shell mount

    找到要备份的分区并获取设备名称。[编辑:如果您需要备份的分区看起来像/dev/block/dm-0,它是逻辑卷 (LVM) 的一部分,这可能不是备份它的正确方法]
  7. 从手机转发原始分区

    • adb shell
    • 尝试 dd if=/dev/block/dm-0 bs=64k | gzip | nc -l -p 33333
      • /dev/block/dm-0与您之前从 mount 命令找到的设备有关。
      • 替换33333为您在上面选择的电话端口
      • 如果找不到任何命令,您可以尝试在它们前面加上/system/bin/toybox/system/bin/busybox
      • 此命令块从指定的设备 ( if=)复制,并使用 64k 的块大小(bs=64k- 您可以指定任何一个,或完全省略此参数,但较小的值可能会减慢进程。大于 64k 的值通常不会加快process up),将其转储到stdout,它通过管道传输到 gzip 以压缩它,然后通过管道传输到 netcat,它-l在端口 33333 ( -p 33333)上侦听( ) 。
  8. 将数据转储到您的计算机上

    • 从一个新的终端,做 nc localhost 33333 | pv -i 0.5 --size 54g > dm-0.raw.gz
      • 替换33333为您在上面选择的计算机端口
      • 替换dm-0.raw.gz为任意文件名
      • 替换54g为您的分区大小(见下文)
      • 此命令连接到33333本地主机(您的计算机)上的端口并转储到stdout,管道到pv,这会每半秒 ( -i 0.5)更新传输进度,估计大小为 54 gigs(--size 54g- 您可以省略此参数,但这是传输所必需的进度准确),然后进入一个名为dm-0.raw.gz