前段时间备份手机数据的时候,只备份了TF卡内的文件,手机内置存储空间的文件忘记备份了,手机“双清”后,才想起内置空间里面还有需要的文件,折腾了一番,踩了不少坑,把数据恢复了出来,遂记录下来。
这里首先要提醒下诸位看官,若手机里面有非常重要的资料需要恢复,最好别用那些手机APP来恢复,因为你需要恢复的文件在内置存储,你若安装恢复APP的话,安装文件也是写入了内置存储的,这就会导致你前期存入手机的一部分文件永远都不能恢复,就算文件非常非常重要,你在我的帮助下造出了时光机,回到过去,你依然无法避免那些文件的丢失,时光机是因为你丢了文件才造出来的,若你没丢文件,就不会有时光机,然而既然已经造出了时光机,那你肯定会丢文件。好了,刚刚说了段绕口令,现在进入正题。
完整克隆手机的整个数据分区
所有的用户数据都被挂载到手机的/data分区,想要完整克隆这个分区,我们得拿到root的权限登录到手机,然而国内的Android生态有点乱,我不喜欢root手机,所以我刷了一个TWRP3.0进去,手机进入Recovery模式后,adb登录就能拿到root权限。而且TWRP3.0自带busybox,这个busybox有很多工具,其中就有nc
adb登录手机
在windows平台登录手机,得在电脑上安装手机驱动,Ubuntu内置了驱动,所以我选择在Ubuntu端登陆手机。诸位可自行百度“adb 你的手机型号”来搜索windows平台如果登录手机。
➤手机进入Recovery模式
➤apt-get install android-tools-adb -y安装adb套件
此时,输入 adb devices ,正常的话,应该如下显示
前面的ZX1C323ZJF是手机序号,后面的recovery,表示当前手机在recovery模式,手机与Ubuntu正常连接。
此时,直接输入adb shell就能登陆到手机,我们执行 mount 命令看下手机分区挂载情况。
我们能看到data分区挂载的是/dev/block/mmcblk0p42磁盘。这个磁盘的文件系统是f2fs,大小是5G左右,手机插一张大于5G的TF卡进去(TF卡文件系统用ext3)。
dd if=/dev/block/mmcblk0p42 of=/sdcard1/lucky.img
执行上面的命令,把整个data区完整克隆到tf卡,这条命令耗时有点长,取决于你的tf卡的写入速度和手机CPU的性能。
拿到完整克隆后,我试过在Ubuntu下用extundelete、testdisk等工具来恢复数据,都提示找不到超级块。无奈只能转windows平台。
Windows下恢复手机数据
上文提到,data分区的文件系统是f2fs,然后我在这个网页http://www.uneraser.com/download.htm 的右下角看到,其提供的软件能读取f2fs,所以就用UNERASER来恢复数据了。把TF卡上的lucky.img拷贝到windows上,然后下载安装UNERASER。
打开UNERASER软件后,按 ctrl + O,打开lucky.img,镜像类型选择 Raw
打开后在软件窗口左侧的RAW Data上右击,选择SuperScan
然后按着我框选的方式进行扫描设定
因为是我点名要恢复png文件,所以选了 Select Signatures,诸位可根据自己需求选择ALL,恢复所有文件。
成功恢复文件
此次能成功恢复数据的前提是存储png文件的那些区块没有被新文件复写,具体可看看这篇
既然手机数据能这么简单的被恢复,那么我们出手换下来的旧手机的时候,怎么保证个人隐私安全呢?很简单,手机恢复出厂后,往手机里面塞电影,塞满,塞得连一个逗号都挤不下。
参考了以下文章,用鼠标刮开:
http://www.intohard.com/article-219-1.html
原创文章,转载请注明: 转载自笛声