很多人以为数据恢复只是用工具扫描一下就行了,这是非常错误的想法。要做好一件事,不只是机械地重复固有的动作,还需要个人的思考。比如,你真的知道如何从安卓手机中恢复数据吗?
0x00 背景
很多人在使用手机时都有过不小心删除数据的经历。比如,和女朋友分手后,你删除了你们一起玩耍的视频。几天后,你们又复合了。有一天,你的女朋友想回忆和你在一起的温馨时刻,这时候如果不能把照片或视频拿出来,那就很尴尬了。
为了避免这种人间悲剧的发生,掌握数据恢复技术非常必要。
传统的数据恢复往往可以借助软件来完成,例如Easy Recovery,Recuva等。
但这类软件对于新款Android手机往往无能为力,因为从几年前开始,大部分手机厂商都将大容量USB存储模式替换成了“媒体设备”MTP模式,而传统的数据恢复软件无法直接从加载了MTP模式的手机存储空间中恢复数据,如图所示。
因此有必要研究适合当前Android手机的数据恢复方法,本文主要讨论手机内部存储空间的数据恢复,手机TF卡中的数据恢复可以通过传统手段完成,本文不再赘述。
目前手机数据恢复常见的方法有三种:
第一种方法:
物理拆解芯片进行数据恢复。拆解取下存储芯片后,使用硬件工具读取芯片上的数据,然后恢复数据。这种方式的好处是不会往存储芯片写入新的数据,能较好地保护数据的原始状态。缺点也很明显,这种方式对工具和动手能力要求较高,一不小心手机和芯片就有报废的风险,普通用户很难独立完成这类操作。
第二种方法:
借助安装在PC上的第三方工具恢复数据。目前,互联网上最流行的Android数据恢复工具包括Wondershare Dr.Fone,Tenorshare-android-data-recovery,7-Data Recovery Suite等软件。
但这类软件常见的一个问题就是经常无法与手机建立连接,或者连接后提示扫描失败。这可能是因为Android系列手机系统定制性很强,各手机厂商对Android系统都做了或多或少的修改,导致实际使用效果不理想。相信很多朋友在使用这类软件时都遇到过类似的问题。
第三种方法:
数据恢复是借助手机上安装的安卓APP进行的,由于APP直接在手机上运行易我数据恢复软件教程,所以不存在第二种方法中软件无法连接到手机的问题。这类软件恢复的效果很大程度上取决于软件开发商使用的数据恢复算法的好坏。这类软件有很多,比如某数码清理大师的隐私粉碎功能,可以扫描用户之前删除的某些类型的文件,确实可以恢复这类文件。
但是其也存在不少不足,主要有四点:第一,能够恢复的文件类型有限,主要为照片、短信、通话记录等;第二,照片只能一张一张恢复,不能批量恢复,操作繁琐;第三,数据恢复算法不够强,与R-Studio、EasyRecovery等传统数据恢复工具相比有很大差距;第四,数据只能恢复到手机内部存储空间易我数据恢复软件教程,没有恢复到SD卡的选项,因此手机原有数据存在被新恢复的数据覆盖的风险。
当然这些缺点可能和这款软件的定位是隐私粉碎而不是隐私恢复有关,这些缺点在很多同类软件中也存在,特别是在数据恢复能力方面,很多软件在这方面太弱了,第三种方法也因为缺点太多而不能令人满意。
0x01 Android手机恢复数据的正确方法
那么有没有更有效的数据恢复方法呢?答案是有的。其实上述方法最大的问题就是这类软件要么根本不能用,要么恢复能力太弱。如果能借助传统数据恢复工具的强大算法,那么这样的问题自然迎刃而解。下面就是一个可以很大程度上解决上述方法中瓶颈的解决方案。
本文以努比亚Z9 Max NX510J为例,操作步骤比较详细,尽量满足不同层次读者的需要。
第一步就是root手机,root前需要进入开发者模式,开启USB调试模式,这个是最基本的要求,具体root方法根据手机型号而定,如果实在不会root,可以向身边的异性IT达人求助。
第二步,在手机上安装BusyBox,建议从Google官网下载,文章用到的工具会在最后提供,安装BusyBox时路径可以选择,假设安装在[/system/bin/busybox]。
第三步,将手机连接到电脑,连接好之后需要安装相应的驱动,可以借助豌豆荚等工具进行安装。另外需要准备adb调试工具(adb.exe等文件),可以在Android SDK官网下载,一般在Root工具包里有提供。
步骤4、在电脑上安装32位版本的Cygwin [C:\cygwin],下载nc.exe和pv.exe,将这两个文件和之前准备好的adb.exe、AdbWinUsbApi.dll、AdbWinUsbApi.dll复制到[C:\cygwin\bin\]目录下。
步骤5、运行【C:\cygwin\Cygwin.bat】,依次输入下图中的命令,输入完之后保持窗口打开,不要关闭:
adb 转发 tcp:5555 tcp:5555
adb shell
苏
/系统/bin/busybox nc -l -p 5555 -e /系统/bin/busybox dd if=/dev/block/mmcblk0
第六步、再次运行[C:\cygwin\Cygwin.bat],打开另一个窗口,依次输入以下命令:
adb 转发 tcp:5555 tcp:5555
光盘 /
nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw
此时窗口上应该出现如图所示的进度条。
耐心等待后会在[C:\cygwin]目录下出现mmcblk0.raw文件,文件大小等于手机内部存储空间大小,此文件为手机内部存储空间的镜像文件。
第七步,打开传统的数据恢复工具。由于原始文件是Linux文件系统格式,因此需要支持该系统的软件。经过实际使用测试,发现R-Studio和Easy Recovery都可以很好地识别此类文件格式。笔者比较喜欢R-Studio,因此以该软件为例。
加载刚刚生成的mmcblk0.raw图像,如图所示。
扫描一下镜像中的 userdata 部分,可以发现各种被误删除的数据,我的女朋友终于有救了:)
利用此方法可以充分利用现有成熟数据恢复软件的恢复技术,大大提高Android手机数据恢复的成功率。实际测试发现,通过此方法恢复的照片数量远远超过市面上各类手机数据恢复软件恢复的照片数量。
国外曾经有人写过类似的教程,但或许是因为对数据恢复软件不够熟悉,在提取镜像后做了很多不必要的处理,比如使用VhdTool.exe对镜像进行各种后处理,这样不仅增加了步骤的复杂度,还可能造成误导。