很多人都有在使用手机时误删数据的经历,比方说和女朋友分手后把之前一起玩耍的影像资料删除了,结果没过几天又复合了,某天女朋友想和你一起回忆某个温馨时刻,这时候拿不出照片或视频来会非常尴尬。为了避免这类人(Xi)间(Wen)惨(Le)剧(Jian)发生,很有必要掌握一下数据恢复技术。

传统的数据恢复往往借助软件即可完成,例如Easy Recovery,Recuva之类。但这类软件对新的安卓系统手机往往无能为力了,因为从几年前开始,大部分手机生产厂商用“媒体设备”MTP模式替代了大容量USB存储模式,而传统数据恢复软件无法直接对MTP模式加载的手机存储空间进行数据恢复,如图所示。

因此有必要研究适合于目前安卓系统手机的数据恢复方法,本文中主要讨论手机内部存储空间的数据恢复,对于手机TF卡的数据恢复采用传统手段即可完成,本文不再讨论。

目前手机数据恢复的常见方法有三种:

第一种方法:

物理拆解芯片进行数据恢复。通过拆解并取出存储芯片后,借助硬件工具读取芯片的数据后进行数据恢复。这种方法的优点在于不会对存储芯片写入新的数据,能够较好的保护数据的原始状态。缺点也显而易见,这种方法对工具和动手能力要求较高,稍有不慎手机和芯片都有报废风险,普通用户较难独立完成这类操作。

第二种方法:

借助安装在PC端的第三方工具进行数据恢复。目前网络上名气较大的安卓数据恢复工具主要有Wondershare Dr.Fone,Tenorshare-android-data-recovery,7-Data Recovery Suite 等软件,但这类软件普遍存在的问题是,常常无法与手机建立连接,或者在连接后扫描时提示失败,可能是由于安卓系列手机系统定制化程度较高,每家手机制造商都对安卓系统做了或多或少修改的缘故,导致实际效果并不理想,相信很多朋友在用这类软件时也遇到了类似的问题。

第三种方法:

借助安装在手机上的安卓APP进行数据恢复。由于APP直接运行在手机上,因此不存在第二种方法中软件与手机连接失败的问题,这类软件恢复的效果好坏很大程度上取决于软件开发人员使用的数据恢复算法能力的优劣。这类软件有很多,以某数字清理大师为例,某数字清理大师的隐私粉碎功能能够扫描到用户之前删除的部分类型文件,并确实能够对这类文件进行恢复。但其缺点也有很多,主要有四点:一是能够恢复的文件类型有限,主要是针对照片、短信、通话记录等;二是照片时只能一张一张点开恢复,无法批量恢复,操作繁琐;三是数据恢复算法不够强,与传统数据恢复工具如R-Studio和EasyRecovery相比存在不小差距;四是数据只能恢复到手机内部存储空间中,无法选择恢复到SD卡,因此手机原数据存在被新恢复数据覆盖的风险。当然,这些缺点可能与这款软件的定位是隐私粉碎而非隐私恢复相关,这些缺点在很多同类软件上也同样存在,特别是数据恢复能力方面很多软件在这方面功能实在是过于孱弱,第三种方法由于存在诸多弊端同样不能让人满意。

0×01 正确恢复安卓手机数据的姿势

那么到底有没有效果更加理想的数据恢复方法,答案是肯定的。其实以上方法中最大的问题在于,这类软件要么根本不能用,要么恢复能力太弱。如果能借助传统的数据恢复工具的强大算法,那么这类问题自然迎刃而解。下面介绍一种解决方案,能够在很大程度上解决以上方法中的瓶颈。本文中以Nubia Z9 Max NX510J为例进行说明,步骤比较详细以便尽可能照顾不同水平的读者。

第一步,对手机进行Root,Root前需要进入开发者模式并打开USB调试模式。这是最基本的要求,具体如何Root与手机的型号有关,如果实在不会就找身边的异性IT达人帮忙吧。

