20 февраля 2013

Android и recovery

В своей статье «Android и Root«, а так же в статье «Android изнутри или просто о сложном» (автор Dreamer…) упоминался recovery, но что это такое и что с помощью его замены на кастомный можно делать подробно расписано не было. Меж тем, как это один из важнейших компонентов в тонкой настройке телефона, который позволяет заменять прошивку или делать резервную копию текущей. В этой статье я постараюсь исправить сие досадное упущение.

logo

Android и bootloader

Для более полного понимания того, что же такое Recovery вообще, на мой взгляд, стоит так же рассказать о том, что такое bootloader и как он со всем этим связан.
Итак, Bootloader — это загрузчик — приложение, которое самым первым запускается на вашем устройстве, считывает свою конфигурации, и на основании её либо загружает операционную систему (Android). Аналоги на настольных ОС — MBR в Windows и Grub с LILO на Linux.

mbr

Windows MBR

grub

Linux GRUB

bootloader

Android Bootloader

Помимо загрузки ОС, загрузчик предоставляет возможность выбрать ОС для запуска (если их несколько), выбрать режим запуска ОС (например «Безопасный режим в windows»), а так же запускать вспомогательные приложения к коим и относится Recovery. В некоторых случаях загрузчик всегда предоставляет меню для выбора ОС\режимов\приложений, в других для его отображения требуется нажать определённую клавишу\комбинацию клавиш, а в третьих меню отсутствует вообще и запуск альтернатив основной ОС осуществляется нажатием клавиш и\или их комбинаций. На настольных ОС чаще всего встречаются первые два варианта, на мобильных — последние два.

boot

Упрощённая схема загрузки ОС


примечание. Меню Bootloader’a в Android нередко по ошибке называют BIOS’ом устройства. Но это неправильно, т.к. загрузчик и BIOS совершенно разные вещи с совершенно разными задачами.

Что такое Recovery

Recovery — это дополнительное приложение восстановления\сброса\модификации\замены прошивки\ОС смартфона. Стандартные recovery подавляющего большинства смартфонов позволяют выполнить только первые две операции. Кастомные, т.е. нестандартные, ставящиеся пользователем, recovery позволяют делать намного больше. Для установки кастомного recovery, как правило, требуются root-привилегии на вашем устройстве (конкретно, при установке с самого устройства, без участия компьютера) и, в некоторых случаях, модификация bootloader’a. Установка производится либо при помощи специальных приложений в маркете, либо при помощи компьютера. Так же есть возможность запускать при помощи компьютера кастомный recovery, не устанавливая его на телефон (через adb).
Инструкции по установке recovery могут различаются от телефона к телефону, посему приведены здесь не будут. Их без проблем можно найти в интернете и на русском форуме 4pda и зарубежном xda-developers в частности, но в целом, как правило, достаточно установить определённое приложения из маркета (о них ниже) и с его помощью поставить recovery.
Как можно понять из приведущего раздела: Recovery и сама прошивка друг с другом непосредственно не связаны, следовательно модификация одной из составляющих, при стандартном раскладе, не затронет другую, а это значит что если вы, скажем, запороли текущую прошивку устройства — оно не становится «кирпичом» а легко поддаётся восстановлению путём установки другой через Recovery.

