Как удалить прошивку с андроида через компьютер
Сейчас всё больше смартфонов идут без слота для sd-card, и информацию приходится хранить на встроенной памяти с доступом к ней по MTP. Такой режим подключения не позволяет стандартными средствами восстановить данные телефона после wipe’а или случайного удаления.
Сегодня на примере связки Xiaomi Mi2s и Windows 8.1 я постараюсь рассказать, как можно восстановить утерянные данные, кому интересно, добро пожаловать под кат.
Следует заметить, что если вы по ошибке отформатировали внутреннюю память смартфона/планшета/смартпэда, то не стоит расстраиваться, а главное, ни в коем случае не нужно ничего записывать в память устройства, так у вас получится восстановить больше данных.
Протокол MTP не позволяет компьютеру распознать подключенный девайс как USB-накопитель и программы для восстановления не могут просканировать такое устройство и спасти данные, поэтому нам потребуется скопировать весь внутренний раздел памяти в виде образа системы.
Подготовка Android-устройства
Вам понадобится root и включенная отладка по USB.
Подготовка PC
Для того, чтобы скопировать раздел системы, нам понадобится:
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
Копируем их в папку C:\cygwin64\bin
Проверка работы ADB
Запускаем консоль из папки C:\cygwin64\bin, для этого достаточно вписать cmd в адресную строку проводника
Список подключенных девайсов не должен быть пуст, если после строчки List of devices attached пусто, то вы не установили USB-драйвера или не включили отладку по USB.
Когда всё идет хорошо, консоль выглядит так:
20352f2c – мой Xiaomi Mi2s
Режим модема по USB
Нам понадобится подключить аппарат по USB к вашему ПК и включить режим модема по USB. Я использую CyanogenMod 11 и у меня этот режим находится по пути: Настройки > Беспроводные сети > Ещё… > Режим модема > USB-модем
Теперь нам необходимо узнать, какой IPv4 адрес получил ваш компьютер.
Используем команду ipconfig в командной строке
или
Идем по пути: Панель управления\Сеть и Интернет\Центр управления сетями и общим доступом
Кликаем по надписи ’Подключение по локальной сети’ далее Сведения и копируем адрес IPv4.
В моём случае это 192.168.42.79
Важно! При каждом переподключении USB кабеля и вкл/выкл режима модема IPv4 будет меняться.
Какой блок памяти нам нужен?
Вся память в вашем устройстве делится на логические блоки, нам не нужно качать все, достаточно понять, какой раздел содержит стёртую информацию.
Теперь нам необходимо посмотреть список блоков памяти, для этого вводим построчно следующие команды:
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 – копируемый блок памяти (у вас свой)
Открываем второе окно командной строки и вводим команды:
Смотрим в окно FileZilla и видим, что скачивание mmcblk0p27.raw в папку C:\cygwin64\000 началось, теперь можно закрыть окна cygwin и сделать перерыв на чай.
Конвертируем и восстанавливаем
Вернулись? Файл скачался? Отлично. Отключаем телефон, подключаем интернет. Запускаем Cygwin.bat и вводим следующие команды.
У меня конвертирование заняло пару секунд. На выходе у нас получается всё тот же файл mmcblk0p27.raw в папке C:\cygwin64\000, но уже немного другой. Этот сконвертированный файл можно смонтировать как виртуальный диск, или, например через R-studio, произвести восстановление данных непосредственно из нашего образа. Я так и поступил.
Hint: важные моменты пометил желтым.
Итоги
Моей целью было популярным языком объяснить способ копирования системного раздела с android-девайса на ПК, возможно, некоторые упрекнут меня в сложностях, связанных с USB-модемом и ftp, и скажут, что наверняка можно было проще вытащить образ. Отвечу так: я пробовал другими способами, описанными на 4pda и xda-developers, у меня не вышло, зато с ftp получилось со второй попытки, а входе написания статьи всё вообще прошло как по маслу.
У меня получилось восстановить все утерянные фото без потерь в качестве и даже то, что я и не думал восстановить. В ходе восстановления обнаружились фотографии, которые делал в августе прошлого года, когда только купил телефон и тестировал камеру.
В завершении хочется также упомянуть еще одну небольшую утилиту, которая восстанавливает данные — DiskDigger undelete. Она бесплатная, неплохой функционал, но к сожалению, после 40% она у меня вывалилась с ошибкой.
Кто-то отметит, что вся нужная и ненужная информация по процессу перепрошивки находится на всем известном форуме. Я, свою очередь, отвечу, что во-первых — далеко не все проблемы и их решения там описаны, а во-вторых — не каждый сходу сможет найти среди такого обилия информации нужную. Я же исхожу из собственного опыта.
Важно:
Я не несу ответственности за ваши действия после прочтения данной статьи, обязательно делайте резервные копии данных на внешнее хранилище (SD-карты или компьютер). Но не пугайтесь — если вам удалось разблокировать загрузчик и установить recovery у вас всегда будет возможность восстановить устройство даже из «System Destroyed», а в большинстве случаев и реализовать «вертай взад» — установить официальную систему с блокировкой загрузчика (как, например, у Xiaomi).
Зачем мне перепрошивать устройство?
Для чего люди вообще перепрошивают свои устройства со стабильными ОС от производителя на какие-то сборки "От Васяна"? Причины у всех разные. Кому-то не нравится напичканная китайским хламом MIUI. Чьи-то устройства производитель уже давно не обновляет, а новую систему хочется. Кому-то по душе "чистая" система, кто-то больше не может жить под вечным прицелом Google Services и так далее и тому подобное. Справедливости ради хочу отметить, что множество неофициальных прошивок имеют поддержку от их разработчиков и на них регулярно прилетают OTA обновления. При этом они не уступают в безопасности официальным, а наиболее популярные поддерживают актуальные схемы шифрования ваших данных (FBE).
Что же такое – перепрошивка устройства?
Если коротко и ясно – замена или переустановка установленной операционной системы на другую операционную систему. Прямо как “винду переставить”. Данное определение не относится конкретно к телефонам — перепрошивают всё, что угодно, даже автомобили. Применительно к устройствам на Android это также не означает, что сторонняя прошивка должна быть именно системой Android — я имел опыт установки Ubuntu на телефон. Целесообразность этого поступка — вопрос другой.
Из каких же шагов состоит установка новой ОС, вместо существующей? Для большинства пользователей они будут примерно следующими:
Поиск и установка стороннего Recovery
Поиск файлов новой прошивки
Установка новой прошивки с помощью стороннего recovery
(опционально) Установка root-прав
(опционально) Установка GApps
В этой, как самой первой статье, я разберу только первые два пункта, в силу объема остальных.
Разблокировка загрузчика
Что за загрузчик и зачем его разблокировать? Загрузчик или Bootloader простыми словами – относительно небольшой кусочек программного кода, который занимается запуском установленной системы. Сам по себе он — незаменимая часть устройства, но в его функции также входит реализация технологии Verified Boot. Эта технология призвана ограничить установку ОС до авторизованных производителем (путем проверки подписи файла). С одной стороны, это защитит ваши данные от злоумышленника (он не сможет установить другую прошивку без форматирования вашего устройства), с другой – многие популярные прошивки обеспечивают надежное шифрование раздела Data. Наша цель — отключить механизм Verified Boot для того, чтобы мы могли установить стороннюю систему.
Скажу сразу – универсальной инструкции для всех телефонов нет и быть не может. Более того – некоторые устройства вообще не имеют способа разблокировки загрузчика, а некоторые не блокируются производителем изначально. Проверить факт блокировки загрузчика можно с помощью adb в режиме fastboot - fastboot oem device-info (что это и как пользоваться этим инструментом разберу в пункте про установку). Если true – заблокирован, иначе – нет. Все дальнейшие действия будут рассмотрены на примере устройства Xiaomi Redmi 8T на базе процессора Qualcomm.
Итак, если по результатам проверки вы обнаружили, что загрузчик заблокирован, то помочь вам с поиском способа разблокировки поможет только Технотроица – Отец (Сайт производителя), Сын (4pda) и Святой дух (Google). В случае с Xiaomi всё достаточно просто – на сайте производителя есть фирменная утилита для разблокировки загрузчика, ее использование интуитивно понятно. После успешного окончания процесса разблокировки необходимо отформатировать раздел Data, поскольку он зашифрован текущей системой и новая его попросту не расшифрует (в Xiaomi за это отвечают переключатели в окне разблокировки загрузчика) и можно приступать к процессу установки стороннего Recovery.
Установка стороннего Recovery
Что такое Recovery и почему мы начинаем процесс прошивки именно с него? Раздел Recovery – аналог BIOS на компьютере, также именуется как «Режим восстановления». Этакая "подсистема", которая призвана помочь в восстановлении работоспособности устройства. Заменить установленный производителем recovery сторонним необходимо потому, что "родной" не даст установить вам ничего, кроме официальной прошивки.
Немного о том, какие бывают Recovery
Я использую и настоятельно советую использовать другим именно TWRP-recovery, поскольку он сильно превосходит в функциональности и удобстве CWM.
Немного об ADB – это отладочный инструмент, который позволяет разработчикам отлаживать свои приложения, а таким энтузиастам как мы – прошивать телефоны и делать много других полезностей. Обо всех функциях вы можете узнать так же при помощи Технотроицы.
После скачивания recovery вы должны получить файл образа раздела android с расширением .img . Чтобы установить его на свое устройство, нам понадобится:
Компьютер или иное подходящее для запуска ADB устройство
USB-драйвера для вашего аппарата, установленные на компьютер
Чтобы прошить новый раздел recovery, необходимо перевести телефон в особый режим загрузчика – fastboot. На большинстве устройств это делается с помощью зажатия кнопок Power и Vol- при включении телефона. Успешным входом в этот режим будет считаться черный экран смартфона с белой строкой "fastboot mode". После этого необходимо подключить устройство к компьютеру при помощи USB-кабеля.
Для прошивки раздела recovery нам понадобится единственная ADB-команда. Для исполнения этих самых команд, воспользуемся консолью Windows. (я полагаю, вы справились с установкой ADB). Общий формат команды прошивки файла в раздел устройства выглядит следующим образом:
fastboot flash partition PathToFile
fastboot — путь к файлу fastboot.exe, поставляется вместе с ADB;
partition — доступный для прошивки раздел Android. Мы шьем recovery;
PathToFile — путь к .img-образу recovery, который вы скачали;
В моем случае, команда выглядела примерно так:
C:\adb\fastboot flash recovery C:\recovery.img
Некоторые recovery поставляются с автоматическими установщиками и ADB — вам нужно лишь запустить bat-файл.
Готово!
Поздравляю, вы только что получили, почти что, полный доступ над программной частью вашего устройства! Один шаг для энтузиаста — большой шаг для сообщества. Но это — только первый шаг, за ним идут еще несколько, не менее важных шагов к получению максимального контроля над вашим устройством.
Послесловие
Я намеренно не подкрепляю каждый шаг обилием скриншотов, поскольку каждый случай уникален, каждое recovery имеет свой интерфейс, но основные принципы остаются одинаковыми. Также, вы не увидите тут обилия ссылок – все приведенные проекты легко ищутся в поисковиках. Напоследок, хотелось бы привести текущую конфигурацию моего телефона:
Модель: Xiaomi Redmi Note 8T
Операционная система: Android 11 ArrowOS
Recovery: Pitch Black Recovery Project (twrp-based)
GoogleServices: NikGApps based
Мне не очень нравится то, что сейчас делают в Google и Windows (начиная с win8). Пользователь не может делать со своим устройством то, что хочет - он именно пользователь, а не "администратор".
А мне хочется иметь возможность удалять и ставить, что я захочу, отслеживать процессы и при необходимости убивать их, обновляться,когда я решаю, что мне это нужно.
Какие есть методы/способы избавиться от ненужного ПО, различных гугловских сервисов и т.п. штук?
Хочется уйти от навязывания и отношения к пользователю, как к обезьяне в сторону адекватного поведения системы.
Linux должен быть linux'ом.
Вот только большинство людей предпочитает удобство.
Android - это прорыв в мире линукса, когда слова "линукс" и "удобно" наконец то можно употреблять вместе.
P.S. 11 годиков опыта с линуксом.
А удалять приложенгия просто: получаете рут и удаляете с накопителя. Так же, как и в обычном настольном линуксе.
Можно через ПО типа TitaniumBackup, если боитесь пользоваться файловой системой.
Конечно большинство предпочитает удобство и это действительно прорыв. Но есть и меньшинство, с другими ценностями. И в идеале система должна быть и для тех и для других.
Посмотрю ПО, попробую.
На 4pda отличная инструкция (Не знаю как тут с ссылками на другие ресурсы)
1. Q: Где находятся стоковые программы и как их удалить?
A: Стоковые (стандартные или заводские) программы находятся в /system/app.
Открыть данную директорию можно при помощи RootExplorer, FileExplorer и подобных ей, а так же Titanium Backup при наличии прав ROOT и монтировании в r/w. Порядок и названия могут отличаться (в Titanium Backup вместо фалов .apk отображаются названия программ). Помните о том, что не обязательно сразу удалять приложение, вы можете его переименовать или заморозить при помощи программы Titanium Backup. В этом случае телефон не распознает переименованный файл как приложение, и вы сможете восстановить/разморозить его в случае необходимости.
2. Q: Какие программы можно удалять?
A: Каждый пользователь должен сам определиться какие системные приложения ему не нужны, далее нужно посмотреть могут ли быть последствия от удаление не нужных вам приложений, если их (последствий) нет, то можно смело удалять эти приложения. А если последствия есть, например некоторые проги имеют зависимости, то нужно подумать удалять вам их или нет, например вам не нужны карты Google и вы ни когда не будите использовать системные и сторонние программы которые используют данные карт гугла, значит вы смело можете удалять эти карты.
3. Q: Где еще остаются файлы от удалённых приложений и нужно ли их удалять?
А: Части программ могут оставаться в data/data, data/dalvik-cache, (system/lib - желательно не трогать, т.к. есть зависимости). Имена файлов не всегда совпадают с названием приложения. Будьте внимательны. Чтоб узнать "внутреннее" имя программы, нужно зайти рутэксплорером в папку, где она лежит, затем короткий тап по апк файлу - нажать view и посмотреть манифест. После удаления желательно сделать ХР. Небольшое пояснение.
4. Q: Можно ли удалять стандартные приложения Google, повлияет ли это на работу аппарата?
A: Приложения (Maps, Gmail, Gtalk и т.д.) можно. Службы нежелательно, так как в случае удаления перестанут работать все гугловские сервисы и приложения, а также возможно появление постоянных ошибок на устройстве.
5. Q: Можно ли удалить стандартные приложения от Google (Навигация, Адреса, Просмотр улиц) отдельно от приложения Карты?
A: Просмотр улиц (Street.apk) можно, а остальные нет, так как они являются частью приложения Карты (Maps.apk).
6. Q: Обязательно ли удалять .odex файлы программы вместе с файлами .apk?
A: Да. Данные файлы являются частью одноименного приложения.
7. Q: Где взять стандартный файл .apk с какой либо прошивки?
A: Пойти в тему про прежнюю прошивку и попросить вырезать Вам этот apk тех, кто еще ей пользуется. Или же распаковать родную прошивку, и вытащить необходимый файл.
8. Q: Удалил ненужные системные приложения, а в диспетчере задач отображаемая память телефона как и была до чистки. В чем загвоздка?
A: Ответ (взаимодействие разделов в Android).
9. Q: Удалил стандартную клавиатуру, после чего не работает SWYPE. Что делать?
A: Сделать SWYPE системным.
10. Q: Установил стороннюю звонилку и при пропущенном звонке в панели уведомлений появляется сразу 2 извещения: от стандартной и сторонней.
A: Решение: сделать стороннюю звонилку системной (я делал это через titanium backup, но подозреваю, что достаточно просто в системную папку apk перенести).
11. Q: Не могу удалить некоторые гугловские приложения; удалил из папки system/app, но они всё равно работают.
A: Возможно эти приложения находятся в папке data/app и удалить их нужно ещё и оттуда.
12. Q: На Samsung Galaxy Gio не могу удалить стоковые приложения: Вешалка, Drive & Walk, Книги.
A: Решение можно найти в шапке темы Samsung GT-S5660 Galaxy Gio - установка и обновление ПО через recovery. Читать информацию под спойлером "Удаление встроенного ПО".
13. Q: Как восстановить системные приложения?
A: Ответ.
14. Q: Можно ли удалить стоковый лаунчер?
A: Можно, но только при наличии стабильно работающего стороннего лаунчера, который желательно сделать системным приложением. Но следует учесть, что не все стандартные виджеты могут работать на стороннем лаунчере.
15. Q: После удаления приложений в меню остаются серые ярлыки удаленных приложений. Как их удалить?
A: Следует очистить данные лаунчера через Настойки (Настройки -> Приложения -> Launcher -> Очистить данные) или через ® Titanium Backup. Следует учесть, что в результате этого слетят все пользовательские настройки рабочего стола (виджеты и т.д.).
17. Q: Где найти список приложений для определённого устройства?
A: Ссылки на большинство списков на этом форуме есть под спойлером "Приложения, удалённые на конкретных моделях". Если этого устройства там нет, то следует просмотреть списки для похожих устройств (от того же производителя и на этой же версии OS).
18. Q: Можно ли создать скрипт, удаляющий приложения, и как это сделать?
A: Да, такие скрипты нередко встречаются в темах обсуждения прошивок. Почитать о создании и редактировании можно здесь.
19. Q: Почему после ребутов удалённые приложения восстанавливаются?
A: Вероятно, для того, чтобы этого не происходило, следует устанавливать кастомные ядра. Какие именно ядра лучше устанавливать и инструкции по установке смотреть в теме прошивок или ядер.
21. Q: Как посмотреть запущенные фоновые процессы?
A: Включить информационный слой с данными использования ЦП (Настройки-Параметры разработчика-Выводить использование ЦП).
Читайте также: