2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Не все потеряно: как восстановить файлы на смартфоне

Содержание

Не все потеряно: как восстановить файлы на смартфоне

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

Нам понадобится adb (Android Debug Bridge) — утилита для взаимодействия с Android-устройством. Её можно загрузить в составе пакета Platform Tools с официального сайта Android. Инструкция рассчитана на Windows, те же советы актуальны и для macOS или Linux.

Для начала надо установить BusyBox, необходимый для таких спецопераций. Установив программу, разрешите root-доступ и нажмите Install. Кроме этого понадобятся recovery, TWRP или ClockworkMod. Закончив приготовительные роботы, можно перейти к восстановлению.

Шаг 1. Подготовка adb. Разархивируйте Platform Tools, после чего откройте командную строку Windows. Нужный пункт найдете в меню «Файл» на Windows 10 или в контекстном меню. Для запуска консольной программы (такой как adb) из командной строки Windows достаточно ввести её название (adb). При использоании PowerShell, для запуска приложения потребуется указать к нему относительный путь, например, .adb.

Украинцы массово умирают в собственных домах, врачи разводят руками: «Не дождались»

На Прикарпатье охотничьи псы разорвали пятерых беззащитных малышей, страшное зрелище

Отказался от гражданской панихиды, сам нес гроб на плечах: Бондарчук странно повел себя на похоронах матери

Маленькие дети несколько дней жили с трупами родителей: «Папа почему-то весь почернел»

Шаг 2. Загрузка смартфона в режиме recovery. Перезагрузите смартфон или планшет в режим recovery. Для этого наберите в консоли следующую команду:

adb reboot recovery

После того как вы увидите меню recovery на экране гаджета, наберите в консоли команду

Шаг 3. Поиск нужного раздела. Первое, что нужно сделать — узнать, какой именно блок внутреннего накопителя примонтирован к разделу с пользовательскими данными /data. Для этого введите в консоль команду

mount | grep /data

В нашем случае мы получили строку

/dev/block/mmcblk0p22 on /data type ext4 (rw,seclabel,relatime,resuid=10010,data=ordered)

Отсюда видно, что нужный раздел, откуда были удалены данные, находится по пути /dev/block/mmcblk0p22. Его нужно скопировать себе в блокнот.

Шаг 4. Изменение конфигурационного файла. Чтобы иметь возможность примонтировать внутреннюю память смартфона к ПК в режиме mass storage, необходимо внести некоторые изменения в конфигурационный файл на смартфон.

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

find /sys -name lun*

В нашем случае вывод команды получился следующим:

Нас интересует путь, по которому находится директория f_mass_storage.

Теперь следует выполнить в консоли следующую команду:

echo путь_к_разделу > расположение_конфигурационного_файла/file

Обратите внимание, что добавление пути к разделу осуществляется в файл с именем file, который находится по адресу, полученному предыдущей командой. Нам пришлось ввести команду

echo /dev/block/mmcblk0p22 > /sys/devices/virtual/android_usb/android0/f_mass_storage/lun/file

Шаг 5. Перемонтирование раздела. Размонтируйте раздел, содержащий пользовательские данные, командой

Чтобы следующий шаг было выполнить проще, перейдите в раздел, содержащий нужные конфигурационные файлы. У нас путь будет выглядеть так:

Теперь необходимо отключить USB, переключить устройство из MTP в режим mass storage и снова включить USB. Поскольку первое же действие вызовет разрыв adb-подключения, сделать всё перечисленное потребуется в рамках одной команды:

echo 0 > enable && echo «mass_storage,adb» > functions && echo 1 > enable

Сразу после нажатия клавиши ввода adb-подключение будет разорвано, а в Проводнике на ПК отобразится неформатированный диск. Так происходит потому, что Windows не поддерживает файловые системы семейства ext, использующиеся в Linux. Однако это не помешает работе восстанавливающих данные программ.

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

