- Монтирование внутренней памяти Android как Mass Storage и восстановление данных
- Подготовка к подключению внутреннего хранилища
- Подключение внутренней памяти Android как Mass Storage Device
- Восстановление данных из подключенного внутреннего хранилища Android
- [HOWTO][GUIDE]Restore your entire data partition after updating ROM
- Breadcrumb
- ameinild
Монтирование внутренней памяти Android как Mass Storage и восстановление данных
Восстановление данных, удаленных фото и видео, документов и других элементов из внутренней памяти современных Android телефонов и планшетов стало сложной задачей, поскольку внутреннее хранилище подключается по протоколу MTP, а не Mass Storage (как флешка) и привычные программы для восстановления данных не могут найти и восстановить файлы в этом режиме.
Существующие популярные программы для восстановления данных на 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 выполните следующие шаги:
- Скачайте и распакуйте Android SDK Platform Tools в папку на вашем компьютере. Загрузка доступна на официальном сайте https://developer.android.com/studio/releases/platform-tools.html
- Откройте параметры системных переменных среды (например, начав в поиске Windows вводить «переменных», а затем в открывшемся окне свойств системы нажав «Переменные среды». Второй способ: открыть Панель управления — Система — Дополнительные параметры системы — «Переменные среды» на вкладке «Дополнительно»).
- Выберите переменную PATH (не важно, системную или пользовательскую) и нажмите «Изменить».
- В следующем окне нажмите «Создать» и укажите путь к папке с Platform Tools из 1-го шага и примените сделанные изменения.
Если вы проделываете указанные действия в Linux или MacOS, то поищите в Интернете, как в этих ОС добавить папку с Android Platform Tools в PATH.
Подключение внутренней памяти Android как Mass Storage Device
Теперь приступаем к основной части этого руководства — непосредственно подключение внутренней памяти Android как флешки к компьютеру.
- Перезагрузите ваш телефон или планшет в режиме Recovery. Обычно для этого нужно выключить телефон, затем зажать и удерживать кнопку питания и «громкость вниз» в течение некоторого времени (5-6) секунд, а после появления экрана fastboot выбрать Recovery Mode с помощью кнопок громкости и загрузиться в него, подтвердив выбор коротким нажатием кнопки питания. Для некоторых устройств способ может отличаться, но легко находится в Интернете по запросу: «модель_устройства recovery mode»
- Подключите устройство к компьютеру по USB и подождите некоторое время, пока оно не будет настроено. Если по окончании настройки в диспетчере устройств Windows устройство будет отображаться с ошибкой, найдите и установите ADB Driver именно для вашей модели устройства.
- Запустите Ubuntu Shell (в моем примере используется именно оболочка Ubuntu под Windows 10), командную строку или терминал Mac и введите adb.exe devices (Примечание: из-под Ubuntu в Windows 10 я использую adb для Windows. Можно было бы установить adb для Linux, но тогда бы он не «видел» подключенных устройств — ограничение функций подсистемы Windows для Linux).
- Если в результате выполнения команды вы видите подключенное устройство в списке — можно продолжать. Если нет — введите команду fastboot.exe devices
- Если в этом случае устройство отобразилось, значит всё подключено правильно, но рекавери не позволяет использовать команды ADB. Вероятно, придется установить кастомный рекавери (рекомендую найти TWRP для вашей модели телефона). Подробнее: Установка кастомного рекавери на Android.
- После установки кастомного рекавери, зайдите в него и повторите команду adb.exe devices — если устройство стало видным, можно продолжать.
- Введите команду 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:
- Скачиваем и распаковываем PhotoRec с официального сайта https://www.cgsecurity.org/wiki/TestDisk_Download
- Запускаем программу, для Windows и запуска программы в графическом режиме запустите файл qphotorec_win.exe (подробнее: восстановление данных в PhotoRec).
- В главном окне программы вверху выбираем устройство Linux (тот новый диск, который мы подключили). Ниже указываем папку для восстановления данных, а также выбираем тип файловой системы ext2/ext3/ext Если вам требуются файлы лишь определенного типа, рекомендую указать их вручную (кнопка «Форматы файлов»), так процесс пойдет быстрее.
- Еще раз убедитесь, что выбрана нужная файловая система (иногда переключается «сама»).
- Запустите поиск файлов (находиться они начнут на втором проходе, первый — поиск заголовков файлов). При нахождении, они автоматически будут восстановлены в указанную вами папку.
В моем эксперименте из 30 удаленных из внутренней памяти фотографий в идеальном состоянии было восстановлено 10 (лучше, чем ничего), для остальных — только миниатюры, также были найдены скриншоты png, сделанные ещё до хард-ресета. R-Studio показала примерно тот же результат.
Но, так или иначе, это не проблема способа, который работает, а проблема эффективности восстановления данных как таковой в некоторых сценариях. Так же отмечу, что DiskDigger Photo Recovery (в режиме глубокого сканирования с root) и Wondershare Dr. Fone for Android показали сильно худший результат на том же устройстве. Конечно, вы можете попробовать и любые другие средства, позволяющие восстанавливать файлы с разделов с файловой системой Linux.
По окончании процесса восстановления, извлеките подключенное USB устройство (используя соответствующие способы вашей операционной системы).
Затем можно просто перезагрузить телефон, выбрав соответствующий пункт в меню рекавери.
Источник
[HOWTO][GUIDE]Restore your entire data partition after updating ROM
Breadcrumb
ameinild
Senior Member
I decided to write this guide to describe the method I’ve found to be most useful to restore my data after I’ve updated my ROM. I’ve discovered this method through trial-and-error for myself, and I thought it could be useful for others who are looking for an easy way to transfer all your apps, settings etc. after doing a clean ROM update.
Prerequisites to use this method
- You must have root access
- You must have a custom recovery (like CWM or TWRP)
- You must have X-posed framework installed (http://forum.xda-developers.com/showthread.php?t=1574401)
- You must have this X-posed mod that disables Play Store encryption (http://www.modaco.com/topic/361776-xmod-disable-play-store-encryption-mntasec/)
Principles behind this method
The idea behind this method is to restore your entire data partition in an easy way when you’ve done a clean ROM update, so that you get the same benefit as doing a dirty flash, except you’re doing it clean instead of dirty (some custom ROMs do not support dirty flashing).
To do this, you must ensure that all your data is actually on the data partition — this is where the X-posed mod comes into play. Normally, paid apps are put in a special encrypted folder (/mnt/asec), and thus not part of the normal /data partition, and therefore also not backed up with a backup of the data partition, but instead backup up as part of the system partition (at least this is what I think, somebody correct me if I’m wrong).
With the X-posed mod mentioned above, all apps go into /data/app instead, and are thus being backed up with the data partition. This is really handy, because you then have all your user apps in one place, instead of several different folders. This again enables you to restore only your data partition, and by that restoring all your apps, settings etc.
This also means that if you previously haven’t used this X-posed mod, you have to uninstall and reinstall all your paid apps with the X-posed mod active, so that they’re installed to /data/app instead of /mnt/asec (I’ve had to do this a couple of times).
I’ve only tried this method when updating a ROM to a later version of the same ROM (like a new build of CM), but it might also work when switching between ROMs, although this is totally untested for my part (I imagine there could be some invalid system settings getting restored, but it would be worth a try if anybody is up for it).
- Disable any set-on-boot settings that could be problematic with a new ROM/Kernel (for instance Kernel settings, themes etc).
- Backup your apps and data with your backup app (Titanium or the like). This is not strictly necessary as part of the procedure, but acts as a second backup, just in case.
- Boot into your custom recovery and make a Nandroid backup of your entire phone. You should do this before every ROM update anyway, and it is especially important here, as you’re later going to restore the data partition from this backup.
- Now while in custom recovery, clean flash your new ROM update (factory reset/cache wipe first) — flash any kernel or Gapps as well.
- Boot into Android and setup Gapps (if Gapps asks to restore your phone, you can answer no — why use the time and bandwidth to download apps again, when you can use this method?). You now have a freshly installed new system with basic Gapps settings, done as you would with any other ROM update. And now comes the good part.
- Boot back into your custom recovery, and clear caches again. From backup/restore, do an advanced restore to restore only your data partition.
- Boot back into Android. You will now get the screen “Android is upgrading”, while it initializes all you previous apps.
When this is done, you should basically have your old system back with the all your previous apps and system settings, including launcher, themes etc. (X-posed mods may require an extra reboot though). Some specific system settings might have been lost in translation, but I believe it’s one of the easiest way to get all your user data back, and it’s been working like a charm for me.
You could also dirty flash if your ROM supports it, but sometimes there is an update that requires a clean flash, and then this method will give you basically the same end result.
I hope somebody besides me finds this useful, as it’s been my preferred way to restore my data between updates. In this way, I only keep my app backups as a secondary backup to the data partition. Any feedback on this method is very welcome — all I can say is that it’s been working flawlessly for me so far.
Источник