使用dd和nc将手机内部存储直接备份到电脑


因为打算自己编译一个CyanogenMod14.1给我的Zenfone 5,要备份一下文件。但是忘了之前在哪里看到用nc和dd通过usb传输备份文件到电脑。又忘了nc怎么用,我实在太懒,就在Google上搜索现成的教程。刚好看见一个知乎提问,方法类似,多个gzip而已(安卓使用dd命令备份镜像如何加入gzip压缩参数? - 知乎)。于是我就先在这里备份一下,避免下次用到又忘了怎么用。

首先你得有adb。

然后将手机连上电脑,用adb devices确认已经连接上了,并且显示的是device而不是unauthorized什么的。

adb forward tcp:2333 tcp:2333转发端口。2333是端口号,tcp是协议。第一个是电脑上的监听端口,第二个是手机上的端口。

接着adb shell su进入shell模式并且获取得到root。

nc -p 2333 -L dd if=/dev/block/mmcblk0

(如果nc版本不同,命令的使用也不尽相同。在某些版本中,上面命令的写法是nc -p 2333 -l -e dd if=/dev/block/mmcblk0)

我这里备份的是整个mmcblk0,如果你只要其中一个分区那就先fdisk -l /dev/block/mmcblk0不过我的手机没有成功列出分区表,也许是GPT分区表的锅。你也可以通过ls /dev/block/by-name通过名字找到你的数据分区(比如说data,那命令就是nc -p 2333 -L dd if=/dev/block/by-name/data),当然也可以直接用mount命令找到你想要分区的挂载点。

至此,手机上的准备结束。

QQ20161106-1.png

电脑上也很简单。

shell里一句话nc 127.0.0.1 2333 | pv -i 1 > asus_t00f-20161106-backup.img就可以了,后面的asus_t00f-20161106-backup.img是电脑上接受备份的文件名。

然后去吃零食等传输好就可以了。

QQ20161106-2.png


协议: 本文根据 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License 进行授权。

标签: 备份


  • 这篇文章一条评论也没有……

撰写新评论

account_circle
mail
insert_link
mode_comment