Шаг 6. Восстановление файлов. Дальнейшая инструкция ничем не отличается от инструкции по восстановлению файлов с обычного диска. Для этой цели вы можете попробовать одну или несколько бесплатных программ. При тестировании мы перебрали множество приложений, и больше всего файлов сумели найти R.Saver, Pandora Recovery и Recuva.

Если выбранная вами утилита, как Pandora Recovery, представляет удалённые файлы в виде дерева, то их скорее всего можно будет найти по пути /media/0/. Также стоит помнить, что вероятность успешного восстановления данных зависит от многих факторов, в первую очередь — от степени фрагментации удалённых файлов и того, были ли они перезаписаны. Кроме того, разные приложения используют различные алгоритмы для восстановления информации. Следовательно, будет нелишним попробовать предложения от нескольких разработчиков, чтобы узнать, какая программа лучше подойдёт в конкретной ситуации.

Восстановление данных из внутренней памяти на 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:cygwin6400 (имя не имеет значения, не стоит только использовать буквы отличные от латиницы), здесь будет лежать наш образ. Копируем в папку 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:cygwin6400. В окошке появится путь к этой папке. Если слева от надписи C:cygwin6400 не будет буквы H, то нужно нажать Set as home dir. Затем выделив строчку C:cygwin6400 нужно отметить права Read и Write галочками. Затем нажать ОК.

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

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

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

Копируем их в папку C:cygwin64bin

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

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

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

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

20352f2c – мой Xiaomi Mi2s

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

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

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

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

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

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

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

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

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

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

Читать еще:  Обзор Honor View 10 — доступный флагман или проходной середняк

Внутренней памяти в моём аппарате 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:cygwin6400 началось, теперь можно закрыть окна cygwin и сделать перерыв на чай.

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

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

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

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


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

Итоги

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

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

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

(3) Форматирование пользовательского раздела (/data)

Причины по которым вам могут посоветовать сделать формат:

— Продажа аппарата. Это действие гарантирует полное удаление данных с телефона связанных с предыдущим владельцем на устройствах, у которых накопитель объединен с разделом /data.

— После/до установки авторских, модифицированных прошивок.

— Зависание при включении, спонтанная перезагрузка, постоянная перезагрузка, даже после заводского сброса.

— Сбои в работе приложений, даже после заводского сброса.

Все симптомы вызваны зачастую ошибками файловой системы. А заводской сброс не всегда означает именно форматирование раздела, т.е создание новой файловой системы, а не просто удаление с раздела папок/файлов.

Процедура форматирования:

  1. Загрузить меню recovery
  2. Выбрать пункт меню: Wipe.
  3. Нажать кнопку: Format Data.
  4. Набрать на клавиатуре слово: yes, и нажать кнопку: Go.
  5. По завершении процесса можно вернутся в основное меню, нажав кнопку: Дом.
  6. Для перезагрузки устройства в обычный режим выбрать: Reboot — Reboot System.

Варианты восстановления файлов

По поводу фото и картинок

Не многие обращают внимание, но в некоторых современных телефонах при удалении большинства медиа-файлов (тех же фотографий) — они автоматически отправляются в корзину !

Поэтому, если вы заметили пропажу фото не позже 30 дней (60 дней?) от момента «происшествия» — есть хороший шанс найти их там. Для того, чтобы ее открыть — просто запустите просмотр галереи и в контекстном меню выберите «корзина» (👇).

Корзина (галерея на Android 10)

В моем случае в корзине было 6 фото (лучше, чем ничего 👌).

В корзине удаленные фото хранятся до 30 дней!

Кроме этого, рекомендую открыть приложение Google-фото (на многих смартфонах оно предустановлено) и посмотреть в его меню настроек вкладку «Корзина» . Благодаря работе авто-синхронизации там могут быть почти все ваши картинки и фото.

Если пропавшие файлы хранились на SD-карте

Если ваши удаленные (пропавшие) данные были на MicroSD карте, это несколько упрощает работу. Не придется возиться с различными root-правами на смартфоне и копаться в настройках Android.

Вообще, как только заметите пропажу файлов, сразу же выньте SD-карту из телефона и ничего на нее больше не записывайте (при копировании данных — вы затираете удаленные на ней файлы) !