第二步,在手机中安装BusyBox。建议从Google官方下载,梯子自备,文章中用到的工具会在结尾处提供,懒人自取。BusyBox安装时可选择路径,假设安装在[/system/bin/busybox]。

第三步,将手机与电脑连接。连接后需要安装相应驱动,可借助豌豆荚等工具进行安装。另外需要准备好adb调试工具(adb.exe等文件),可从Android SDK官网下载,Root工具包中一般也会提供。

第四步,电脑中安装32位版本的Cygwin[C:\cygwin],并下载nc.exe和pv.exe,将这两个文件和之前准备好的adb.exe,AdbWinUsbApi.dll,AdbWinUsbApi.dll复制到[C:\cygwin\bin\]目录下。

第五步,运行[C:\cygwin\Cygwin.bat],依次输入下图中的命令,输入后窗口保持打开不要关闭:

adb forward tcp:5555 tcp:5555
adb shell
su
/system/bin/busybox nc -l -p 5555 -e /system/bin/busybox dd if=/dev/block/mmcblk0

第六步,再运行一次[C:\cygwin\Cygwin.bat]打开另一个窗口,依次输入如下命令:

adb forward tcp:5555 tcp:5555
cd /
nc 127.0.0.1 5555 | pv -i 0.5 > mmcblk0.raw

这时窗口上应该会出现如图所示的进度

耐心等待完成后,[C:\cygwin]目录下会出现mmcblk0.raw文件,文件大小等于手机内部存储空间的大小,该文件正是手机内部存储空间的镜像文件。

第七步,打开一款传统的数据恢复工具,由于raw文件是linux文件系统格式,因此需要支持这类系统的软件,经过实际使用测试发现,R-Studio和Easy Recovery均能较好识别这类文件格式,笔者更偏爱R-Studio,因此以这款软件为例。加载刚刚生成的mmcblk0.raw镜像,如图所示。

对镜像中的userdata部分进行扫描,扫描后即可找到被误删除的各类数据,女朋友终于保住了:)

使用这种方法,可以充分利用现有成熟数据恢复软件的恢复技术,大大提高安卓手机数据恢复的成功率。实际测试发现,通过这种方法找回的照片,数量上远远超过市面上各类手机数据恢复软件恢复的照片。国外已经有人写过类似教程,但可能由于对数据恢复软件不够熟悉,在提取镜像后又做了很多画蛇添足的处理,比如利用VhdTool.exe对镜像进行各种后期处理,不仅增加了步骤的繁琐程度,可能还会起到误导作用。

0×02 更多的思考

 

本文的核心在于对安卓手机镜像的提取,提取出镜像后能做的东西还有很多,比如通过分析wpa_supplicant.conf能够得出某人常去的地方等等。通过本文可以看出,如果淘汰的手机只是简单删除某些敏感文件后就直接交给一些第三方回收机构会存在多么大的风险,网上那么多小视频你觉得是怎么流出来的。如果缺乏对手机信息安全的基本保护意识,那就要承担可能面临的后果,有些后果可能会严重到付出高昂的代价。

