Как вернуть внутреннюю память андроида

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

Сейчас всё больше смартфонов идут без слота для sd-card, и информацию приходится хранить на встроенной памяти с доступом к ней по MTP. Такой режим подключения не позволяет стандартными средствами восстановить данные телефона после wipe’а или случайного удаления.

Сегодня на примере связки Xiaomi Mi2s и Windows 8.1 я постараюсь рассказать, как можно восстановить утерянные данные, кому интересно, добро пожаловать под кат.

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

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

Подготовка Android-устройства

Вам понадобится root и включенная отладка по USB.

Подготовка PC

Для того, чтобы скопировать раздел системы, нам понадобится:

  • VHDtool;
  • Драйвера для вашего устройства (в случае проблем habrahabr.ru/post/205572);
  • ADB (adbdriver.com или developer.android.com);
  • Сервер FileZilla.

Сперва устанавливаем USB-драйвера для вашего устройства и ADB. После этого советую перезагрузить ПК.

VHDtool

Создаём папку с адресом C:\cygwin64\000 (имя не имеет значения, не стоит только использовать буквы отличные от латиницы), здесь будет лежать наш образ. Копируем в папку VHDtool.exe.

FileZilla

В ходе инсталяции соглашаемся на все стандартные установки.
После установки FileZilla запустится автоматом, но из программы необходимо выйти и запустить её от имени Администратора.
При запуске FileZilla спросит имя сервера, оставляем всё как есть.

Далее заходим Edit — Settings и делаем следующие настройки:

listen on those ports 40
timeout settings — по умолчанию стоит 120, 60, 60, а мы ставим везде 0 и нажимаем ОК.
Заходим в edit — users. В окошке users создаем нового юзера. В моем случае это юзер qwer.
Нажимаем Add — пишем имя — пароль pass — нажимаем ОК.

Далее в том же меню Users, слева выбираем закладку Shared folders. Заходим туда и добавляем папку в которую будет заливаться наш блок. Нажимаем Add и добавляем папку C:\cygwin64\000. В окошке появится путь к этой папке. Если слева от надписи C:\cygwin64\000 не будет буквы H, то нужно нажать Set as home dir. Затем выделив строчку C:\cygwin64\000 нужно отметить права Read и Write галочками. Затем нажать ОК.

Нам понадобятся следующие файлы:

  • adb.exe
  • AdbWinApi.dll
  • adb-windows.exe
  • AdbWinUsbApi.dll
  • fastboot.exe

Скачать их можно на тут.
Или вытащить из дистрибутива Android SDK.

Копируем их в папку C:\cygwin64\bin

Проверка работы ADB

Запускаем консоль из папки C:\cygwin64\bin, для этого достаточно вписать cmd в адресную строку проводника

Список подключенных девайсов не должен быть пуст, если после строчки List of devices attached пусто, то вы не установили USB-драйвера или не включили отладку по USB.

Когда всё идет хорошо, консоль выглядит так:

20352f2c – мой Xiaomi Mi2s

Режим модема по USB

Теперь нам необходимо узнать, какой IPv4 адрес получил ваш компьютер.
Используем команду ipconfig в командной строке
или
Идем по пути: Панель управления\Сеть и Интернет\Центр управления сетями и общим доступом

Кликаем по надписи ’Подключение по локальной сети’ далее Сведения и копируем адрес IPv4.

В моём случае это 192.168.42.79

Важно! При каждом переподключении USB кабеля и вкл/выкл режима модема IPv4 будет меняться.

Читайте также:  Загрузочная флешка android x86 rufus

Какой блок памяти нам нужен?

Вся память в вашем устройстве делится на логические блоки, нам не нужно качать все, достаточно понять, какой раздел содержит стёртую информацию.

Теперь нам необходимо посмотреть список блоков памяти, для этого вводим построчно следующие команды:

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

