Способы входа в режим Recovery
На самом устройстве
Стандартный способ. Принцип входа в Recovery Mode одинаковый для всех устройств — при включении нужно зажать несколько кнопок. Чаще всего это громкость вверх, но могут встречаться и такие варианты:
- Samsung — включение + громкость вверх + «Домой».
- LG — включение + громкость вниз.
- Google Nexus, HTC — включение + громкость вниз, далее тапнуть Recovery.
- Определённые модели Lenovo, Motorola — включение + громкость вверх + «Домой».
- Sony — кнопка питания, после двойной вибрации зажать громкость вверх.
Если почему-то войти в Recovery Mode стандартными средствами не получается, попробуйте уточнить в инструкции. Перечисленные комбинации действуют практически во всех случаях и будут работать как для входа в стандартное рекавери меню, так и кастомное. Кроме того, можно запустить , даже когда планшет не загружается или система зависает.
При наличии root-прав понадобится установленное приложение Terminal Emulator (https://play.google.com/store/apps/details?id=jackpal.androidterm). После установки нужно будет разрешить права суперпользователя и ввести две команды: сперва su, а затем reboot recovery. Устройство будет перезагружено.
Через компьютер
Обязательным условием является включённый режим отладки через USB (Настройка — Для разработчиков — Отладка по USB, либо выбрать соответствующий пункт при подключении к ПК). Поэтому, если ранее этот режим был отключён, планшет не запускается, воспользоваться им не выйдет.
Вам понадобится программа ADB Run (http://cloud-androidp1.in/Android/PC/Project_Site/AdbProgramm/), кабель и работающее устройство.
- Подключите устройство к компьютеру.
- Запустите программу ADB Run.
- В меню программы последовательно нажмите 4, а затем 3.
Устройство перезагрузится в Recovery Mode. Можно выполнять нужные вам процедуры.
Как восстановить настройки на андроид
В процессе работы в системе может накопиться ряд ошибок, и её производительность упадёт, а также могут появиться различные программные «глюки». Наиболее лёгкий выход из данной ситуации – это восстановить заводские настройки Андроид. Для этого нужно войти в «Восстановление и сброс» (находится в пункте меню «Настройки»), где выбрать «Сброс настроек» и активировать его, выбрав «Стереть всё». После этого система вернётся к изначальным параметрам.
Учитывая потерю информации при возврате к исходным установкам, будет разумным провести резервирование данных и проверить, вся ли ценная информация сохранена. При сбросе настроек файлы на флеш-картах сохраняются .
Как восстановить аккаунт на Android
Ваш акканут на Android совпадает с Google-почтой, поэтому, чтобы заново в него войти, достаточно в «настройках аккаунтов и синхронизации» найти добавление учётной записи Google, выбрать уже существующий аккаунт и ввести его данные.
Как восстановить аккаунт на Android, если забыли пароль? Необходимо воспользоваться страницей восстановления пароля Google, ввести адрес почты и следовать дальнейшим инструкциям.
Если утеряно имя аккаунта, то поможет страница восстановления имени, но для этого необходимо помнить адрес резервной почты или номер телефона, к которому привязана учётная запись.
Возможности режима Recovery
Он предоставляет пользователю сразу несколько возможностей, даже если планшет не включается. Самое доступное для любого пользователя — полный сброс настроек и удаление всех пользовательских файлов. Таким образом можно решить проблемы с нестабильной работой гаджета, например, в результате действия вируса:
- При помощи качельки громкости выделите пункт меню wipe data/factory reset;
- Активируйте эту функцию нажатием Power;
- По завершении сброса, на который обычно тратится не более нескольких секунд, активируйте таким же способом команду Reboot System Now.
Аппарат перезагрузится, при этом он полностью восстановит функциональность. Правда, пользовательские приложения, файлы и настройки будут удалены. Поэтому если устройство включается, сделайте его бэкап.
Делаем бэкап из консоли восстановления
Чтобы после сброса устройства иметь возможность восстановить его функциональность, будет нелишним сделать полный бэкап устройства. Он включается в консоли Recovery:
- С помощью качелек громкости и кнопки Power выберите и активируйте строку Backup and Restore.
- В открывшемся меню тем же способом откройте пункт Backup.
Наиболее часто используемые рекавери для Android — это CWM-recovery и TWRP-recovery, последний из которых является сенсорной версией первого инструмента. Есть много других рекавери, которые могут быть установлены в системе Android, но мы рекомендуем вам упомянутые выше инструменты.
Как уже говорилось, при попытке выполнить установку стокового рекавери могут потребоваться root-права. В этом случае сначала разблокируйте (рутируйте) смартфон/планшет, затем вернитесь сюда и узнайте, как загрузить телефон в режим восстановления. Имейте в виду, получение рут-прав делает гарантию недействительной, и для ее восстановления вам придется вернуть стоковую прошивку или обновиться до официальной версии программного обеспечения для Android.
Это руководство совместимо как с рутированными, так и с заблокированными Android-смартфонами и планшетами. Этот метод будет работать практически на всех устройствах Android, поэтому руководство является универсальным. Итак, если вам нужно загрузиться в стоковый рекавери или пользовательский (CWM или TWRP recovery), тогда выполните шаги, описанные ниже.
Обычно для загрузки в режим восстановления вам нужно нажать комбинацию кнопок на телефоне. Сначала нужно выключить устройство, подождать несколько секунд, а затем одновременно нажать кнопки питания и увеличения громкости в течение нескольких секунд. Должен отобразиться режим восстановления (рекавери). Но если это не сработает, сделайте следующее:
Как войти в рекавери на рутированных устройствах Android
- Это самый простой способ, который можно выполнить.
- Из Play Маркета вам необходимо загрузить приложение на свой телефон.
- Итак, зайдите в Play Маркет и найдите Quick Reboot.
- Установите приложение и запустите.
- В меню, которое будет отображаться (Восстановление, Перезагрузка, зЗагрузчик и Выключение — Recovery, Reboot, Bootloader и Power Off), выберите «Recovery».
- Телефон будет перезагружен в режим восстановления, вот и все.
Как войти в рекавери на заблокированных устройствах Android
- Чтобы добиться успеха в этих шагах, вам понадобится доступ к компьютеру или ноутбуку.
- Также у вас должен быть телефон и USB-кабель.
- В телефоне должна быть включена опция отладки по USB.
- На компьютер установите Android SDK.
- Подключите телефон к компьютеру с помощью USB-кабеля.
- На компьютере перейдите в папку Fastboot.
- Находясь в этой папке откройте окно командной строки.
- В окне cmd введите: «adb reboot recovery».
- Хорошо, теперь ваш телефон автоматически войдет в меню режима восстановления.
Великолепно, выполнение руководства завершено. Теперь вы знаете, как войти в режим восстановления на рутированных и заблокированных устройствах Android. Итак, вперед, используйте меню восстановления для создания резервных копий Nandroid, для установки пользовательских прошивок или для выполнения других сложных и мощных операций.
Recovery, Edify и Aroma Installer
Обнаружив зажатую клавишу увеличения громкости, aboot делает почти то же самое, что и при обычной загрузке, но использует вместо boot раздел recovery. Разделы идентичны по своему формату и зачастую включают в себя одно и то же ядро, однако содержимое RAM-диска существенно отличается. Если в случае с разделом boot назначение RAM-диска — создать начальные условия для дальнейшей загрузки системы, то recovery — это мини-ОС, способная работать обособленно.
Стоковый recovery очень прост. Все, что содержит его RAM-диск, — это исполняемый файл и (не всегда) набор фоновых изображений в каталоге или любом другом. При загрузке ядро Linux запускает , а тот выводит на экран простенькое меню, с помощью которого можно установить прошивку, подписанную цифровым ключом производителя, или произвести сброс до заводских настроек.
Кастомные recovery намного сложнее. Это уже не просто меню с фоновым рисунком, но целая операционная система, способная устанавливать какие угодно прошивки, делать бэкап, форматировать разделы и многое другое. Современные версии TWRP так и вообще поддерживают управление с помощью тач-интерфейса, сменные шкурки, полностью изменяющие внешний вид recovery, пароль для входа и эмулятор терминала вместе с экранной клавиатурой. Плюс ко всему кастомные recovery включают в себя BusyBox (набор утилит командной строки Linux) и сервер ADB, работающий с правами root. Так что режим recovery очень удобно использовать для отладки и таких операций, как, скажем, дамп разделов. Например, раздела boot (пример для чипов Qualcomm):
Но главная задача recovery — это, конечно же, установка прошивок. Точнее, она была бы главной задачей, если бы в recovery была такая функция. На самом деле все, что делает recovery, когда ты нажимаешь «Install ZIP…» и выбираешь прошивку, — распаковывает ZIP-файл (обычно в раздел cache) и запускает файл внутри него. Именно update-binary выполняет установку прошивки, руководствуясь инструкциями из файла updater-script (он лежит рядом).
Сами инструкции написаны на языке Edify, включающем в себя набор команд, которые могут понадобиться при установке: mount, unmount, package_extract_file, symlink, run_program и другие. Мы не будем обсуждать здесь все эти команды, они достаточно просты, и, чтобы ознакомиться с ними, достаточно распаковать любую прошивку и открыть updater-script в текстовом редакторе. Скажу лишь, что обычно такие файлы генерируются автоматически при сборке системы из исходников и только авторы узкоспециализированных прошивок (содержащих только ядро, например) пишут их самостоятельно.
Фрагмент updater-script из CyanogenMod 12.1
Recovery не накладывает никаких ограничений на файл update-binary — главное, чтобы его можно было запустить. Это дает производителям возможность использовать вместо него любое приложение, способное запуститься поверх ядра Linux. Совсем не обязательно, чтобы оно вообще выполняло установку прошивки. В рамках проекта Aroma Installer развивается вариант update-binary, который позволяет создателям кастомных прошивок реализовать графический инсталлятор с выбором тех или иных вариантов и опций установки.
Автор Aroma Installer также создал Aroma Filemanager — полноценный менеджер файлов со встроенным эмулятором терминала. Чтобы его запустить, необходимо перезагрузиться в recovery и «прошить» ZIP-файл. Естественно, никакая прошивка выполнена не будет, ведь update-binary внутри ZIP-файла — это только файловый менеджер, он не выполняет никаких операций установки.
Эмулятор терминала, встроенный в Aroma Filemanager
«Фиктивный» update-binary часто используется для распространения разного рода скриптов. Гораздо проще переименовать скрипт в update-binary, запаковать в ZIP-файл и попросить человека «прошить» его, чем объяснять, как запускать скрипты с помощью ADB. Именно так поступил osm0sis со своим скриптом разблокировки загрузчика аппаратов линейки Nexus. Если ты скачаешь его ZIP-файл и взглянешь внутрь, то найдешь updater-binary, внутри которого обычный sh-скрипт.
Root insecure adb
Ну и в конце пара слов о том, что такое root. Начнем со всем известных азов: в Linux root — это имя пользователя с безграничными правами в системе (типа администратора в Windows). Root может вообще все, вплоть до удаления всей системы с диска (именно это делает знаменитая команда «rm -rf /*), поэтому обычно никто не сидит, так сказать, под рутом, а использует непривилегированный аккаунт.
Чтобы иметь возможность выполнять операции с правами root (например, устанавливать софт или управлять сервисами), можно использовать разные приложения (команды), одна из которых носит имя su. Она позволяет получить права root или любого другого пользователя в системе, пароль которого тебе известен. И все благодаря специальному SUID-биту, который позволяет su работать с правами root, даже если оно было запущено обычным пользователем.
В Android с правами root работает исключительно сама система (и то далеко не вся), тогда как сервер ADB и приложения исполняются с правами непривилегированных пользователей (по одному пользователю Linux на каждое приложение, серьезно), а команды su нет вообще. Поэтому единственный способ получить права root в такой ситуации — воспользоваться уязвимостью в одном из системных компонентов, работающих с правами root. Таким образом можно не просто временно заполучить права root, но и использовать их, чтобы разместить в системе бинарник su (скопировать в /system/xbin, например) и поставить на него SETUID-бит. Именно так работают все наиболее популярные инструменты рутинга, от Super One Click до framaroot.
Второй вариант — прошить бинарник su с помощью кастомной консоли восстановления. Известный Android-разработчик Chainfire уже много лет занимается разработкой и поддержкой инструмента для управления root-доступом SuperSU, а также ZIP-архива, прошив который, ты получишь рутованный смартфон (при установке он копирует в систему su и приложение ). Кстати, инструменты типа Framaroot вместе с бинарником su также устанавливают SuperSU или его аналог SuperUser, чтобы пользователь мог управлять тем, каким приложениям следует давать права root, а каким нет.
SuperSU собственной персоной
Есть у Chainfire и другой интересный проект — CF-Auto-Root. Он тоже устанавливает в систему su и SuperSU, но делает это весьма оригинальным способом: без задействования recovery. Инструмент CF-Auto-Root существует в двух вариантах, для Odin и для fastboot, причем в последнем случае он представляет собой модифицированную версию recovery, которую не надо прошивать. Ее следует запускать с помощью описанной в начале статьи команды fastboot boot. Пример для Nexus 4:
При загрузке «поддельный recovery» запускает не , а бинарник , который просто копирует в систему su и SuperSU и затем перезагружает устройство. Зачем использовать такой извращенный способ, когда можно установить кастомный recovery и прошить стандартный SuperSU.zip? Ну например, это пригодится тем, кто не хочет по каким-то причинам устанавливать кастомный recovery.
Последнее, о чем хотелось бы сказать, — разные виды root. В Android root-доступ принято разделять на «пользовательский» и «root уровня ядра» (kernel root). Это довольно глупые определения, но нам придется иметь с ними дело. «Пользовательский root» — это то, что я описал выше: приложение запрашивает права root с помощью запуска , а SuperSU показывает тебе окошко с запросом прав root. Все просто. Так называемый «root уровня ядра» — это когда с правами root работает сервер ADB. Рутом уровня ядра он называется по причине необходимости править , а точнее содержащийся в нем (необходимо присвоить переменной значение 1 и запустить adbd с флагом ).
Подавляющему большинству пользователей root уровня ядра никогда не понадобится. Однако его могут использовать некоторые скрипты и графические инструменты, работающие со смартфоном по ADB (яркий пример: PatchROM от MIUI). В CyanogenMod и многих других кастомных прошивках по умолчанию доступны все виды root (их можно выбрать в «Настройках для разработчиков»). Для получения root уровня ядра в других прошивках можно использовать приложение adbd Insecure за авторством все того же Chainfire.
Adbd Insecure и стоковая прошивка HTC
Раздел boot и ядро
Если во время включения устройства ты не зажимал клавишу увеличения громкости либо не перезагружал смартфон в режим recovery намеренно (например, с помощью расширенного меню перезагрузки в кастомных прошивках), на последнем этапе своей работы aboot загружает в память устройства ядро Linux и RAM-диск из раздела boot, а после этого передает управление ядру.
Сам раздел boot не содержит никакой файловой системы, а представляет собой сжатые с помощью gzip и записанные друг за другом ядро и RAM-диск, предваренные небольшим заголовком размером в два килобайта (он содержит опции загрузки ядра, а также адреса расположения образов и другую информацию). RAM-диск, в свою очередь, представляет собой небольшую виртуальную файловую систему, содержащую набор каталогов, к которым Android подключит файловые системы других разделов (system, data, sdcard), а также систему и скрипт инициализации и . RAM-диск загружается прямо в оперативку и продолжает существовать все время, пока смартфон включен.
Благодаря простой структуре образ раздела boot (boot.img) довольно легко распаковать. Это можно сделать даже с помощью HEX-редактора, но проще воспользоваться инструментом imgtool. Пример для Linux (x86_64):
Запакованные ядро и RAM-диск окажутся в каталоге extracted, а содержимое RAM-диска — в подкаталоге ramdisk_ext. Это в идеале. На самом деле, как и в случае с загрузчиком, никакого стандарта для формата раздела boot нет, и производитель может проявить фантазию. Нередко ядро и RAM-диск располагаются на разных разделах. Такую конфигурацию можно найти в старых моделях Samsung и устройствах на базе Rockchip.
Тем не менее в 95% формат раздела boot стандартный, и если ты когда-либо прошивал на свой аппарат кастомное ядро, то наверняка внутри ZIP-архива с ядром был именно образ boot.img, так что вместе с ядром ты прошивал также и RAM-диск. Когда ты это делал, тебе приходилось быть осторожным, ведь RAM-диск стоковой прошивки отличается от RAM-диска того же CyanogenMod. Прошив ядро для AOSP в CyanogenMod, ты мог получить bootloop и много других неприятностей.
Чтобы обойти эту проблему, разработчик CyanogenMod и автор ClockworkMod Recovery Кушик Дутта (Koushik Dutta, или Koush) создал систему AnyKernel, которая позволяет устанавливать ядра отдельно от RAM-диска (путем пересборки раздела boot на лету). Сегодня ее используют многие разработчики кастомных ядер, но далеко не все. Так что перед прошивкой ядра рекомендую либо найти его версию для того кастома, который установлен у тебя, либо убедиться, что оно использует механизм AnyKernel.
Какое бы ядро ты ни выбрал, тебе в любом случае понадобится кастомный recovery для его установки.