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

问题描述 投票:9回答:4

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

android linux image partition dd
4个回答
5
投票

这是另一个更好的答案

要求:必须已安装adb

  1. https://www.androidfilehost.com/?fid=9390169635556426389下载不安全的boot.img到您的电脑
  2. 通过关闭电源,然后按住音量减小和电源按钮,将手机重新启动到快速启动模式。
  3. 从boot.img所在文件夹中的Linux PC输入: $ fastboot boot boot.img
  4. 要复制mmcblk0分区类型的图像: $ adb pull /dev/block/mmcblk0 mmcblk0.img

3
投票

要求:必须已安装adb

  1. https://www.androidfilehost.com/?fid=9390169635556426389下载不安全的boot.img到您的电脑
  2. 通过关闭电源,然后按住音量减小和电源按钮,将手机重新启动到快速启动模式。
  3. 从boot.img所在文件夹中的Linux PC输入: $ fastboot boot boot.img
  4. 要制作mmcblk0p23分区类型的图像: $ adb shell 'stty raw && dd if=/dev/block/mmcblk0p23' > ~/userdata.img

有用的链接:

  • 如何识别感兴趣的分区:http://forum.xda-developers.com/showthread.php?t=2450045
  • 如果未使用stty raw,则所有LF都将转换为CRLF:android.stackexchange.com/questions/69434/is-it-possible-to-cat-a-file-to-an-android-phone-and-dd-到DEV-XXX-上即时-W
  • 如何root手机和使用不安全的boot.img:www.addictivetips.com/android/root-google-nexus-4-install-clockworkmod-recovery/
  • 通过ADB shell传输二进制数据(如何使用stty raw):stackoverflow.com/questions/11689511/transferring-binary-data-over-adb-shell-ie-fast-file-transfer-using-tar

3
投票
  1. android-platform-toolsandroid-sdk安装到您的计算机上。
  2. 下载TWRP
  3. 按住音量和音量增大按钮并打开手机以启动引导加载程序屏幕。确保您的手机已插入计算机的USB端口。
  4. 通过运行fastboot boot twrp-3.1.0.0.img启动TWRP。 (无需以这种方式刷新恢复分区。)
  5. 在TWRP中,选择Advanced,然后选择Terminal,它将打开一个shell。键入mount并按[ENTER]查看分区。你正在寻找/data和可能的/sdcard坐骑。
  6. 让我们说你的/data分区映射到/dev/mmcblk0p28。只需在您的计算机上运行adb pull /dev/block/mmcblk0p28 data.img,它就会复制分区。期望此过程需要一段时间,因为它复制整个分区,无论其中存储了多少文件。

3
投票

编辑:Hongo's answer步骤较少。

  1. 安装TWRP。 在TWRP页面上选择您的设备,然后按照那里的安装说明进行操作。
  2. 启动进入恢复 您可能必须找到特定于您的设备的组合键才能对引导加载程序菜单作出反应。如果您使用fastboot(fastboot flash recovery twrp.img)刷新TWRP,那么您可以尝试fastboot reboot-bootloader,然后选择Recovery
  3. 在TWRP中安装分区 你现在应该在TWRP。从那里,选择Mount。确保您的data分区已安装。确保你的system分区已经安装,因为你需要一些驻留在那里的可执行文件。
  4. 连接adb Install 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的值通常不会加快进程速度),将其转储到stdout,然后通过管道传输到gzip压缩它,然后用管道传输到netcat,它正在端口33333(-l)上监听(-p 33333)。
  8. 转储计算机上的数据 从一个新的终端,做nc localhost 33333 | pv -i 0.5 --size 54g > dm-0.raw.gz33333替换为您在上面选择的计算机端口 用任何文件名替换dm-0.raw.gz54g替换为您的分区大小(见下文) 此命令连接到本地主机(您的计算机)上的端口33333并转储到stdout,管道到pv,它每半秒更新传输进度(-i 0.5),估计大小为54 gigs(--size 54g - 你可以省略这个参数但是传输进度必须准确),然后进入名为dm-0.raw.gz的文件
© www.soinside.com 2019 - 2024. All rights reserved.