华为手机MATE10所有分区备份与数据恢复方法
作者:爱吃干锅牛肉的喵
时间2020-3-23
前言:
前段时间笔者手机的root权限出问题,误操作重破解ROOT权限导致数据全部wipe并且系统也坏了。没办法重刷机。因为重新刷机,分区表结构都变了。以及用户分区文件系统是F2FS,很多数据恢复PC软件无法识别。在此提醒各位系统操作风险较大,没事别瞎JB折腾,否则后果自负。全盘恢复有一个好处就是连/DATA分区也备份了。应用数据包含在内。
以下回顾一下全盘完整备份的方法,备用。
(1)
手机需要解锁,解锁会清空所有数据,必须提前备份。
(2)
手机需要root,同时会清空所有数据,必须提前备份。
(3)
电脑准备adb调试,手机打开开发者USB调试,方法在设置-系统-关于手机连点N下版本号提示已处于开发者模式说明打开。
(4)
进入设置-系统-开发人员选项打开USB调试|仅充电模式下允许ADB调试|关闭监控ADB安装应用(可选)
(5)
电脑安装ADB工具包和CYGWIN的NC工具包或虚拟机安装LINUX(虚拟机安装系统方法不详细开展)
(6)
手机经过ROOT安装BUSYBOX并将BUSYBOX安装到/system/bin
(7)
命令部分:
电脑打开CMD,进入ADB文件夹执行
adb forward tcp:[端口号去掉中括号] tcp:[端口号去掉中括号]#安卓手机到电脑的端口映射
前一个端口是PC本地 后一个端口是安卓远程
adb shell #进入安卓命令行
su #取root权限
cat /proc/partitions #查看安卓分区表
观察结果得知
major minor #blocks name
设备 分区编号 数据块 分区卷标
数据块最大那个就是整个分区表内容。
例如华为MATE10的
8 48 62464000 sdd
SDD就是,本人手机是64G闪存的。
(8)
ADB中执行命令
/system/bin/busybox nc -l -p [端口号去掉中括号] -e /system/bin/busybox dd if=[/dev/block/全盘分区挂载点]
这里填写forward后面那个端口
第三方recovery也适用。 可以不用root自己真实系统。recovery自带root权限。鉴于安卓7以后的系统分区默认加密。可能克隆出来的内容是加密的。如果之前有解密可以直接使用。否则需要另行解密。
全盘分区挂载点可以通过刚刚执行的命令cat /proc/partitions查看到
例如我的手机是 /dev/block/sdd
(9-1)
打开CYGWIN,要在windows中提前安装好cygwin
#cygwin的路径自己配置,百度上找配置方法,并安装好NC;
(9-2)
安装一个虚拟机LINUX系统并配置好NC;ADB;百度上找配制配置方法;
二选一
(10-1)
输入“export PATH=”/cygdrive/c/ab”:$PATH”回车。
输入“adb forward tcp:[端口号去掉中括号] tcp:[端口号去掉中括号]”回车。
输入“nc 127.0.0.1 [端口号去掉中括号] > 镜像文件名.img”回车。
漫长的等待
(10-2)
启动虚拟机系统,打开终端执行nc 127.0.0.1 [端口号去掉中括号] > /挂载点/镜像文件名.img
漫长的等待
使用U盘|移动硬盘|网络共享等把镜像复制到物理主机
(11)打开R-STUDIO 这个可以识别镜像内各个分区,使用无格式|raw扫描
Active@ UNERASER;diskgenius;easyrecovery等PC数据恢复软件均可
再次漫长等待。
提取文件
此方法同样适用于系统备份还原,等于windows的ghost克隆系统。
还原方法为逆操作 打开一个CYGWIN或linux虚拟机终端
输入命令
nc -l -p [端口号去掉中括号] -e dd if=/挂载点/镜像文件名.img
再次打开一个CYGWIN或linux虚拟机终端
adb forward tcp:[端口号去掉中括号] tcp:[端口号去掉中括号]#安卓手机到电脑的端口映射
adb shell #进入安卓命令行
su #取root权限
127.0.0.1 [端口号去掉中括号] > /dev/block/全盘分区挂载点
参考资料网站
教程:手机数据恢复 教你恢复安卓设备内置存储中已删除的文件
http://www.intohard.com/article-218-1.html
linux使用dd命令拷贝和恢复镜像
https://blog.csdn.net/robothj/article/details/79776050
本人比较懒,不截图了。如有不明白的,欢迎评论讨论,小白瞎折腾,各路大神勿喷。
补充一则样例。在荣耀8X上使用成功。