После чего во внутренней памяти появится файл list_of_partitions.txt, который нам необходимо скопировать на ПК и изучить.
Скопировать его можно в нашу папку 000 с помощью простой команды (выполнять её следует в отдельном окне командной строки):

Внутренней памяти в моём аппарате 32 GB. Поэтому я ищу самый большой раздел, в моём случае это mmcblk0p27 размером 25,6 GB, у вас он скорее всего будет иметь другое имя, или вообще не будет иметь приписки p**. Безусловно, никто не гарантирует что именно самый большой раздел окажется тем самым на котором еще совсем недавно лежали ваши фото, видео, документы и тд., но в 90% случаев это оказывается именно тот раздел памяти который нам нужен. В противном случае вам придется по порядку копировать все образы и проверять каждый из них.

Копируем раздел памяти на ПК.

Если вы уже закрыли окно cmd, то запускаем его снова.

Вводим команды построчно:

Не забудьте внести соответствующие корректировки в код!

qwer – имя учетной записи в FileZilla (у вас свой если меняли)
pass – пароль от учетной записи в FileZilla (у вас свой если меняли)
40 – порт сервера FileZilla
192.168.42.79 – адрес сервера FileZilla (у вас свой)
mmcblk0p27.raw – копируемый блок памяти (у вас свой)

Открываем второе окно командной строки и вводим команды:

Не забудьте исправить mmcblk0p27 на номер своего блока!

Смотрим в окно FileZilla и видим, что скачивание mmcblk0p27.raw в папку C:\cygwin64\000 началось, теперь можно закрыть окна cygwin и сделать перерыв на чай.

Конвертируем и восстанавливаем

Вернулись? Файл скачался? Отлично. Отключаем телефон, подключаем интернет. Запускаем Cygwin.bat и вводим следующие команды.

Не забудьте исправить mmcblk0p27 на номер своего блока!

У меня конвертирование заняло пару секунд. На выходе у нас получается всё тот же файл mmcblk0p27.raw в папке C:\cygwin64\000, но уже немного другой. Этот сконвертированный файл можно смонтировать как виртуальный диск, или, например через R-studio, произвести восстановление данных непосредственно из нашего образа. Я так и поступил.


Hint: важные моменты пометил желтым.

Итоги

Моей целью было популярным языком объяснить способ копирования системного раздела с android-девайса на ПК, возможно, некоторые упрекнут меня в сложностях, связанных с USB-модемом и ftp, и скажут, что наверняка можно было проще вытащить образ. Отвечу так: я пробовал другими способами, описанными на 4pda и xda-developers, у меня не вышло, зато с ftp получилось со второй попытки, а входе написания статьи всё вообще прошло как по маслу.

У меня получилось восстановить все утерянные фото без потерь в качестве и даже то, что я и не думал восстановить. В ходе восстановления обнаружились фотографии, которые делал в августе прошлого года, когда только купил телефон и тестировал камеру.

В завершении хочется также упомянуть еще одну небольшую утилиту, которая восстанавливает данные — DiskDigger undelete. Она бесплатная, неплохой функционал, но к сожалению, после 40% она у меня вывалилась с ошибкой.

Источник

Монтирование внутренней памяти Android как Mass Storage и восстановление данных

Восстановление данных, удаленных фото и видео, документов и других элементов из внутренней памяти современных Android телефонов и планшетов стало сложной задачей, поскольку внутреннее хранилище подключается по протоколу MTP, а не Mass Storage (как флешка) и привычные программы для восстановления данных не могут найти и восстановить файлы в этом режиме.

Читайте также:  Raise to wake android

Существующие популярные программы для восстановления данных на Android (см. Восстановление данных на Android) пробуют обойти это: в автоматическом режиме получить root-доступ (либо предоставляя сделать это пользователю), а затем — прямой доступ к хранилищу устройства, но это работает не для всех устройств.