«Стандартные» функции кастомных recovery

  • install — устанавливает прошивку\ядро\системные утилиты (например набор приложений от google для cyanogenmod) из специального файла. Такие файлы представляют из себя обычные zip-архивы с определённой структурой. Некоторые такие архивы комплектуются специальной утилитой: Aroma Installer, которая представляет собой по сути графический установщик с возможностью выбирать параметры установки. Наличие\отсутствие Aroma Installer никак не связано с качеством или популярностью прошивки\ядра\утилиты.

  • backup\restore — пожалуй один из самых важных компонентов — позволяет делать полную или частичную резервную копию вашей текущей системы. КРАЙНЕ рекомендуется делать полные бэкапы при смене одной прошивки на другую, или же построенную на основе другой версии Android (например при обновлении с cyanogenmod 9 до 10) и частичные (разделы boot и system) при «минорных» (т.е. в рамках одной версии, например, с 10.1.1 до 10.1.2) обновлениях прошивки. Так же современные recovery генерируют сумму md5 к архиву с бэкапом, что позволяет контролировать его целостность (отсутствие повреждений). Отключить можно, но не рекомендую. Так же хочу посоветовать хранить минимум 2 последних бэкапа. В случае если последний повредится (лично у меня такого не было, но вероятность есть), у нас есть возможность восстановиться с предпоследнего. Вероятность повреждения обоих бэкапов куда ниже, чем одного (если не рассматривать физическое повреждения носителя, где они записаны).

  • wipe\format — очистка\форматирование разделов внутренней памяти. Вообще форматирование в подавляющем большинстве случаев не требуется, обычно достаточно простой очистки (wipe). Разделы cache и dalvik-cache рекомендуется сбрасывать при смене прошивки. Очистка раздела data (она же Factory Reset) ведёт к сбросу всех настроек пользователя, а так же установленных им приложений, иначе говоря, прошивка возвращается к своему первоначальному состоянию. Раздел system хранит саму прошивку и, как правило, автоматически форматируется при установке новой.

  • mount — позволяет монтировать\отмонтировать различные разделы. Это требуется в редких случаях, как правило, при установке модификаций системы. Трогать не надо, если это явно не указанно на странице с описанием устанавливаемого компонента, или же при установке не выведется ошибка о том, что требуемый раздел не примонтирован (например что-то в духе «error… no mount /system»).

Современные кастомные Recovery

ClockWorkMod \ ClockWorkMod Touch

Пожалуй самое известное кастомное Recovery, которое рекомендуется в подавляющем большинстве инструкций по прошивке и поддерживается практически всеми современными моделями смартфонов.ClockWorkMod Touch, в отличии от оригинала, имеет сенсорное меню и устанавливается только в платной версии RomManager’a. Большое преимущество CWM Touch, по сравнению с другими сенсорными recovery — возможность управление так же и физическими кнопками (кнопки громкости и выключения), что позволит, в случае проблем с сенсором, вернуть оригинальную прошивку и без проблем сдать по гарантии (если, конечно, вы не забыли сбросить что нибудь навроде счётчика прошивок в смартфонах от samsung).Из дополнительных опций можно отметить возможность создания SD-Ext раздела: грубо говоря, от карты памяти «откусывается» кусочек в отдельный раздел, форматируется в Ext2/3/4 (файловая система linux’a) и присоединяется к основной памяти смартфона: что позволяет устанавливать больше приложений, на тех устройствах, где производитель не позаботился о внутренней памяти. Размер раздела можно установить от 128Mb до 4096Mb (4Gb).

ClockworkMod

CWR

clockworkmod_touch

CWR Touch

Однако, у этого recovery есть один минус — при создании резервной копии невозможно выбрать что именно сохранять (boot\system\data) — сохраняется всё, что требует дополнительного времени и место на накопителе. Так же из собственного опыта: с CWR Touch на SGS3 не может установиться обновление CyanogenMod 10.1, полученное с помощью CyanDelta.
небольшой хинт: не обязательно ставить CWM Touch через очень дорогой Rom Manager Premium — вполне можно обойтись более дешёвыми (а то и бесплатными) средствами, навроде Mobile ODIN.
Скачать оффициальные образы recovery в img формате можно по следующей ссылке:http://www.clockworkmod.com/rommanager
В других форматах (например tar для ODIN) можно найти на xda-developers.

Так же существует модифицированная версия CWR Touch, содержащая дополнительные настройки (оформление) и возможности (выбрать что сохранять в резервной копии) — в целом весьма и весьма приятная вещь. Называется PhilZ Touch Recovery, скачать можно на xda-developers


Устанавливается при помощи приложения RomManager
RomManager
googleplay

Скачать бесплатную версию


googleplay

Купить за ~186р



