Восстановление удаленных файлов из внутренней памяти Android устройства

Сегодня мы поговорим о восстановлении удаленных данных из внутренней памяти смартфона.

Важно: нужен root и активирована отладка по usb.

Суть состоит в том, что любые файлы с жесткого диска (флешки) можно восстановить с помощью различных программ (R-studio, HandyRecovery, Recuva и т.д.) даже если они были удалены.

Но, есть одно но. Для совершения данного действия необходимо, что бы эти программы могли определить носитель информации, с которого будет производится восстановление как жесткий диск или флешку, так как при штатном подключении устройства к ПК он определяется как «Портативное устройство brandname» или тому подобное.

Проще говоря, внутренняя память телефона скрыта от программ по восстановлению данных.

Так вот, что бы можно было работать с внутренней памятью, её необходимо преобразовать в обычный раздел жесткого диска.

Просто так, это сделать не получится, поэтому необходимо скопировать с устройства на компьютер определенный блок памяти и потом преобразовать его в нужный формат.

Для выполнения работ нам понадобиться:

1. Устройство с которым будут проводиться манипуляции.

2. USB data кабель.

3. Компьютер под управлением ОС Windows(желательно не ниже "7ки").

4. Пиво(опционально).

Инструкция:

1. В настройках устройства в вкладке " Настройки=> Специальные возможности =>Для разработчиков " активируем отладку по USB. Устанавливаем на компьютер ADB driver.

2.Установливаем на устройство ROOT-права (как это сделать, можно прочитать на 4pda.ru в профильной теме своего устройства) ), а также ClockworkMod recovery, оно же CWM. Как это сделать, читаем на 4pda, для каждого устройства требования и инструкции свои.

3.Установливаем из Play Маркета программу BusyBox ( https://play.google.com/store/apps/details?...ericson.busybox ). Выполняем вход в эту программу, предоставляем ей права супер-юзера и нажать install. При этом важно, чтобы install был произведен в каталог system\bin, он указана по умолчанию, примерно по середине экрана программы.

4. Устанавливаем на ПК Cygwin (софтина позволяет применять команды Linux в среде WINDOWS) http://www.cygwin.com/ . Заходим на сайт и нажимаем на ссылку setup.exe, после этого начнется скачивание. Запускаем установку, выбираем install from internet. Папку установки C:\cygwin. Далее выбираем папку (можно любую), в которую во время установки будут скачены составляющие пакеты cygwin. Далее нажимаем Direct Connection. Дальше выбираем сайт с которого будут качаться пакеты(там пофиг). Далее появляется сам список пакетов, в котором надо обязательно выбрать следующие пункты:

- в пункте Devel все подпункты название которых начинается с букв gcc (они идут подряд)

- в пункте Debug подпункт pv-debugininfo

- в пункте Utils подпункт pv

5.Скачиваем дополнение для Cygwin, которое называется Netcat http://www.daemon.de/Netcat. Скачивать нужно zip-архив. После его распаковки все файлы перенести в каталог C:\cygwin. Главное, что бы находящийся в архиве, в папке bin, файл nc.exe скопировался в папку C:\cygwin\bin. Остальные файлы, лежащие в корне архива, как я понял, можно просто скопировать в папку C:\cygwin (возможно они вообще не нужны).

6.Дальше скачиваем ADB. Распаковываем архив и копируем все файлы из него в папку C:\cygwin\bin

7.В папке C:\cygwin создаем папку с любым названием. Например назовем ее "MyPhone"

8.Скачиваем файл VHDtool.exe (это программа, которая из скопированного с планшета блока сделает формат, который в последствии будет монтироваться как виртуальный диск и использоваться программами восстановления файлов). Копируем его в папку C:\cygwin\MyPhone.

9. Теперь надо понять какой именно блок надо скопировать на компьютер, поскольку во внутренней памяти планшета их несколько (у меня 11) и каждый из них содержит какой-то кусок информации, если нас интересуют фотки, видео и тд, то надо знать блок, который содержит соответствующую информацию. Дабы понять какой блок чего содержит, почитайте вот этот тредик: http://forum.xda-developers.com/showthread.php?p=28115791 (нужно немного знать английский) , но можно не париться, и просто выбирать самый большой блок. Узнать размер блока можно следующим образом:

- Пуск-Выполнить-CMD.EXE.

- С помощью команд «cd» (ввойти в каталог) и «cd..» (выйти из каталога) заходим в каталог C:\cygwin\bin, что бы запустить adb

- Далее построчно вводим команды:

adb shell
su
find /dev/block/platform/ -name 'mmc*' -exec fdisk -l {} \; > /sdcard/list_of_gnex_partitions.txt

Содержание данного файла будет примерно такое:

Disk /dev/block/platform/sdhci-tegra.3/mmcblk0p10: 314 MB, 314572800 bytes
4 heads, 16 sectors/track, 9600 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

Примерно так. Понятное дело, что размер блока может быть отличимым, это норма.

10. Выключаем устройство и входим в режим CWM. Заходим в пункт "Mounts and Storage" и нажатием кнопки mount, следующие разделы: /system и /data.

11. Заходим в папку 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

Возможно где: system/bin/ придется вводить system/xbin/, имейте это пожалуйста ввиду.

12. И снова мы заходим в папку C:\cygwin и опять запускаем файл Cygwin.bat. Появиться еще одно окно. Туда построчно вводим вот такой код:

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

После ввода данных команд, у нас начнется монтирование образа этого блока в формате *.raw . Примерно на это уйдет 30-40 минут, здесь нам пригодиться заранее припасенное пиво :). Визуально в окне командной строки мы будем созерцать вот такое кинцо:

По окончании в папке C:\cygwin\myphone появится файл mmcblk0.raw. Он должен быть примерно такого размера как и сам блок. На данном этапе, устройство можно отсоединить от компьютера. Далее будем работать над бэкапом блока.

13. Закрываем оба окна с запущенный батником Cygwin.bat. Заходим в папку C:\cygwin и еще раз запускаем файл Cygwin.bat и преобразовываем только что скопированный блок с помощью программы VhdTool. Для этого прописываем в консольку:

VhdTool.exe /convert mmcblk0.raw
в итоге(минуты через 3-4) должно появиться сообщение: Status: Complete. При этом само название файла не изменится. Файл так и будет называться mmcblk0.raw, но из-за его модификации, мы сможем подсоединить его к компьютеру как виртуальный диск.

Делаем на всякий случай копию, копий много не бывает.

14. Нажимаем правой кнопкой мышки на иконку мой компьютер, выбираем пункт Управление. В появившемся окне, слева, переходим в раздел Запоминающие устройства, а далее переходим в Управление дисками. В верхнем меню выбираем пункт Действие и выбираем Присоединить виртуальный жесткий диск. В появившемся окне, в пункте тип файла (где написано Файлы виртуального диска (*.vhd)), выбираем Все файлы. После чего выбираем файл, который мы стащили с планшета, то есть mmcblk0.raw.

15. После этого, в нижней части окна появится новый диск. Справа от этой надписи будет написано Не распределен. Нажимаем правой кнопкой мыши на название нашего диска и выбираем пункт Инициализировать диск. Далее ставим галочку на пункте Таблица с GUID разделом.

16. Нажимаем правой кнопкой мыши на надпись Не распределен и выбираем пункт Создать простой том…В следующих окнах присвоим тому буквенное наименование и отказываемся от форматирования, сняв соответствующую галочку.

17. После нажатия кнопки в Готово в системе появится новый Локальный диск (буква которую присвоили) и сразу же выскочит окно, предлагающее вновь его отформатировать. Соглашаемся на данное предложение и форматируем диск, при этом указывая файловую систему Fat32, стандартный размер кластера и обязательно поставив галочку на пункте Быстрое форматирование.

18. Всё, теперь диск готов к работе с программами по восстановлению данных. Для восстановления можно использовать PhotoRec(консольную утилиту, довольно неплохая) или же иные аналоги(Recuva, R-Studio).

Надеюсь было интересно и полезно, хорошего всем дня.