Для начала восстановления — подключите SD-карту к ноутбуку или компьютеру (с телефона эту операцию делать не нужно!).

Если у вас нет картридера — то сегодня в продаже есть недорогие внешние универсальные устройства, совмещающие и картридер, и сетевую карту, и USB-порты, и пр.

Для покупки таких устройств (адаптеров), удобно, быстро и дешево (для кошелька) использовать китайские-онлайн магазины

Вставляем SD карту в картридер ноутбука

Важно!

Если Windows будет предлагать отформатировать вашу SD-карту (или проверить ее на ошибки) — не соглашайтесь! Вообще, не обращайте внимание на предложения Windows (если таковые будут) .

Далее на компьютер необходимо скачать и запустить одну из специальных утилит для восстановления данных. Таких программ достаточно много, но я бы порекомендовал начать знакомство с бесплатных вариантов. Мне импонирует лично R.Saver. ( )

R.Saver

Простая, бесплатная (для российских пользователей) и очень удобная утилита для восстановления данных. Позволяет работать со всеми популярными типами накопителей (HDD, SSD, SD, USB и пр.), поддерживает все популярные файловые системы (NTFS, FAT, FAT 32, ExFAT и пр.). Не нуждается в установке, полностью на русском языке!

После загрузки и запуска программы, просто укажите свою флешку и начните сканирование. Дождитесь окончания процесса (может потребоваться длительное время — полчаса-час. ).

Выбор накопителя, с которого пропали файлы

После чего, R.Saver представит вам весь список файлов, которые она нашла. Вам останется выбрать те файлы, которые нужны и сохранить их на жесткий диск ( обратите внимание : нельзя сохранять восстанавливаемые файлы на ту же карту памяти, которую вы сканировали!).

Несколько вариантов восстановления (кликабельно)

Более подробная инструкция по восстановлению файлов (фото) с MicroSD (карт памяти) и USB-флешек.

Если пропавшие файлы хранились во внутренней памяти телефона

А вот при этом варианте все немного сложнее. Дело в том, что производители смартфонов (на мой скромный взгляд) все несколько усложнили.

Если раньше у смартфонов была возможность подключения к ПК в виде флешки, то сейчас на новых устройствах такой возможности нет — они подключаются по особому протоколу, и выглядят как медиа-устройства (MTP).

А это значит, что их нельзя просканировать обычными программами, той же R.Saver или Recuva, например.

Однако, и в этом случае можно кое-что сделать (рассмотрю разные варианты) .

Важно!

Для восстановления файлов вам понадобиться подключить телефон USB-кабелем к компьютеру.

Если у вас не получается это сделать (например, ПК не видит телефон), рекомендую ознакомиться вот с этой статьей

Подключить как флешку

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

Если у вас не слишком новая версия Android — то у вас должен быть вариант подключения телефона как USB-накопителя, подобно обычной флешки (примечание: эту возможность убрали после выхода Android 4.4 KitKat).

Как бы там ни было, все равно проверьте, вдруг у вас есть эта опция!

Подключить как USB-накопитель

Если это удается сделать, то запускайте одну из обычных утилит для восстановления данных (например, R.Saver, Recuva и пр. ) и сканируйте память, как если бы это была обычная флешка (о том, как восстановить файлы в этом случае — показано в первой части статьи).

Кстати!

Для полноценной работы необходимо включить отладку по USB (это понадобиться при восстановлении данных). Делается это не сложно, всего за несколько кликов в настройках смартфона. Ниже привел инструкции для разных версий Android.

Варианты, как можно запустить отладку по USB на Android (ссылка на оригинал):

  1. Настройки -> Разработка -> Отладка по USB (нужно просто поставить галочку напротив данного пункта);
  2. Настройки -> Для Разработчиков -> Отладка по USB ;
  3. Настройки -> Приложения -> Разработка -> Отладка по USB (наиболее популярный для Android 2.2 — 3.0);
  4. Настройки -> Еще -> Параметры Разработчика -> Отладка по USB ;
  5. Настройки -> Система -> О смартфоне (телефоне или планшете). Ищем пункт «Номер сборки» и нажимаем по нему 4-8 раз (должно появиться спец. уведомление, что вы стали разработчиком). Далее вернитесь обратно в настройки — и увидите меню для разработчиков.