4EXT

Очень напоминает ClockworkMod Recovery, так что 4EXT можно даже принять за своеобразную надстройку — умеет всё тоже плюс чуточку больше.От CWR отличается поддержкой тем оформления (как в текстовом, так и в сенсорном режимах) и некоторыми дополнительными функциями. Кстати, Touch Recovery появился у них гораздо раньше, чем у CWR. Из дополнительных функций: возможность подключать карту памяти, как накопитель, из самого Recovery (довольно удобно при экспериментах с прошивками), а так же преобразовывать Ext3 в Ext4 и наоборот (неактуально для Android 4.x).
Лично мне сенсорный режим понравился куда больше, чем в CWR — строки более широкие, т.е. легче попадать и есть иконки, которые облегчают навигацию.

4ext_s_1

4EXT

4ext_s_2

4EXT

Не обошлось и без недостатков: в сенсорном режиме нет возможности управлять меню при помощи физических кнопок — т.е. в случае поломки сенсора восстановить оригинальную прошивку будет куда как труднее. И что ещё мне не особо понравилось — довольно маленький список поддерживаемых моделей.
В целом, если часто работаете с прошивками и ваша модель смартфона поддерживается 4EXT — рекомендую. Стоит он дешевле CWR (Touch версии) и при этом более удобен. А в случае поломки сенсора ничто не мешает прошить обычный CWR с помощью компьютера и из него уже восстановить оригинальную прошивку.


Устанавливается при помощи приложения 4EXT Recovery Control
4extlogo
googleplay

Купить за ~93р



TWRP

Самый молодой из всех трёх Recovery. Существует только с сенсорным интерфейсом, но при этом предоставляет отдельный вид для планшетов (см скрины). Touch-интерфейс самодостаточен и не является своеобразной надстройкой над текстовым (как у CWR и 4EXT), что на мой взгляд более удобно. Особое внимание привлекает элемент для подтверждения какой-либо операции — он выполнен в виде знаменитого «slide to unlock». В целом пользоваться интерфейсом TWRP ощутимо удобнее, чем у его конкурентов. И это я ещё не упомянул о сменных темах оформления, которые могут влиять не только на внешний вид, но и на функциональное расположение элементов.Из функциональных отличий — возможность выбора разделов, сохраняемых в бэкапе, причём, помимо стандартных, в резервную копию можно так -же можно добавить кэш (cache) и сам Recovery. Так же меня очень обрадовала возможность сразу же указать имя архиву с резервной копией — очень удобно. Я, например, дал оригинальной прошивке имя «original», что позволяет мне при очистке резервных копий от ненужных пропускать её, не выискивая специально среди похожих имён. Повторяя слова из телешопов, «но и это ещё не всё» — резервную копию можно сжать (занимает меньше места, но в то же время создаётся ощутимо дольше) и отключить генерацию MD5-суммы (быстрее создаётся, но в случае повреждения архива это не выявится). Отдельно стоит упомянуть то, что при создании бэкапа — TWRP сразу же, ещё до начала, показывает объём памяти, занимаемый разделами, а так же свободное место на накопителях.
В общем то, что касается резервного копирования\восстановления — здесь TWRP на голову выше, чем CWR и 4EXT, что не может не радовать.
Так же, как и 4EXT, данный Recovery позволяет монтировать карту памяти, как накопитель, к компьютеру не переключаясь в прошивку. Причём это делается даже на SGS3, где полноценные прошивки не могут, без особых костылей, подключить флешку как обычный накопитель, а не по MTP.
Чем ещё примечателен данный recovery, так это поддержкой технологии full disk encryption (полное шифрование диска), которая может защитить ваши данные в случае потери телефона. Однако обойти её вполне возможно, так что всё равно не стоит хранить никакой особо ценной информации в смартфоне, во всяком случае в открытом виде. Тем не менее это весомый плюс данного recovery для тех, кто заботится о безопасности своих данных.

TWRP_s_0

TWRP на Смартфоне

TWRP_s_1