Однако, существует способ вручную смонтировать (подключить) внутреннее хранилище Android как флешку (Mass Storage Device) с помощью команд ADB, а затем использовать любую программу восстановления данных, работающую с файловой системой ext4, использующуюся на этом хранилище, например, PhotoRec или R-Studio. О подключении внутреннего хранилища в режиме Mass Storage и последующем восстановлении данных из внутренней памяти Android, в том числе после сброса на заводские настройки (хард ресета) и пойдет речь в данной инструкции.

Предупреждение: описываемый способ не для начинающих. Если вы относите себя к ним, то какие-то пункты могут оказаться непонятными, а результат действий не обязательно будет ожидаемым (теоретически, можно сделать хуже). Используйте изложенное только под свою ответственность и с готовностью к тому, что что-то пойдёт не так, а ваше Android устройство больше не включится (но, если всё делать, понимая процесс и без ошибок, этого произойти не должно).

Подготовка к подключению внутреннего хранилища

Все действия, описанные ниже можно выполнить в Windows, Mac OS и Linux. В моем случае использовалась Windows 10 с установленной в ней подсистемой Windows для Linux и Ubuntu Shell из магазина приложений. Установка компонентов Linux не обязательна, все действия можно провести и в командной строке (и отличаться они не будут), но я предпочел этот вариант, так как при использовании ADB Shell в командной строке возникли проблемы с отображением спецсимволов, не влияющие на работу способа, но представляющие неудобства.

Прежде чем начать подключение внутренней памяти Android как флешки в Windows выполните следующие шаги:

  1. Скачайте и распакуйте Android SDK Platform Tools в папку на вашем компьютере. Загрузка доступна на официальном сайте https://developer.android.com/studio/releases/platform-tools.html
  2. Откройте параметры системных переменных среды (например, начав в поиске Windows вводить «переменных», а затем в открывшемся окне свойств системы нажав «Переменные среды». Второй способ: открыть Панель управления — Система — Дополнительные параметры системы — «Переменные среды» на вкладке «Дополнительно»).
  3. Выберите переменную PATH (не важно, системную или пользовательскую) и нажмите «Изменить».
  4. В следующем окне нажмите «Создать» и укажите путь к папке с Platform Tools из 1-го шага и примените сделанные изменения.

Если вы проделываете указанные действия в Linux или MacOS, то поищите в Интернете, как в этих ОС добавить папку с Android Platform Tools в PATH.

Подключение внутренней памяти Android как Mass Storage Device

Теперь приступаем к основной части этого руководства — непосредственно подключение внутренней памяти Android как флешки к компьютеру.

  1. Перезагрузите ваш телефон или планшет в режиме Recovery. Обычно для этого нужно выключить телефон, затем зажать и удерживать кнопку питания и «громкость вниз» в течение некоторого времени (5-6) секунд, а после появления экрана fastboot выбрать Recovery Mode с помощью кнопок громкости и загрузиться в него, подтвердив выбор коротким нажатием кнопки питания. Для некоторых устройств способ может отличаться, но легко находится в Интернете по запросу: «модель_устройства recovery mode»
  2. Подключите устройство к компьютеру по USB и подождите некоторое время, пока оно не будет настроено. Если по окончании настройки в диспетчере устройств Windows устройство будет отображаться с ошибкой, найдите и установите ADB Driver именно для вашей модели устройства.
  3. Запустите Ubuntu Shell (в моем примере используется именно оболочка Ubuntu под Windows 10), командную строку или терминал Mac и введите adb.exe devices (Примечание: из-под Ubuntu в Windows 10 я использую adb для Windows. Можно было бы установить adb для Linux, но тогда бы он не «видел» подключенных устройств — ограничение функций подсистемы Windows для Linux).
  4. Если в результате выполнения команды вы видите подключенное устройство в списке — можно продолжать. Если нет — введите команду fastboot.exe devices
  5. Если в этом случае устройство отобразилось, значит всё подключено правильно, но рекавери не позволяет использовать команды ADB. Вероятно, придется установить кастомный рекавери (рекомендую найти TWRP для вашей модели телефона). Подробнее: Установка кастомного рекавери на Android.
  6. После установки кастомного рекавери, зайдите в него и повторите команду adb.exe devices — если устройство стало видным, можно продолжать.
  7. Введите команду adb.exe shell и нажмите Enter.