Сканирование спец. утилитами

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

Но есть выход : есть специальные программы, предназначенные для сканирования и восстановления данных из внутренней памяти телефона.

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

Ниже привожу этот перечень (пометил пару штук, с которых рекомендую начать):

Читать еще:  ОБЗОР: Xiaomi Mi Band 1S — обновление самого популярного фитнес-трекера

Принцип работы у них практически одинаков: сканируют телефон, показывают, что нашли, и предлагают восстановить.

Однако, отмечу, что заранее предсказать, какая из утилит будет корректно работать у вас — нельзя! Дело в том, что есть разные версии Android, а производителей смартфонов, по-моему, еще больше (DIGMA, ALCATEL, FLY, ZTE, XIAOMI, MEIZU, HUAWEI, SAMSUNG, LG и многие другие).

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

Именно поэтому, рекомендую попробовать несколько из них, просканировать, посмотреть результаты, и только потом принять решение о приобретении (а возможно, вам хватит бесплатной версии!).

Почему рекомендовал обратить внимание на 7-Data Recovery Suite

У этой программы есть отдельный режим для восстановления удаленных файлов на Android устройстве (см. скрин ниже).

7-Data Recovery Suite — восстановление с Android устройства

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

Включаем отладку по USB и сканируем память

Что интересного в EaseUS MobiSaver for Android

Это приложение чем-то похоже на предыдущее. Для его работы и сканирования телефона, достаточно включить лишь отладку по USB (Root права хоть и желательны, но не требуются в обязательном порядке).

Обращаю внимание, что все действия в программе делаются последовательно, и к каждому дается ссылка на инструкцию со скриншотами.

EaseUS MobiSaver for Android — поэтапное восстановление файлов

Восстановление без подключения к компьютеру

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

Однако, как правило, помочь они могут только в самых «безобидных» случаях (например, при простом ошибочном удалении).

К тому же, большинство из них поддерживает восстановление только фото и картинок (что, конечно же большинству пользователей и требуется).

Если вы хотите восстановить какие-то документы, архивы и пр. — боюсь, эффективность таких программ будет низкой (по крайней мере, на сегодняшний день. ).

Список рекомендуемых приложений (все ссылки на Google Play):

Что касается DiskDigger — то утилита крайне простая и удобная! Буквально за несколько минут она способна просканировать внутреннюю память смартфона, SD-карту и выдать вам список фото, доступных для восстановления.

Отмечу, что DiskDigger почти «всеядный» и поддерживает большинство моделей устройств. Несмотря на всю простоту и незатейливость, инструмент крайне полезный. Рекомендую к ознакомлению.