TWRP на Планшете

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


Устанавливается при помощи приложения GooManager

(МЕНЮ => Install OpenRecoveryScript)

goo

googleplay

Скачать бесплатную версию


Заключение

Если вы хотите выжать из своего смартфона максимум — вам наверняка захочется поставить стороннюю прошивку, и кастомное recovery в этом основной инструмент. Установить такое можно через специализированное приложение либо же при помощи компьютера (тут инструкции для каждого телефона индивидуальны). В первом случае требуется root, во втором же обрыв соединения с компьютером во время процесса прошивки может привести к плачевным последствиям.
Что касается списков поддерживаемых моделей — не обязательно их смотреть, выискивая свою модель — все описанные в статье программы для установки recovery способны самостоятельно определить модель вашего смартфона и проверить — есть ли для неё recovery.

Хотелось бы узнать по какой теме интересно было бы увидеть следующую статью у читателей android.mobile-review.com.Из идей, которые у меня пока есть — описание внутренней структуры ОС (вернее, скорее, принципов работы), с сравнением с Linux, как уже как-то советовал Павел (TimeS) — однако никакой практической пользы от такой статьи можно не ждать, да и времени она займёт немало. Вторая идея — статья о «баге внезапной смерти» у Samsung Galaxy S3 с примерным описанием принципа его работы и того, как его можно (возможно) избежать.
Жду ваших комментариев.

Ссылки по теме

android-root Android и root

andyAndroid изнутри или просто о сложном