Читайте также:  Просмотрщик ворд для андроид

В ADB Shell по порядку выполняем следующие команды.

В результате получаем имя устройства block, которое будет использовать далее (не теряем его из виду, запоминаем).

Следующей командной размонтируем раздел data на телефоне, чтобы иметь возможность подключить его как Mass Storage.

Далее находит индекс LUN нужного раздела, соответствующего Mass Storage Device

Будет отображено несколько строк, нас интересуют те, которые имеют в пути f_mass_storage, но пока мы не знаем, какая именно (обычно, заканчивающиеся на просто lun или lun0)

В следующей команде используем имя устройства из первого шага и один из путей с f_mass_storage (один из них соответствует внутренней памяти). Если будет введен неверный, вы получите сообщение об ошибке, тогда пробуем следующий.

Следующий шаг — создаем скрипт, подключающий внутреннее хранилище к основной системе (всё, что ниже — одна длинная строка).

В этот момент сессия ADB Shell будет закрыта, а к системе будет подключен новый диск («флешка»), представляющий собой внутреннюю память Android.

При этом, в случае Windows вас могут попросить отформатировать накопитель — не делайте этого (просто Windows не умеет работать с файловой системой ext3/4, но многие программы для восстановления данных умеют).

Восстановление данных из подключенного внутреннего хранилища Android

Теперь, когда внутренняя память подключена как обычный накопитель, мы можем использовать любую программу для восстановления данных, которая умеет работать с разделами Linux, например, бесплатную PhotoRec (доступную для всех распространенных ОС) или платную R-Studio.

Я пробую выполнить действия с PhotoRec:

  1. Скачиваем и распаковываем PhotoRec с официального сайта https://www.cgsecurity.org/wiki/TestDisk_Download
  2. Запускаем программу, для Windows и запуска программы в графическом режиме запустите файл qphotorec_win.exe (подробнее: восстановление данных в PhotoRec).
  3. В главном окне программы вверху выбираем устройство Linux (тот новый диск, который мы подключили). Ниже указываем папку для восстановления данных, а также выбираем тип файловой системы ext2/ext3/ext Если вам требуются файлы лишь определенного типа, рекомендую указать их вручную (кнопка «Форматы файлов»), так процесс пойдет быстрее.
  4. Еще раз убедитесь, что выбрана нужная файловая система (иногда переключается «сама»).
  5. Запустите поиск файлов (находиться они начнут на втором проходе, первый — поиск заголовков файлов). При нахождении, они автоматически будут восстановлены в указанную вами папку.

В моем эксперименте из 30 удаленных из внутренней памяти фотографий в идеальном состоянии было восстановлено 10 (лучше, чем ничего), для остальных — только миниатюры, также были найдены скриншоты png, сделанные ещё до хард-ресета. R-Studio показала примерно тот же результат.

Но, так или иначе, это не проблема способа, который работает, а проблема эффективности восстановления данных как таковой в некоторых сценариях. Так же отмечу, что DiskDigger Photo Recovery (в режиме глубокого сканирования с root) и Wondershare Dr. Fone for Android показали сильно худший результат на том же устройстве. Конечно, вы можете попробовать и любые другие средства, позволяющие восстанавливать файлы с разделов с файловой системой Linux.

По окончании процесса восстановления, извлеките подключенное USB устройство (используя соответствующие способы вашей операционной системы).

Затем можно просто перезагрузить телефон, выбрав соответствующий пункт в меню рекавери.

Источник

Оцените статью