android数据恢复的更多相关文章

  1. android Activity生命周期(设备旋转、数据恢复等)与启动模式

    1.Activity生命周期     接下来将介绍 Android Activity(四大组件之一) 的生命周期, 包含运行.暂停和停止三种状态,onCreate.onStart.onResume.o ...

  2. Android Data Recovery for Mac(安卓数据恢复软件)破解版安装

    1.软件简介    Android Data Recovery 是 macOS 系统上一款 Android 设备数据恢复软件,能够帮助我们在 mac 电脑上对 Android 设备进行数据恢复,文档. ...

  3. android UI 仿 win 8 模块化 标题,并实现 可长按拖动交换图片位置、可点击,且伴随动画特效

    转载请声明出处,谢谢!http://www.cnblogs.com/linguanh/ 先上效果图,给大家个直观效果,后上实现代码:  ->  ->->  ok,现在简单说下我上面的 ...

  4. android ORM框架ORMLite封装

    源码:http://download.csdn.net/detail/a924571572/9415506 一.框架效率对比 由于目前公司里面android端数据的数据量基本在千条以内,所以选择了更为 ...

  5. Android中突发情况Activity数据的保存和恢复

    Android中突发情况Activity数据的保存和恢复 写在前面:在我们的APP使用的过程中,总有可能出现各种手滑.被压在后台.甚至突然被杀死的情况.所以对APP中一些临时数据或关键持久型数据,就需 ...

  6. Android下写一个永远不会被KILL掉的进程/服务

    Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用.当系统觉得当前的资源非常有限的时候,为了保证一些优先级高的程序能运行,就会杀掉一些 ...

  7. Android学习之Image操作及时间日期选择器

    一.基础学习 1.ImageView是图片容器,就相当于RadioGroup是RadioButton的容器一样,是View的直接子类. 1: <ImageView 2: android:id=& ...

  8. 【转】Android应用开发allowBackup敏感信息泄露的一点反思

    转载:http://blog.csdn.net/yanbober/article/details/46417531 1 背景 其实这篇文章可能有些小题大作,但回过头想想还是很有必要的,有点阴沟里翻船的 ...

  9. Android 性能优化——内存篇

    一.android官方一些内存方面的内存tips 1.避免创建不必要的对象. 如尽量避免字符串的加号拼接,可以使用StringBuilder来拼接. 如果需要TextView设置多个字符串片段,可以使 ...

随机推荐

  1. HTTP管线化技术--ajax请求

    1.管线化技术——客户端可以发送多次请求到服务端,而不需要等待上一次请求得到响应的时候才能进行下一次请求.实现并行发送请求 2.ajax——实现网页异步刷新 问题:当用户进行多次ajax请求的时候,并 ...

  2. TocControl控件图层无法显示问题

    在窗口里的层层嵌套SplitContainer后,出现最内层SplitContainer内部TocControl控件图层无法显示问题:加载完mxd后代后加上axTOCControl1.SetBuddy ...

  3. Hive 指定分隔符,将表导出到本地

    hive表的数据源有四种: hbase hdfs 本地 其他hive表 而hive表本身有两种: 内部表和外部表. 而hbase的数据在hive中,可以建立对应的外部表(参看hive和hbase整合) ...

  4. 常用音频软件:Wavesufer

    作者:桂. 时间:2017-06-02  10:23:39 链接:http://www.cnblogs.com/xingshansi/p/6932408.html 前言 只列举两个自己用过的(wave ...

  5. unity5,UI Button too small on device than in Game View解决办法

    假设测试设备为iphone5(横屏).下面说明如何使真机上ui显示效果与Game View中一致. 1,首先Game View左上角屏幕规格选 iPhone 5 Wide (16:9),如图: 2,在 ...

  6. UIImageView的一些用法

    转自:http://blog.sina.com.cn/s/blog_60e2dbcf01014bfm.html //初始化 UIImageView  *imageView=[[UIImageView ...

  7. Sphider + SCWS 打造完美PHP中文搜索引擎

    今日需要为几个网站做个全文搜索引擎,找了几个PHP开源项目,先试了一下Sphinx ,可惜是基于数据库的,相当于数据库搜索的扩展.Sphider还不错,不过中文的分词不行,基本只能靠空格和符号进行分词 ...

  8. iOS开发之使用AFN上传图片

    //1.创建管理者对象 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializ ...

  9. lodop简单入门教程

    lodop简单入门 1 安装(这个不介绍,下载安装即可) 声明只能装windows,linux不能装,所以linux 服务器要使用直接使用http://localhost:8000/CLodopfun ...

  10. 使用C语言实现一个虚拟机

    使用C语言实现一个虚拟机 2015-6-22 21:32| 发布者: joejoe0332| 查看: 2891| 评论: 0|原作者: leoxu, Serval, 社会主义好, lostTemple ...