Читайте также

  • TimeS

    Спасибо за статью =)

    Материал не только интересный, но еще и полезный.

  • noval4

    Дополнение по CWM 🙂
    Попробуйте поставить PhilZ Touch 4 Recovery для S3 (также есть для 9100, 7000, 7100) и будете приятно удивлены http://forum.xda-developers.com/showthread.php?t=2002953

  • Бага внезапной смерти есть и у S3? Заодно и про S2 расскажите — аппарат просто брикается при вайпе раздела данных (при определённых чипах памяти и старом рекавери, не обходящем эту проблему).

  • Дмитрий

    Вы забыли немаловажный факт — TWRP единственный умеет full-disk encryption, остальные — пока не умеют, насколько мне известно.

  • $22471748

    Полезный материал.

  • Спасибо, добавил

  • Спасибо, штука интересная, добавил о ней в статью

  • тиба

    Бага внезапной смерти есть и у S3

  • Денис

    первым грузится не бутлоадер, а радио. Не знаю как во всех устройствах, но в HTC так, именно радио

  • Денис

    Для установки рекавери рут не требуется!

  • Денис

    как правило сначала ставят кастом рекавери, а потом получают рут через рекавери, остальные способы не являются «чистыми»

  • Денис

    4EXT — это не надстройка, это написанный с нуля рекавери

  • Схема существенно упрощена так чтобы в ней остались только рассматриваемые в статье элементы. Про «радио» в ней не было сказано ни слова, посему и в схеме его нет.

  • Через компьютер — не требуется. Через приложение… я такого не встречал. Напишите как именно вы ставили, попробую на своём аппарата с запретом рута этому приложению.

  • Что такое «чистый» способ?

  • Денис

    ок, для понимания так проще

  • gff

    Получили root, качаем safestap и все!(в маркете его нет, 4pda в помощь;)

  • Денис

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

  • Денис

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

  • Денис

    safestrap только для моторолла

  • Денис

    конечно если писать более подробно и персонально под каждый бренд, то статья вырастит в несколько раз

  • Сделал в статье уточнение.
    А что касается «верности» способа — как по мне надёжнее таки будет установка с устройства, которое будет работать от аккумулятора ещё известное (пусть и примерно) количество времени, чем с компьютера, питающегося от непредсказуемой Российской электросети (согласитесь, что ИБП у компьютера, в отличии от аккумулятора в смартфоне встречается куда как реже). Да и использовать дополнительное устройство считаю лишним, всётаки области памяти, где хранится recovery, вообще по барабану откуда были записаны данные.

  • Хм, не припоминаю чтобы гугл вообще задумывал смену прошивок…
    Да и тут скорее вопрос религии, чем практики

  • Полностью согласен. Имел ввиду несколько другое, но действительно ужасно выразился. поправил

  • Feromon

    Автор статьи явно не имеет понятия о 4EXT Recovery, выбор разделов для backup’a имеется, исключить и добавить раздел cache также можно, все разделы кроме boot и recovery жмёт в .tar, так что можно достать из архива всё что угодно, просто открыв Winrar’ом, темы и стили оформления, да их валом, также отображает объем backup’а, и всю информацию о разделах, так что TWRP просто копия, и 4EXT был написан с нуля, в нём даже исходников от CWM нет, потому что команда запретила использовать!!,

  • «Из идей, которые у меня пока есть – описание внутренней структуры ОС»
    Это не идея
    «Вторая идея – статья о “баге внезапной смерти” у Samsung Galaxy S3»
    Это не идея
    «Хотелось бы узнать по какой теме интересно было бы увидеть следующую статью у читателей »
    Разработка мультиплеерных решений под Android

  • Полезный чем? Ваши критерии?

  • >Разработка мультиплеерных решений под Android<
    Это не идея

  • Писал по памяти с не самой свежей версии 4EXT, так что действительно мог многое напутать.

    > выбор разделов для backup’a имеется, исключить и добавить раздел cache также можнотак что можно достать из архива всё что угодно, просто открыв Winrar’омтемы и стили оформления, да их валомтакже отображает объем backup’а, и всю информацию о разделах, так что TWRP просто копияEXT был написан с нуля, в нём даже исходников от CWM нет, потому что команда запретила использовать!!<
    Тыкните меня носом туда, где я указал что 4EXT основан на коде CWR.

  • TimeS

    Иногда мне кажется, что вы бот…

    Ну нельзя же каждый раз писать абсолютно одно и тоже =) Или это такой социологический опрос?

    Я даже могу попробовать предсказать ваш следующий ответ — «Это субъективное мнение!» =)

    З.Ы. В некоторых случаях, перед тем как задать вопрос, лучше постараться подумать самому. В данном случае ответ совершенно очевиден. И либо он вас не устраивает из принципа, либо вы просто ищете повод поспорить. К сожалению, мне не интересны оба варианта.

  • Majestic Disco

    спасибо за труд.

  • Спасибо, кукурузо.
    Все ясно и понятно )))

  • AleX_L

    Помогите, плиз. Как можно поставить модифицированную рекавери, если не включается телефон? (стоит заводская рекавери)

  • Ted

    итак по порядку…

    как раз после разблокировки загрузчика, пытаясь шить прошивку тем recovery что установлен по умолчанию начал чесать репу, а почему же ничего не получается…. я уже передумал и что разблокировка прошла криво и какието аппаратные неисправности ….

    Умные люди подсказали что нужно сначала прошить кастомный recover и даже показали какой и где взять… но несмотря на то что консоль убедительно писала о том что все ок, recovery по прежнему продолжало зависать при запуске
    ( только на предустановленой recovery был треугольник с восклицательным знаком, а на кастамном стал знак htc на белом фоне). все подозрения сводились к тому что у меня s-on а не s-off , но как выяснилось это ни при чем.

    Основная причина в том что для разных телефонов нужны свои recovery для большинства телефонов можно найти в таблице
    по следующей ссылке
    http://www.clockworkmod.com/rommanager

    во второй калонке img образы. Взяв оттуда img и прошив его, консоль снова радостно отрапортовала ОКEY но теперь все действительно

    было OKEY! recovery заработало!

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

    Я счастлив чего и всем желаю)

  • саша

    помогите я отключил чтото в рекавари и у меня не запускается телефон вот почта fila012@mail.ru

  • федор

    вообще не о чем,мне надо восстановить boot loader, тел не вкл,так и не понял как это сделать

  • Гость

    Я за «описание внутренней структуры ОС».