Профилактика, чтобы не потерять данные в будущем

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

    используйте Яндекс-диск (дает около 50 ГБ! Такого больше нет нигде) : после установки и настройки, все ваши фото и картинки будут автоматически с памяти телефона загружаться в облако. Таким образом, даже если что-то случиться с телефоном, вы всегда сможете подключиться к ним с ПК, или другого смартфона. Более подробно о настройке Яндекс-диска

  • есть приложение «Google-фото» (обычно оно предустановлено на большинстве смартфонов). Достаточно один раз его открыть и разрешить авто-загрузку своих фото;
  • есть и другие варианты, например, «Google Почта» или «Google Контакты», которые позволяют бэкапить только что-то конкретное;
  • также есть универсальные хранилища: Dropbox или Google-диск. Их можно настроить так, что в бэкап будет отправляться абсолютно всё, что есть на телефоне!
  • PS

    Как-то лет 10-15 назад (еще до первого смартфона) у меня отключился мобильник. Никакие ухищрения не позволяли его заставить включиться.

    И тут вдруг я понимаю, что десяток контактов и номеров (которые реально нужны и которые будет проблематично восстановить так сразу) — у меня записаны только в памяти телефона!

    Ужас!

    Хорошо хоть в мастерской смогли его быстро реанимировать и заставить включиться. С тех пор, помимо всяких «облаков», я вручную в блокнот дублирую список самых нужных номеров. Чего и вам советую, а то по закону подлости. сами знаете как бывает. 😉

    Если поделитесь альтернативными вариантами восстановления — заранее благодарю за наводку.

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

    Все действия, описанные ниже можно выполнить в 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 вводить «переменных», а затем в открывшемся окне свойств системы нажав «Переменные среды». Второй способ: открыть Панель управления — Система — Дополнительные параметры системы — «Переменные среды» на вкладке «Дополнительно»).

  • Выберите переменную PATH (не важно, системную или пользовательскую) и нажмите «Изменить».
  • В следующем окне нажмите «Создать» и укажите путь к папке с Platform Tools из 1-го шага и примените сделанные изменения.

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

    Как Android обеспечивает безопасность

    The Android Platform Security Model — написанный сотрудниками Google вайтпейпер, посвященный теории и практике реализации подсистем безопасности в Android. В документе много воды, но есть и хоть и не новая, но полезная новичкам информация. Наиболее интересные моменты:

    • Android использует три вида аутентификации (проще говоря: метода разблокировки экрана) с разным уровнем надежности и, соответственно, уровнем доступа: 1) пароль или пин-код — считается наиболее надежным и поэтому дает полный контроль над устройством без всяких ограничений; 2) отпечаток пальца или снимок лица — менее надежный, поэтому система запрашивает пароль после каждой перезагрузки телефона, а также через каждые 72 часа; 3) аутентификация по местоположению или близости определенного Bluetooth-устройства — наименее надежный метод, поэтому на него накладываются те же ограничения, что и на биометрический метод, плюс он не позволяет получить доступ к аутентификационным ключам Keymaster (например, тем, что используются для платежей), а принудительный запрос пароля происходит не через 72 часа, а уже через четыре.
    • Песочницы (изолированная среда исполнения) для приложений в Android реализованы с помощью запуска каждого приложения от имени созданного специально для него Linux-пользователя. Приложение имеет полный контроль над файлами своей песочницы ( /data/data/имя_пакета ), но не может получить доступ к файлам других приложений и многим системным файлам. Система также использует UID (идентификатор пользователя) для контроля полномочий приложения.
    • Контроль доступа на основе UID не распространяется на карты памяти и USB-накопители, так как зачастую они используют файловую систему FAT, которая не позволяет назначить права доступа к файлам. Чтобы решить эту проблему, Android использует виртуальную файловую систему (sdcardfs), которая подключается к каталогу /sdcard/Android . Приложения могут хранить данные внутри нее без опасения, что другие приложения получат к ним доступ. Также Android позволяет подключить карту памяти в режиме Adoptable Storage, когда SD-карта форматируется в зашифрованную ФС ext4 и становится частью внутреннего хранилища данных.
    • Единственный способ покинуть песочницу — получить права root. В Linux пользователь root имеет неограниченный доступ к файловой системе (ядро отключает любые проверки доступа для этого пользователя).
    • Для защиты ключей шифрования/аутентификации Android и приложения могут использовать Keymaster. Это подсистема, позволяющая хранить данные в TEE (Trusted Execution Environment), специальном микрокомпьютере внутри SoC, к которому имеет доступ только система. TEE позволяет защитить данные даже в том случае, если злоумышленник получил права root. Начиная с девятой версии Android также поддерживает StrongBox, выделенный чип TEE, разработанный самой Google. Он позволяет защититься от атак класса Rowhammer.
    • Для защиты от эксплуатации уязвимостей в системных компонентах Android использует SELinux, подсистему ядра Linux, позволяющую более тонко управлять правами доступа, а также контролировать доступ процессов к системным вызовам. К примеру, обнаружив в одном из системных компонентов уязвимость, взломщик может попытаться принудить этот компонент выполнить системный вызов exec для запуска root shell, но, если правила SELinux запрещают это делать данному компоненту, вызов будет отклонен.
    • Начиная с седьмой версии Android способен гарантировать, что ни операционная система, ни загрузчик не были скомпрометированы. Такая проверка называется Verified Boot и выполняется на этапе загрузки: сначала загрузчик сверяет контрольную сумму раздела boot, затем один из следующих компонентов загрузки сверяет контрольные суммы файлов в разделе system. Тот же механизм используется для защиты от отката на предыдущую версию прошивки, которая может содержать уязвимости. Производители вольны сами выбирать, как должна повести себя система в случае обнаружения нарушения: вывести на экран предупреждающее сообщение или прекратить загрузку.

    Как работают атаки класса Cloak & Dagger

    Cloak and Dagger — Mobile Malware Techniques Demystified — небольшая заметка о том, как работают атаки класса Cloak & Dagger. Мы писали об этом типе атак еще в 2017 году, но тогда рассмотрели только одну из них: кейлоггер, не требующий дополнительных прав в системе. Эта статья посвящена другой атаке, позволяющей заставить пользователя включить настройку доступа к AccessibilityService (позволяет перехватывать любые нажатия пользователя и нажимать кнопки интерфейса за него), замаскировав переключатель под нечто безобидное.

    Атака использует разрешение SYSTEM_ALERT_WINDOW, которое приложения из Google Play получают автоматически. SYSTEM_ALERT_WINDOW позволяет выводить элементы интерфейса поверх других приложений, то есть реализовать такие вещи, как плавающие окна, меню, панели управления. Создатели вирусов быстро смекнули, что эту возможность можно использовать для перекрытия текущего окна на экране и обмана пользователя, поэтому с версией Android 5 Google выкатила защиту, которая проверяет, не был ли перекрыт какой-либо опасный для включения элемент интерфейса оверлеем, и отказывается его включить, если это так. Поэтому Cloak & Dagger вместо одного оверлея на весь экран создает несколько небольших и выкладывает их вокруг элемента управления, так что в результате защита не срабатывает.

    Обход защиты на включение AccessibilityService с помощью трех-четырех оверлеев

    Атака работает на Android версий 4.4.4–7.1.2, исходный код доступен.

    В дополнение можно отметить еще одну статью на смежную тему: Android Toast Overlay Attack: “Cloak and Dagger” with No Permissions. Ее авторы пошли еще дальше и реализовали ту же атаку вообще без использования разрешения SYSTEM_ALERT_WINDOW. Вместо него они засунули все оверлеи в toast-сообщение, то самое, которое позволяет выводить в нижней части экрана информационные сообщения. Как оказалось, такие сообщения тоже представляют собой полноценные полноэкранные окна, большая часть которых прозрачна. И у приложения есть доступ к этому окну и возможность его изменять.

    Как получить доступ к зашифрованной карте памяти

    Recovering data from a failing Android adoptable storage — статья о том, как восстановить данные с карты памяти, отформатированной с помощью механизма Adoptable Storage. В отличие от обычного подключения SD-карты, Adoptable Storage создает на карте памяти зашифрованный том, форматирует его в файловую систему ext4, а затем подключает ее к основному хранилищу данных так, что на нее можно сохранять не только фотки с пляжа, но и приложения, их данные и любую другую информацию, которая обычно хранится только во внутренней памяти устройства. Другими словами, Adoptable Storage позволяет расширить встроенную память устройства.

    Но есть одна, а точнее две смежные проблемы: 1) если вставить карту памяти в другой телефон — он ее не увидит из-за отсутствия ключа для расшифровки данных; 2) если что-то пойдет не так (например, карта памяти начнет сбоить), восстановить данные с нее не получится, точнее получится, но через одно место. Как через это место восстанавливать данные, описано в статье.

    Для начала на телефоне необходимо получить права root. Затем подключить карту памяти к Linux-машине (macOS тоже должна подойти, но действия описаны именно для Linux) и снять ее образ. Обычный dd в этом случае не подойдет, так как, если карта памяти начала сбоить, он, скорее всего, вывалится с ошибкой Input/output error. Выручит ddrescue, который предназначен как раз для таких случаев:

    Далее необходимо извлечь из памяти устройства ключ шифрования (на устройствах с активным модулем TEE такой трюк, скорее всего, не пройдет):

    Используем полученный ключ, чтобы смонтировать файловую систему:

    Это все. Далее автор рассказывает, как залить файлы на другую карту памяти и изменить размер файловой системы. Про это можно прочитать в оригинальной статье. Также стоит отметить, что если карты памяти одинакового объема, то можно вообще не заморачиваться с подключением файловой системы на компе и копированием ключа, а просто залить полученный на первом шаге образ на новую карту памяти с помощью того же ddrescue:

    Как обойти ограничения на доступ к внутренним библиотекам и методам

    Android Runtime Restrictions Bypass — статья о том, как обойти ограничения на доступ к внутренним библиотекам и методам Android.

    Начиная с Android 7 Google ввела ограничения на прямую загрузку нативных системных библиотек (например, /system/lib/libart.so ). Позже, уже в релизе Android 9, появилось ограничение на доступ к определенным скрытым методам, которые раньше можно было вызывать с помощью рефлексии. Как оказалось, эти механизмы достаточно просто обойти.

    Принцип работы механизма, ограничивающего загрузку библиотек, построен на пространствах имен. Если JNI-библиотека приложения попытается загрузить библиотеку, которая расположена за пределами каталогов /data , /mnt/expand или в песочнице самого приложения, оно будет завершено с такой ошибкой:

    Проверка осуществляется в лоадере библиотек ( /system/bin/linker ), который создает для каждой JNI-библиотеки приложения структуру soinfo, которая хранит информацию о ней и пространствах имен, к которым она может получить доступ:

    Все структуры soinfo размещены в мэпе g_soinfo_handles_map.

    Интересно здесь то, что g_soinfo_handles_map — это экспортированная статическая переменная. Поэтому с помощью символьной таблицы ELF можно найти базовый адрес /system/bin/linker , рассчитать адрес g_soinfo_handles_map JNI-библиотеки и изменить структуру soinfo, добавив нужные пути в доступное ей пространство имен:

    После этого попытка загрузить библиотеку будет успешной:

    Ограничение доступа к внутренним методам Java API, предназначенным только для использования системными компонентами, реализовано иначе, а именно с помощью прямых проверок на доступ. Например, функция GetStaticMethodID, используемая для доступа к Java-методам из JNI-библиотеки, вызывает функцию FindMethodID, которая в том числе проверяет, доступен ли данный метод:

    ShouldBlockAccessToMember() в конечном итоге вызывает метод Runtime::GetHiddenApiEnforcement(), который сообщает, стоит ли отклонить вызов или нет. При этом система может либо пропустить его без вопросов, либо вывести предупреждение, либо использовать черный и серый списки, которые содержат имена запрещенных к использованию методов.

    Чтобы отключить проверку, мы должны перевести рантайм в режим «пропускать без вопросов» (EnforcementPolicy::kNoChecks), но для этого нам нужен доступ к самому рантайму:

    Однако в этом случае компилятор (а точнее, линковщик) будет вынужден импортировать символ art::Runtime::instance_ в JNI-библиотеку, то есть слинковать ее с libart.so. И здесь мы столкнемся с ограничением пространства имен, а предложенный ранее метод его обхода не сработает, так как мы не сможем изменить пространство имен раньше, чем в память загрузится libart.so.

    Но есть другой способ получить доступ к рантайму. Дело в том, что метод JNI_OnLoad, который запускается при загрузке JNI-библиотеки, в качестве первого аргумента получает указатель на art::JavaVMExt, который имеет метод GetRuntime(). Так что все, что нам остается, — это получить доступ к рантайму и отключить проверку:

    Примечательно, что команда Android security team не считает описанные методы обхода нарушением безопасности (мол, не для безопасности они были придуманы), поэтому быстро дала согласие на обнародование информации и публикацию исходного кода PoC.

    Описание уязвимостей в Android Download Provider

    Multiple Vulnerabilities in Android’s Download Provider — статья исследователя, нашедшего три уязвимости в Android: CVE-2018-9468, CVE-2018-9493 и CVE-2018-9546. Все они затрагивают Download Content Provider, компонент, позволяющий любому приложению запустить загрузку файла из интернета так, чтобы пользователь видел уведомление с прогрессом загрузки.

    • CVE-2018-9468. Первая уязвимость заключается в том, что Download Content Provider позволяет увидеть любые другие загрузки, происходящие на устройстве, а не только свои собственные. Используя URL вида content://downloads/public_downloads/# , зловредное приложение может подобрать загрузку по номеру и, например, прочитать загруженный файл или подменить его сразу после загрузки. Причем это относится как к обновлениям ПО, так и к загрузкам из Google Play. Исходный код примера.
    • CVE-2018-9493. Вторая уязвимость — SQL-инъекция, позволяющая получить доступ к закрытым столбцам таблицы (например, CookieData). Исходный код примера.
    • CVE-2018-9546. Третья уязвимость позволяет извлечь HTTP-заголовки (могут включать аутентификационные данные и кукисы) для любой загрузки. Уязвимость использует тот же трюк, что и первая. Исходный код примера.

    Данные уязвимости были исправлены в сентябрьском и ноябрьском security-патчах.

    Восстановление прошивки из бэкапа через CWM

    Процедура восстановления так же проста:

    1. запускаем CWM;
    2. выбираем «Backup & restore «;
    3. жмём «restore » и ищем нужную резервную копию;
    4. подтверждаем выбор в пункте «Yes «.

    Если необходимо восстановить данные из конкретный области памяти, делаем следующее:

    1. запускаем CWM recovery;
    2. выбираем «Backup & restore «;
    3. жмём «Advansed Restore «;
    4. ищем нужный бэкап в списке;
    5. отмечаем необходимый раздел (boot , system , data , cache , sd-ext );
    6. подтверждаем выбор в пункте «Yes «.

    Установка прошивок, обновлений, ядер и прочего, на Android устройство с помощью TWRP

    • Все альтернативные прошивки, кастомные ядра, русификаторы, дополнения, украшения, пакеты приложений, которые можно установить на планшет или телефон с помощью TWRP recovery- упакованы в виде zip файлов.
    • Прежде чем что либо устанавливать на свое устройство, не забудьте сделать полную резервную копию текущей прошивки, чтобы потом можно было безболезненно вернуть ваш планшет или телефон в исходное состояние.
    • Убедитесь, что аккумулятор вашего устройства заряжен как минимум на 60 процентов, а лучше полностью, и отключите его от компьютера и зарядного устройства.
    • Файл, который вы хотите прошить, скопируйте в память устройства или на карту памяти, лучше всего в ее корень, НЕ РАСПАКОВЫВАЯ ЕГО. Убедитесь, что имя файла состоит только из латинских букв и цифр и не содержит пробелов и специальных символов.
    • Если вы устанавливаете новую прошивку, обязательно сделайте полную очистку с помощью пункта «Wipe»

    Приступаем к прошивке:

    1. Перезагружаем устройство в TWRP recovery

    2. Выбираем пункт «Install»

    3. Выбираем:

    • Карту памяти: Use external SD
    • Внутреннюю память: Use internal storage

    4. Выбираем zip файл

    5. С помощью опции Force MD5 check on all Zips включаем проверку контрольных сумм MD5 если у вас имеется файл md5 в комплекте с вашим zip файлом.

    6. Начинаем прошивку, подтвердив выбор с помощью слайдера

    Вы можете также выбрать до 10 zip файлов, которые установятся за один раз с помощью кнопки «Add More Zips» или очистить список ранее выбранных файлов с помощью «Clear Zip Queue»

    После прошивки любых zip файлов крайне рекомендуется делать очистку кеша и dalvik кеша.

  • Ссылка на основную публикацию
    Статьи c упоминанием слов:
    Adblock
    detector