从Android复制完整的磁盘映像到计算机[复制]

r7knjye2  于 2023-01-15  发布在  Android
关注(0)|答案(3)|浏览(118)
    • 此问题在此处已有答案**:

(19个答案)
5年前关闭。
截至17小时前,社区正在审查是否重新讨论这个问题。
我有一个智能手机没有插入SD卡的可能性。我想做一个最大的分区转储(因为我丢失了文件,我想使用转储来恢复它们)。
分区为10GB。
我正在寻找一个ADB命令到pull使用dd,但什么都没有...
我尝试使用Carliv touch recovery与32GB的usb密钥由OTG,但usb密钥没有安装...然后我不能使用"dd"直接在手机上使用Aroma file manager和终端仿真。
谢谢大家!

我不明白他们为什么要通过链接一个完全不同的问题来关闭一个已经有公认答案的问题。复制文件和复制分区是两件不同的事情。

yc0p9oo0

yc0p9oo01#

正如评论中所说,adb pull /dev/block/mmcblk0 mmcblk0.img对我很有效。“DD映像”只是设备的二进制映像文件。

a14dhokn

a14dhokn2#

您希望将磁盘从Android设备复制到计算机(最好是在最快的驱动器上),以实现更快和无损的分析/恢复。
这是Windows中的简短分步指南(* Linux:向下滚动 *),使用linux工具dd来实现精确的逐位数据复制。代码see his post for more details的作者是scandium on xda

    • 先决条件**
  • 确保你的设备是**rooted并且安装了busybox**
    • 窗口**:

1.* * 安装cygwin,安装时添加netcat(Net下)和pvutil-linux下)包;标准安装位于C:\,因此请确保您事先有足够的磁盘空间;
1.* * 安装adb
,例如通过Android Studio。确保将adb.exe可执行文件添加到 * 路径变量 * 中,以便正确访问它(guide)。
1.打开两个cygwin控制台/终端(一个发送数据,一个接收数据),并在其中一个终端中输入以进入设备:

# terminal 1
    adb forward tcp:5555 tcp:5555   # forward data over tcp connection
    adb shell                       # open a connection
    su                              # gain root access
    BUSYBOX=/system/xbin/busybox    # default location for most bb installers
    
    # note: adapt the variable `BUSYBOX` to point to your install directory
    #       the TWRP default is `BUSYBOX=/sbin/busybox` (in case of bricked device)

1.确定要复制的分区,/dev/block/mmcblk0分区通常包含您通常需要的数据。
1.在以下代码中,根据4.和 * quickly * 修改分区名称,依次键入terminal 1terminal 2
x一个一个一个一个x一个一个二个x
这会将分区保存在cygwin主目录中(简单地说:它通过TCP连接发送/接收dd的输出)

    • 查看文件/分析**
  • 要在Windows中挂载分区,可以使用**(OSFmount)**。
  • 要分析这些文件,我推荐**Active@ Undelete**,但也有很多替代方案。使用该程序,您还可以直接从文件加载所有分区(无需安装,因此步骤5在本例中是多余的)。
    • GNU/Linux用户指南**:安装**netcatpv(步骤1),使用Disks**实用程序进行分析
o4tp2gmn

o4tp2gmn3#

以根用户身份运行:

adb root

使用dd将内容输出到stdout并在计算机上写入文件:

adb shell 'dd if=/dev/block/platform/msm_sdcc.1/by-name/XXXXXX 2>/dev/null' > XXXXXX.img

或全部(参见cat /proc/partitions)

adb shell 'dd if=/dev/block/mmcblk0 2>/dev/null' > mmcblk0.img

相关问题