Программа для прошивки кастомных прошивок
Покупаешь новый смартфон и ходишь радостный пока опять новый кастом не накатил. Он и работает шустро, и игрушки идут лучше, уж побыстрее стока, но тут прилетело OTA, ядро новое вышло, да и Magisk обновился уже — пора ставить апдейты и получать “бутлупы”. Да, от общего числа пользователей Android смартфонов доля тех, кто сидит на кастомах крайне мала. Однако, всё же людям приходят в голову странные мысли по типу: “А не прошить бы мне свой Xiaomi, что б летал как ракета”. По такому случаю статья, в которой рассказывается про кастомные Android прошивки от А до Я.
Кастомные прошивки и их классификация
Что же из себя представляет кастомная Android-прошивка? Это система, к созданию которой причастны сторонние разработчики, то есть любая неофициальная прошивка. В большинстве случаев отличительными чертами подобных прошивок является иная оболочка, модифицированное ядро системы, широкая кастомизация и много разных плюшек, которых нет в официальных Android прошивках, созданных компанией-производителем. Чаще всего такие прошивки работают быстрее официальных, но реже они работают стабильнее. Существует огромное множество кастомов, которые делятся на виды, изучением которых мы сейчас и займёмся.
Вот основые вариации Android-прошивок:
Официальная от производителя (стоковая)
Кастомная, собранная из исходников
А теперь про каждую поподробнее. Официальная прошивка от производителя установлена в смартфоне с завода: то есть вы покупаете телефон именно с ней. Её делал отдел компании-производителя, который отвечает за программное обеспечение своих устройств. Также, любая уважающая себя компания, предоставляет исходный код прошивки, которую они создали, те самые исходники. Далее по списку кастомная прошивка, собранная из исходников — та, которую собирали сторонние разработчики. Такая прошивка является модифицированной и может включать в себя всевозмножные улучшения и кастомизации, которых не было в официальной. Следующая у нас GSI-прошивка — отличается от двух предыдущих тем, что при её установке не затрагивается раздел Vendor, так как GSI-образ это и есть образ системы. Работают эти GSI прошивки куда медленнее и менее стабильно, чем собранные из исходников. Ну и последняя — порт прошивки с другого девайса. Это прошивка, полностью перенесённая с иного устройства и изменённая для работы на конкретном смартфоне. По большей части это самые багованные прошивки, так как система не просто не родная, она ещё и содрана с другого устройства. Но их используют: к примеру те же любители фирменных оболочек различных устройств. Существует огромное колличество портированных прошивок со смартфонов OnePlus с их оболочкой OxygenOS, которая многим приходится по душе.
Мы будем рассматривать именно те кастомы, которые собираются из исходного кода. На это есть ряд причин, а именно: такие прошивки работают быстрее остальных, они стабильнее и представляют из себя полноценную замену стоковой, так как собирались под конкретный девайс, а не имеют лишь образ System как GSI и не являются портированными. Естественно, не без учёта качества сборки. На данный момент кастомы имеют широкое распространение среди многих моделей различных брендов, также, само сообщество создателей кастомов постоянно растёт и развивается, поэтому найти стабильно работающую прошивку по свой смартфон не представляет особой трудности.
Существует классификация прошивок, показывающая, на основе какого исходного кода взята база для сборки:
AOSP — Android Open Source Project. Представляет из себя абсолютно голую систему Android, на которую в последующем "навешивают" оболочки, по типу One UI, MIUI, OxygenOS и так далее. Даже в сматфонах Google Pixel не AOSP, в них установлена собственная оболочка.
CAF — Code Aurora Forum. Проект Linux Foundation, который содержит программный код для прошивок смартфонов на базе процессоров Qualcomm. Прошивки, которые базируются на CAF-тегах могут быть не самыми стабильными, но за счёт последних версий драйверов они имеют ряд приемуществ: лучшая производительность, более высокая скорость интернет соединения, хорошая автономность и улучшенное качество звучание.
LineageOS — кастом, на котором базируются многие другие кастомы, вроде CRdroid, Resurrection Remix и им подобные. Изначально был CyanogenMod: именно он был на слуху, да и развивался постоянно. Позже переименовался в LineageOS. В какой-то момент в AOSP было внесено столько изменений разработчиками линейки, что её начали использовать как базу для других прошивок.
Зачем же нужны кастомные прошивки?
Простому пользователю — незачем. Если хочется поиздеваться над устройством, либо наоборот преобразить его с помощью новоиспечённого кастома на последней версии Android и перевернуть в нём всё, чтобы сделать так, как хочется — это ваше. Когда человек ставит кастом, он берёт ответственность за работоспособность девайса полностью на себя, и в случае, если вдруг что-то пойдёт не так, а вы не сможете починить свой смартфон, то, это уже будет ваше личное дело. Скорее всего ваш случай не попадёт под гарантийный, даже если сломалась аппаратная часть смартфона. Придётся как минимум заставлять СЦ проводить нормальную диагностику, чтобы исключить самую тупую причину поломки: кастом. Также, почти любую софтовую поломку во время прошивки можно устранить в домашних условиях, не прибегая к помощи работников сервисного центра. Так что если кто надумал шиться, знайте: кирпич это не так страшно. В любом случае в интернете есть огромное колличество гайдов "как и что в случае чего".
Рассматривая использование на повседневной основе кастомной прошивки, созданной хорошим сборщиком, можно ощутить высокую плавность и скорость работы пользовательского интерфеса в сравнении со стоковой прошивкой. Прирост производительности в играх и повышение автономности также обеспечены. Вполне возможно улучшение качества звучания, фото и видео съёмки смартфона. Если не из основного, то кастомы часто имеют последние патчи безопасности и обновления системы, которые повышают стабильность и скорость работы устройства. Также, в зависимости от прошивки появляются возможности кастомизации, которых не было в стоке.
Процесс установки прошивки и разделы накопителя
Итак, вот мы и подошли к самому главному: установка. Это универсальная инструкция для всех смартфонов, которая будет работать при установке большей части прошивок. Но, на некоторых устройствах могут быть свои особенности установки, которые нужно уточнять в источнике откуда берёте прошивку. Обращать внимание на нюансы действительно очень важно, так как если шить "как захотел", то в лучшем случае можно получить "бутлуп", а в худшем будет "кирпич". Все манипуляции должны производится на уже разблокированном загрузчике. Разблокировка осуществляется с помощью софта от производителя смартфона, либо командами Fastboot. За подробностями — в тему своего устройства.
При подготовке скачиваем всё, что необходимо для установки прошивки: нужное TWRP, последний Firmware (если имеется на ваш смартфон), сама прошивка, кастомное ядро (вдруг нужно), патчи и фиксы (при надобности), по желанию GAPPS (Google Apps), дешифратор (снятие шифрования Data) и Magisk (Root-права). После того, как всё скачалось, лучшим вариантом будет перекинуть все эти файлы на флешку, чтобы шиться с неё. Из всего выше перечисленного для установки прошивки нужно только TWRP и сама прошивка, но, чаще всего люди шьют и всё остальное, поэтому вот последовательность, которая включает в себя самую обычную установку прошивки.
Ставим TWRP на свой смартфон:
TWRP - модифицированная версия Recovery (режим восстановления), в котором мы и будем производить все манипуляции. Для этого достаточно установить драйвера для своего устройства на компьютер и прошить образ нужного TWRP в раздел "Recovery" (если не грузиться, то и в Boot) через специальную утилиту в зависимости от платформы процессора смартфона: MediaTek или Qualcomm (SPFlashTool или Minimal ADB and Fastboot). Выбирайте TWRP на вкус и цвет, главное чтобы работало. Если TWRP уже установлен, сразу начинаем со второго пункта.
Очистка разделов смартфона:
Основные разделы смартфона, которые видно в TWRP:
Dalvik / ART Cache — кэш виртуальных машин Dalvik / ART.
Cache — системный кэш.
Data — раздел с данными системы и всех установленных в ней программ.
System — сама система. Те же GSI-образы устанавливаются именно в этот раздел.
Vendor — бинарники, конфиги, библиотеки. В общем всё, что запихнул производитель в смартфон, для нормальной его работы.
Внутренняя память — она у вас на главной странице в проводнике. Созданные или скачанные вами файлы.
Micro SDCard — точка монтирования карты памяти (флеш-память).
USB OTG — точка монтирования флешки, либо харда, подключенных по OTG-кабелю.
Заходим в TWRP той комбинацией клавиш смартфона, которой заходят в режим Recovery и производим очистку смартфона, чтобы кастом шился на чистый накопитель. Для этого в TWRP ищём пункт связанный с очисткой и заходим в него. Там же мы наблюдаем разделы смартфона и галочки рядом с ними. Нам нужно поставить галки напротив разделов Dalvik / ART Cache, Cache, Data, System, Vendor (необязательно), Внутренняя память, но не ставить на Micro SDCard и USB OTG, которые указывают на SD-карту, либо OTG-накопитель, в зависимости от того, где у вас лежат файлы для прошивки. После мы просто проводим свайп для очистки разделов (вы потеряете все данные на смартфоне). Далее нам нужно отформатировать DATA-раздел. Делается это там же в меню очистки с введением подтверждения в виде слова "yes". После успешного форматирования DATA-раздела нам нужно сделать перезапуск в TWRP. Зачем? Это может быть необходимо, для правильного определения разделов самим TWRP во избежание ошибок при установке прошивки. Также, существует вариант OTA-обновления: установка прошивки как обновления уже существующей, без форматирования памяти.
Грузимся обратно в TWRP и приступаем к установке:
Выбираем накопитель на котором лежат необходимые файлы и ставим всё в такой последовательности:
Прошивка (Система, которую ставим)
Перезагрузка в TWRP (По причине, описанной выше)
Перезагрузка в TWRP
Необходимые патчи / фиксы
GAPPS (Google Services)
DFE (Отключение шифрования)
Magisk (Root права)
Перезагрузка в систему и дальнейшая её настройка на ваш вкус.
Составляющих в последовательности установки может быть и меньше. Как я уже сказал, достаточно в TWRP установить лишь прошивку и если ей ничего более не нужно, то она запустится и будет работать.
Проблемы при установке прошивки
Ошибки могут быть разные, но решаются по одному и тому же алгоритму. Если TWRP выдаёт ошибку, то:
Проверить какую прошивку вы ставите. Всякое бывает, можно и не свою скачать случайно.
Перечитать инструкцию если таковая есть, вдруг что-то пропустили.
Перекачать установочный zip с прошивкой (он может быть битый).
Если 1-2-3 не сработали, то проводим очистку разделов и форматируем Data.
Крайний случай: прошиваем стоковой прошивкой через фирменный прошивальщик.
Только при наличии программатора и умения с ним работать: шьём через него сток (может решить проблему, если не помог обычный прошивальщик)
Пробуем восстановить смартфон по индивидуальной для каждого инструкции "Восстановление из кирпича", которая ищется в теме своего устройства.
Если совсем никак, скорее всего проблема в железе. Поэтому остаётся только вариант сервисного центра.
Все проблемы, которые могут возникнуть в рабочей системе решаются установкой "Фикса от Васяна", сменой ядра, либо установкой другого кастома.
Если вы уже решили заняться этим делом, то ищите и пытайтесь пофиксить, а ещё лучше показать остальным как вы решили свою проблему, если решения до вас не было.
Выводы: нужно оно нам, или нет
Для начала придётся немного пострадать, а там уже опыт наберётся и можно будет шиться без гайдов и фиксить любую проблему самому. Получение удовольствия от использования своего смартфона станет не таким редким явлением. Захотели себе что-то особенное и лучше чем сток? Готовы уделять этому время? Форумы с прошивками вас ждут. "Кастом будет всегда лучше любого стока" — эта фраза будет иметь смысл только в том случае, если прошивка хорошо собрана, имеет ядро с различными оптимизациями и почищена от мусорных приложений. Тут дело уже не во вкусах, а в том, как на самом деле.
Наверняка у тебя как у пользователя Android возникало желание сделать операционную систему лучше, добавить полезное, убрать лишнее и поделиться своим творением с обществом. Сборка собственной прошивки из исходников — сложный процесс, требующий глубоких знаний предмета, однако никто не запрещает взять стандартную прошивку смартфона и адаптировать ее под свои нужды. Это не так уж и сложно сделать.
Начнем с того, что тебе нужен Linux. В Windows ты сможешь только разобрать прошивку, но собрать обратно уже не получится по чисто техническим причинам. Теперь о прошивке. Обычно они распространяются в виде ZIP-архивов, прошиваемых через кастомные рекавери. Именно один из них нам и понадобится для опытов. Начинать путь ромодела я рекомендую с какой-нибудь максимально приближенной к AOSP кастомной прошивки, потому что в ней зачастую проще разобраться, чем в стоке.
Нужный ZIP можно найти на XDA Developers или 4PDA. Но имей в виду, что нужна прошивка конкретно для твоей модели аппарата, — у того же Galaxy S7 есть несколько модификаций для разных рынков, не всегда совместимых между собой.
Структура ZIP-файла с прошивкой
После загрузки распакуем архив с помощью любого архиватора. Внутри будет следующий набор файлов и папок:
- META-INF — папка с метаинформацией о прошивке (сертификат автора, манифест со списком файлов, их контрольными суммами), скриптом обновления (updater-script) и инсталлятором (update-binary), который выполняет команды скрипта по монтированию разделов, копированию файлов и другим действиям с NAND-памятью;
- boot.img — образ с ядром и RAM-диском (он прошивается в раздел boot);
- system.new.dat — это, грубо говоря, и есть сама прошивка, а точнее образ раздела system, содержащий операционную систему Android за вычетом ядра;
- system.transfer.list — содержит список команд, которые необходимо выполнить, чтобы поблочно скопировать содержимое system.new.dat в раздел system при установке прошивки;
- system.patch.dat — используется для OTA-обновлений, то есть выборочного внесения изменений в прошивку; если прошивка «полная», он имеет нулевой размер.
Рекомендуем почитать:
Распаковываем system.new.dat
Файлы system.new.dat и system.transfer.list представляют для нас наибольший интерес. Точнее, не они, а содержащаяся в них система. Но добраться до нее не так просто.
Скрипт
Самые ленивые могут разобрать прошивку с помощью скрипта System_Extractor-Linux.
- Распаковываем архив с прошивкой в любую папку.
- Качаем скрипт по ссылке и разархивируем в любую папку.
- Запускаем файл ext (если будет ругаться на отсутствие Java, просто пропусти, нажав y ; Java нужна только для запаковки).
- Теперь выбираем распаковку, нажав кнопку 1, а затем Enter.
- Новая папка с именем extract_* появится рядом с файлом ext и папкой tools . Копируем в нее файлы system.new.dat и system.transfer.list .
- После копирования файлов нажимаем Enter и ждем. Через некоторое время нужно будет опять нажать Enter, ввести пароль администратора и еще раз тапнуть Enter.
- Готово. Содержимое system в папке extract_*/output .
Ручной способ
Распаковываем архив с прошивкой в любую папку (например, в rom ):
Скачиваем нужные нам инструменты в эту папку:
Он преобразует файл system.new.dat в raw-образ с именем system.img . Монтируем образ к подпапке mnt :
Содержимое образа system
Структура каталогов Android
После распаковки system появится следующая каталоговая структура:
- app — предустановленные приложения со стандартными привилегиями;
- priv-app — предустановленные приложения с повышенными привилегиями, в том числе некоторые компоненты системы;
- bin — бинарные файлы формата ELF, аналог каталогов /bin и /usr/bin в Linux. Содержит различные системные компоненты, используемые более высокоуровневыми компонентами системы;
- etc — файлы настроек. Полный аналог /etc в Linux, используемый, однако, только теми самыми системными компонентами. Приложения Android хранят индивидуальные настройки в каталогах /data/data/ ;
- fonts — шрифты. По умолчанию содержит только фирменные шрифты Roboto;
- framework — библиотеки Java-классов, используемых системой и приложениями. Тут же лежит файл framework-res.apk , содержащий полное описание интерфейса операционной системы, включая все графические файлы;
- lib и lib64 — Linux-библиотеки, используемые низкоуровневыми компонентами системы. Аналог каталогов /lib и /usr/lib в Linux, включая такие стандартные библиотеки, как libc, libz, libssl. На устройствах с архитектурой ARMv7 и ниже каталог lib64 будет отсутствовать;
- media — медиафайлы: рингтоны, звуки уведомлений, звуки интерфейса и анимация загрузки ОС;
- tts — файлы, необходимые синтезатору речи;
- usr — каталог, который обычно содержит файлы, необходимые для работы приложений из каталога bin. По сути, аналог /usr/share ;
- vendor — файлы, поставляемые производителем устройства. Обычно содержит бинарный firmware для различных железных компонентов, например модуля Wi-Fi;
- xbin — необязательный каталог; кастомные прошивки используют его для хранения таких вещей, как интерпретатор bash, SSH, PowerTOP, BusyBox, и других полезных инструментов;
- build.prop — файл, содержащий информацию о сборке, а также различные низкоуровневые настройки;
- addon.d — содержит скрипты, запускаемые после установки прошивки. Сюда же GApps прописывают свой скрипт, благодаря которому возрождаются после переустановки прошивки.
Ознакомившись с базовой структурой Android, начнем вносить изменения.
Удаляем и добавляем приложения
Все предустановленные программы можно найти в двух папках:
Друг от друга они отличаются привилегиями доступа. Если программы из app имеют такие же полномочия, как сторонние программы (например, установленные из Play Store), то приложения из priv-app могут использовать привилегированные API (права privileged). Подробнее об этом можно узнать из нашей статьи.
Для предустановки приложения в прошивку просто кинь ее APK-файл в /system/app/ . Можно, конечно, создать отдельную папку, но в нашем случае в этом нет смысла, потому что папка служит для хранения библиотек и odex-файлов, которых у нас попросту нет. Для удаления просто удали папку с ним.
Можно пойти дальше и поменять стоковые приложения на аналоги. К примеру, для замены календаря удаляем папку Calendar и копируем в /system/app наш любимый com.rpagyc.simplecalendar.apk . А можно и не копировать. Тогда прошивка будет без календаря.
Главное, помни: стоковые программы могут быть связаны между собой. Поэтому удаление одной проги вполне может привести к полной неработоспособности другой (к примеру, CalendarProvider и Calendar: удалив первый, ты сделаешь неработоспособным не только стоковый, но и любой другой календарь). К счастью, в чистых AOSP-прошивках взаимосвязей не так много.
Меняем анимацию загрузки
Анимация хранится в виде PNG-картинок, упакованных в архив /system/media/bootanimation.zip без сжатия. Внутри архива находятся:
- desc.txt — файл, описывающий анимацию;
- part0 — папка с файлами анимаций, которые воспроизводятся первыми;
- part1 — папка с файлами анимаций, которые воспроизводятся вторыми;
- .
- part? — крайняя папка, изображения с которой воспроизводятся в конце.
Файл desc.txt может содержать нечто вроде
Назначение этих строк интуитивно понятно: 1920 × 1080 — разрешение картинки, 60 — число кадров в секунду. Part0 и part1 указывают на папки, из которых будет воспроизводиться анимация, и последовательность воспроизведения. Вообще, может быть как одна часть, так и несколько (три и больше).
Изображения, находящиеся в папках part, пронумерованы пятью цифрами в порядке воспроизведения: 00000.jpg , 00001.jpg , 00002.jpg . Эти изображения можно поменять на свои, тем самым создав оригинальную анимацию. А можно просто удалить файл bootanimation.zip . Тогда девайс будет показывать анимацию из стандартного Android. Или воспользоваться уже готовой коллекцией анимаций на 4PDA.
Четыре части в bootanimation.zip для LineageOS
Изменяем звуковое оформление
Фактически все звуки, которые воспроизводит система, хранятся в папке /system/media/audio . Внутри нее ты найдешь следующие папки:
- alarms — мелодии будильника;
- notifications — звуки уведомлений;
- ringtones — мелодии звонка;
- ui — системные звуки, например низкий заряд батареи, фокусировка камеры, выбор элементов интерфейса.
В alarms, notifications, ringtones можно накидать сколько угодно любых мелодий. Взять их можно, например, здесь:
И маленький лайфхак: удаление файлов из папки ui приведет не к сбоям и ошибкам, а к исчезновению системных звуков. Поэтому ты можешь легко отключить звук создания снимка с камеры, снятия скриншота, просто потерев содержащие эти звуки файлы (их имена интуитивно понятны).
Добавляем шрифты
Шрифты хранятся в fonts . Найти архивы с файлами шрифтов можно на 4PDA и XDA. Для установки достаточно скопировать с заменой ttf-файлы из архива в папку fonts .
Меняем системные настройки (build.prop)
В образе system есть интересный файлик build.prop , содержащий множество полезной информации о железе устройства и настройках, устанавливаемых по умолчанию, для различных стоковых приложений. Справедливости ради замечу, что это не всегда так. Например, в Gigaset ME и ME Pro build.prop разделен на две части. В одной части содержатся настройки для Gigaset ME, а для ME Pro некоторые строки продублированы, но ключи (название смартфона и так далее) в них другие. Это было сделано, чтобы обеспечить более-менее корректную работоспособность одной и той же прошивки на разных аппаратах.
Дополнительный файл для Gigaset ME и ME Pro
Build.prop содержит (или может содержать) огромное количество настроек. Некоторые из них ничего не меняют, некоторые улучшают одно за счет ухудшения другого, но есть те, которые действительно полезны:
- ro.product.model и ro.product.manufacturer — модель смартфона и имя производителя. С помощью замены этих строк можно заставить Play Store думать, будто у тебя другой смартфон, что откроет доступ к большему количеству софта. Для всяких малоизвестных китайских смартфонов эти строчки могут стать спасительными;
- hw.qemu.mainkeys — принимает только два значения: 0 — показать наэкранные клавиши навигации, 1 — не показывать кнопки. Отсутствие строки соответствует 0;
- debug.sf.nobootanimation — значение 1 отключает анимацию загрузки, что немного поднимает ее скорость. Установка 0 или удаление строки возвращает анимацию на место;
- ro.telephony.default_network — говорит системе, в какой режим должна быть переключена мобильная сеть при загрузке;
- ro.sf.lcd_density — DPI дисплея, наиболее точное значение для дисплея можно посчитать через удобный сайт. Но никто не запрещает поставить и большее или меньшее значение по своему вкусу: более высокие значения делают элементы интерфейса крупнее, низкие — меньше;
- ro.config.vc_call_vol_steps — количество шагов громкости во время разговора (по умолчанию 8);
- ro.config.media_vol_steps — количество шагов громкости мультимедиа (по умолчанию 15).
Внедряем в прошивку Google Apps
Почти всегда кастомные прошивки поставляются без сервисов Google и магазина приложений. Разработчики предлагают нам установить их отдельно с помощью пакета GApps. Однако его можно интегрировать прямо в прошивку.
Для начала необходимо скачать пакет GApps. Я рекомендую брать архивы Open GApps. Выбираешь версию Android, архитектуру процессора и вариант комплектации (Pico, Nano, Stock. ), который определяет, сколько различных приложений Google содержит архив. Я рекомендую скачать версию Pico. Она содержит только Play Store и набор необходимых для его работы библиотек.
Интеграция GApps в прошивку выполняется так:
- Распаковываем ZIP-архив GApps с помощью любого архиватора.
- Переходим в папку Core.
- Видим множество архивов с расширением .tar.lz . Извлекаем с помощью lzip.
- После распаковки копируем файлы из папок в соответствующие папки в system. Что куда кидать, нетрудно догадаться по структуре каталогов в архиве. Например, configupdater (со скриншота) нужно кидать в папку priv-app .
- Переходим в папку GApps (находится рядом с Core) и проделываем пункты 3 и 4 для файлов в ней.
- Все, мы интегрировали GApps в нашу прошивку!
Свободное место
Необходимо понимать, что место для установки прошивок ограниченно. Нельзя установить прошивку, размер которой перевешивает размер раздела system устройства. Посмотреть его значение можно, используя ADB:
Инфа о разделе system
Второй вариант: поставить на устройство терминал и набрать команду
Размер раздела в байтах можно узнать, установив на смартфон BusyBox и выполнив в терминале команду
Или то же самое с помощью ADB:
Место, занимаемое прошивкой, будет приблизительно равно размеру system в распакованном виде. Вообще, при создании прошивки необходимо учитывать, что юзер также может прошить поверх нее различные модификации (SuperSU, Xposed) или перенести приложения в раздел system. Например, минимальный пакет приложений Google (Pico) требует минимум 150 Мбайт дополнительного пространства для установки.
При необходимости размер файла прошивки можно уменьшить, удалив не только ненужные программы из /system/app ( /system/priv-app ) и звуки вызова из system/media/audio и bootanimation.zip , но и:
- /system/tts/lang_pico — языки примитивного голосового движка Pico TTS, голосовой движок Google это не затронет;
- /system/usr/srec/config/ — офлайн-языки. Можно будет скачать потом онлайн, если понадобится.
Сборка
После внесения изменений нужно собрать все обратно. Сначала запакуем раздел system в system.new.dat . Скачиваем нужные нам инструменты:
Преобразовываем нашу папку обратно в RAW-образ. Назовем его system_new.img :
1073741824 меняем на размер раздела system в байтах. Желательно даже сделать его чуть меньше. Делаем из RAW-образа sparse-образ:
Преобразуем наш образ в system.transfer.list и system.new.dat , которые и нужно кидать в архив с прошивкой, но сначала удалим старые файлы:
Отделим файлы прошивки от лишней шелухи (файлов, которые мы загружали для работы. Для этого удобно пользоваться архивом с прошивкой). Удалили? Теперь нужно запаковать прошивку в ZIP-архив (любым архиватором).
Осталось подписать архив. Сделать это можно как на самом Android с помощью ZipSigner, так и на ПК (потребуется установленная Java):
Подводные камни
Во время сборки system.new.dat ты можешь столкнуться с несколькими проблемами, вызванными постоянными изменениями в механизмах формирования прошивок Android. Описанный выше способ должен хорошо сработать в случае основанной на Android 5.1 прошивки, в более новых могут возникнуть сложности, так что потребуется использовать другие версии инструментов сборки. К сожалению, мы не можем описать все нюансы сборки, поэтому, возможно, придется погуглить.
Установка
Для установки кастомной прошивки необходим кастомный рекавери TWRP, позволяющий устанавливать неподписанные или подписанные тестовым ключом прошивки (именно такую мы создали). В журнале мы неоднократно описывали процесс его установки, да и в ветках форума, посвященных твоему устройству, обычно есть достаточно информации для того, чтобы это сделать.
Выводы
Эта статья описывает лишь верхушку огромного айсберга под названием «модификация прошивок». «Серьезные» прошивки не только дополняют ядро и саму прошивку со стоковыми приложениями множеством функций (которые зачастую вырваны из других ядер и прошивок), организовывая или даже меняя принципы их взаимодействия, но и вполне могут кардинально менять принципы работы ОС. Правда, такая поделка — это уже не Android, а отдельная ОС, даже если Play-сервисы получится туда поставить (кстати, такие действия, мягко говоря, не поощряются Google). Ну и не забываем: все оболочки от производителей — TouchWiz, ZenUI, HTC Sense и так далее — всего лишь обычные кастомы, максимально привязанные к железу устройства и друг к другу.
Несколько лет назад такие операции, как рутинг, прошивка и тюнинг Android-смартфона, требовали достаточно глубоких знаний, специальных инструментов, совместимых только с настольной Windows, и массу терпения. Сегодня все стало намного проще и все эти действия можно выполнить с помощью специального софта для смартфона, доступного прямо в Google Play.
Введение
Обычно установка альтернативной прошивки на девственно чистый смартфон выглядит примерно так: сначала ты находишь в Google информацию по рутингу своей модели смартфона, затем обзаводишься необходимыми инструментами (Android SDK, adb, fastboot, скрипты), подключаешь смартфон к компу и пытаешься как можно точнее выполнить инструкции. Если все удалось, ты получаешь root и, в некоторых случаях, в довесок кастомную консоль восстановления.
Далее следует установить прошивку. Для этого ты вновь погружаешься в интернет и, спустя полчаса хождения по форумам и чтения информации о совместимости, находишь и скачиваешь zip-архив с прошивкой. Снова подключаешь смартфон к компу и скидываешь на него прошивку. Затем ты выключаешь смартфон, включаешь его, зажав кнопки уменьшения громкости и включения, и получаешь доступ к консоли восстановления. Пять минут походив по меню с помощью клавиш громкости, ты находишь свою прошивку на карте памяти и даешь команду на установку.
После окончания установки ты перезагружаешь смартфон и молишься, чтобы все получилось. Когда на экране появляется рабочий стол, ты с облегчением выдыхаешь и тут же вспоминаешь, что забыл скачать и установить приложения Google и ядро. Что ж, для этого ты еще полчаса проводишь в интернете, находишь искомые zip’ы, скидываешь их на карту памяти, дальше консоль восстановления, тыканье по меню, ожидание со скрещенными пальцами, и вот оно, рабочий стол… блин, надо было устанавливать другую прошивку…
Знакомая картина? Если да, то эта статья для тебя. Из нее ты узнаешь, как проделать все то же самое за десять минут, подключив смартфон к компу только один раз на две минуты.
Что ты хочешь и что ты получишь?
Итак, предположим, что ты держишь в руках совершенно новый смартфон. Твоя задача — установить на него CyanogenMod (как вариант — AOKP, ParanoidAndroid или популярный SuperVasyaAndroidModPlus) и ядро franco.kernel. И тот и другой распространяются в прошиваемых через консоль восстановления zip-файлах. Однако обычная конcоль их не примет из-за кривой цифровой подписи («не производителя это подпись, прощайте»). Поэтому тебе нужна кастомная консоль восстановления, которая не обращает внимания на цифровые подписи. Это может быть ClockworkMod или TWRP.
Бесплатная версия franco.updater не умеет ничего, кроме установки и обновления ядра
Другие статьи в выпуске:
Но! Чтобы установить кастомную консоль восстановления, нужны права записи во внутреннюю память смартфона, то есть нужен root. А root в «не Nexus» устройствах всегда получают с помощью взлома защиты Android. Итого в целом картина действий выглядит так: получение root -> установка консоли восстановления -> прошивка CyanogenMod -> прошивка приложений Google -> прошивка ядра -> перезагрузка -> радость. Давай посмотрим, как все это сделать.
В CyanogenMod есть собственный механизм OTA-обновления прошивки
Перво-наперво нам нужен root. Сразу скажу, что это единственная задача, для решения которой придется подключить смартфон к компу. Здесь уж ничего не поделаешь, система безопасности Android не позволит сделать это Android-приложению. С другой стороны, плеваться тоже не стоит, так как все делается очень быстро и безболезненно. Общий алгоритм действий выглядит так:
По заявлению украинских разработчиков, iRoot действует в отношении любого смартфона под управлением Android 2.3–4.2.2, а не только устройств от Huawei, как можно было подумать, скачав и запустив приложение. После завершения работы и нескольких перезагрузок на смартфоне должно появиться приложение SuperUser и, конечно же, root-доступ, который откроет нам путь для установки рекавери и прошивок.
iRoot — получаем root в один клик
Установка Recovery
Установить кастомную консоль восстановления между тем очень просто. Для этого в маркете есть куча приложений, но я бы рекомендовал использовать Recovery-Tools, ROM Manager или TWRP Manager. Первая предназначена исключительно для установки рекавери и, по сути, состоит всего из двух кнопок: «Flash Clockworkmod Recovery» и «Flash TWRP Recovery». После нажатия одной из них будет установлена та или иная консоль восстановления. В принципе, неважно, какую из них устанавливать, отличие разве что в том, что TWRP удобнее управлять пальцем, но и эта функция нам безразлична — самостоятельно рыться в их настройках мы не будем, а положимся на специальный софт.
ROM Manager предлагает нам установить ClockworkMod Recovery
По идее, Recovery-Tools должна сама определить модель смартфона и скачать правильный архив с консолью, однако этот механизм срабатывает не всегда, да и база данных неполная. Поэтому как запасной вариант можно использовать ROM Manager, предназначенный исключительно для установки ClockworkMod, но зато включающий в себя исчерпывающую базу устройств. Опять же все, что нужно сделать, — это нажать на кнопку Recovery Setup -> ClockworkMod Recovery, подтвердить модель телефона и дождаться окончания установки.
TWRP-Manager: простой и удобный способ управления TWRP Recovery
Если же и этот метод не сработал, то стоит обратить внимание на модель своего смартфона и убедиться, не китайская ли это поделка. Само собой разумеется, супердешевые китайские телефоны нельзя прошить таким образом. Никто их в базу вносить не будет, а заниматься поддержкой тем более. Поэтому в отношении китайцев придется применять старый дедовский способ ручной установки (да и то тебе сильно повезет, если на него вообще что-то будет портировано).
Recovery-Tools: простой и удобный способ установки рекавери
Установка прошивки
Теперь, когда смартфон оснащен кастомной консолью восстановления, он готов принять любую доступную для данной модели прошивку и проглотить ее, не поперхнувшись. Самостоятельно искать прошивки мы, конечно же, не станем. Мы автоматизируем этот процесс с помощью приложения GooManager. Для тех, кто не в курсе: еще с самого начала распространения кастомных прошивок в Сети появился сайт. Изначально на нем размещался проприетарный гугловский софт (типа Gmail или маркета), который авторы кастомных прошивок не могли использовать из-за лицензионных ограничений, но затем он превратился в открытый репозиторий всевозможных прошивок, а еще через некоторое время появилось приложение GooManager, позволяющее автоматически устанавливать как прошивки, так и гугловские приложения.
Это приложение замечательно тем, что дает выбор из доступных прошивок, основываясь на модели смартфона. В результате нам не придется ни самостоятельно искать прошивки, ни бояться за то, что какая-то из них может криво встать. В общем и целом алгоритм работы с приложением выглядит так: «Запуск -> Browse Compatible ROMs -> выбор прошивки по имени (например, aokp или cm) -> выбор версии -> Begin Download -> Order & flash selected -> Flash». И это все, прошивка будет скачана, а затем установлена автоматически. Смартфон при этом перезагрузится.
Отмечу также, что по умолчанию GooManager не делает вайп перед установкой прошивки, однако он это умеет. Поэтому каждый раз при кардинальной смене прошивки, то есть именно замене одной на другую, а не обновлении, в последнем окне (которое появляется после нажатия «Order & flash selected») следует ставить флажок напротив опции «Wipe data (factory reset)». Так ты избежишь возможных проблем с загрузкой и работой новой прошивки.
GooManager собственной персоной
Установка ядра
Кроме кастомной прошивки, мы также можем поставить кастомное ядро. О том, что это такое, мы уже подробно рассказывали в одном из предыдущих номеров. Если в двух словах, то кастомное ядро может дать более тонкий контроль над смартфоном, поднять его производительность и сохранить заряд батареи, однако здесь все далеко не так просто, как с прошивками, и без детального ознакомления с темой я бы не рекомендовал прошивать кастомное ядро и ограничиться тем, которое идет в комплекте с прошивкой.
Если же решение об установке ядра принято, то самое время заглянуть в Google Play. Для многих популярных кастомных ядер в свое время были разработаны специальные утилиты для управления и обновления, с помощью которых установить ядро можно так же легко, как запустить почтовый клиент. Три известных утилиты из этого списка:
- franco.Kernel updater — «обновлятор» и конфигуратор одного из самых известных ядер для девайсов линейки Nexus (поддерживаются Samsung Galaxy Nexus, LG Nexus 4, Asus Google Nexus 7 и Samsung Nexus 10). Бесплатная версия умеет только устанавливать и обновлять ядро, но большего нам и не нужно;
- Trinity Kernel Toolbox — аналогичное решение для ядра Trinity, поддерживающего все те же Nexus-устройства, а также Samsung Galaxy Note II и Galaxy S III. Помимо функции установки, также включает в себя инструменты управления всеми функциями ядра и стоит 114 рублей;
- GLaDOS Control — практически копия предыдущего приложения, но в этот раз для, прямо скажем, не самого популярного ядра GlaDOS (Galaxy Nexus и Nexus 7). Включает в себя полный комплект для тюнинга и автоматическую обновлялку. Стоит 81 рубль.
Все эти приложения позволяют без лишних телодвижений установить одно из трех ядер. Но если деньги тратить не хочется или ты выбрал ядро, для которого просто нет управляющего приложения, то можно выйти из ситуации, скачав ядро прямо на телефон, а затем прошив его с помощью все того же GooManager. Делается это так:
- Идем на xda или 4pda, находим свой девайс, выбираем ядро (да, придется покопаться в многочисленных тредах) и скачиваем его на телефон. Обычно ядро весит 5–10 Мб, поэтому ждать придется недолго и стоить это будет копейки (если нет Wi-Fi).
- Устанавливаем и запускаем любой файловый менеджер, переходим в каталог Download на карте памяти, находим архив с ядром и копируем его в каталог goomanager, опять же в корне карты памяти.
- Запускаем GooManager, жмем на пункт Flash ROMs, ставим галочку напротив архива с ядром, жмем кнопку «Order & flash selected», а на следующем экране, ничего не меняя, нажимаем кнопку «Flash».
Обновление прошивки, ядра и gapps
К этому моменту у тебя уже должны быть кастомная консоль восстановления, кастомная прошивка, приложения Google и кастомное ядро; фул-хаус, все, что только нужно. Однако долго на этом всем мы не просидим, и вскоре уже выйдут новые версии прошивок, основанные на новой версии Android, еще более быстрые ядра и еще более фичастые консоли восстановления. Короче говоря, нужно обновляться. Но как?
Для обновления также предусмотрены свои собственные инструменты, но перед тем, как перейти к их обзору, поясню несколько специфичных моментов:
- Консоль восстановления можно обновлять когда угодно и как угодно. Она находится в отдельном разделе, поэтому, даже угробив этот раздел, ты не угробишь Android. Обновлять можно с помощью все тех же Recovery-Tools, ROM Manager и TWRP Manager.
- Ядро тоже находится в отдельном разделе, и его можно обновлять/менять когда угодно и как угодно, главное — учитывать совместимость с версиями Android и типами прошивок. Способы описаны выше.
- Обновляется прошивка без всяких вайпов, однако, если было установлено кастомное ядро, его придется переустановить. Переустановка приложений Google не требуется.
- Переход на другую прошивку производится с полным вайпом (factory reset) и последующей доустановкой приложений Google и ядра. Все данные, кроме файлов на карте памяти, будут потеряны (этого можно избежать, сделав бэкап с помощью Helium или Titanium Backup).
Теперь о том, как выполнять обновление. Рекавери и ядро обновляются с помощью специализированного софта либо, в случае использования редкого ядра, самостоятельного скачивания и прошивки вручную, как показано в предыдущем разделе. Обновлять прошивки можно разными способами. Если прошивка была установлена с помощью GooManager, то при появлении новой версии в репозитории goo.im тебе придет уведомление, нажав на которое можно скачать и установить новую версию. Никаких данных и приложений ты при этом не потеряешь, останется переустановить только ядро.
В CyanogenMod есть собственный механизм обновления, который также автоматически предупредит тебя о выходе новой версии и предложит скачать ее и установить. По умолчанию он работает только со стабильными версиями прошивки, но его можно переконфигурировать, так что предупреждения будут приходить и после выхода ночных сборок. Для этого идем в «Настройки -> О телефоне -> Обновление CyanogenMod». В опции «Проверка обновлений» выбираем «Ежедневно», в опции «Тип обновления» — «Новые версии (Включая ночные сборки)».
Единственная проблема такого метода обновления в том, что каждая прошивка будет весить около 200 Мб — накладно, если производить обновления каждый день или несколько раз в неделю. Поэтому я бы рекомендовал использовать инструмент CyanDelta, который позволяет выкачивать только патчи с измененными компонентами прошивки вместо всего архива целиком. При использовании этого инструмента каждое обновление будет весить всего 2–10 Мб, так что для выкачивания подойдет даже сотовая сеть. Пользоваться очень просто: после первого запуска софтина предложит загрузить всю прошивку целиком (на нее в дальнейшем будут накладываться патчи), после чего повиснет в фоне и будет уведомлять о появлении обновлений.
CyanDelta позволяет скачать новую версию Android, потратив всего 3 Мб трафика
Бэкап
Обычно бэкап Nandroid выполняется вручную прямо из меню кастомного рекавери, однако мы воспользуемся приложением Online Nandroid Backup, которое создает резервную копию системы прямо во время ее работы. Приложение это бесплатное и доступно в Google Play. После установки оно установит скрипт бэкапа (это, кстати, придется делать после каждого обновления прошивки) и предложит выполнить первоначальную настройку, которая сводится к выбору способа автогенерации имени бэкапа (по умолчанию текущее время), а также выбору формата бэкапа. Обычный Clockworkmod-формат универсален и будет совместим с любым кастомным рекавери, однако если на смартфоне установлен именно ClockworkMod, то в опции Backup Mode лучше выбрать CWM Incremental. В этом случае каждая новая резервная копия будет содержать только отличия от предыдущей, из-за чего потеряется совместимость с TWRP, но удастся сохранить солидный кусок свободного места на карте памяти.
![Nandroid Manager позволяет вытащить из бэкапа практически любые данные](nandroid-manager1.jpg, nandroid-manager2.jpg)
![Online Nandroid Backup: делаем резервную копию прямо во время работы смартфона](online-nandroid1.jpg, online-nandroid2.jpg)
В прошивке AOKP есть масса скрытых настроек, активировать которые можно, установив бесплатное приложение AOKP.co.
TWRP Manager позволяет выполнять практически все операции TWRP Recovery прямо из Android: установка прошивок, вайп, бэкап и восстановление, перезагрузка в разных режимах.
Выводы
Сегодня процесс прошивки и кастомизации смартфона под управлением Android — это уже не тот зубодробительный квест, каким он был во времена первых версий Android. Как ты смог заметить, все делается очень просто, без чтения длинных мануалов и поиска совместимых прошивок. Но даже в том случае, если что-то пойдет не так, если ты окажешься столь невезучим, что запорешь не только установленный Android, но и консоль восстановления, boot-сектор все равно останется на месте и ты сможешь вернуть свой смартфон к жизни, подключив его к компу и воспользовавшись фирменными инструментами прошивки от производителя.
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Прошивка на любом современном смартфоне, включая устройства на платформе Android, позволяет модифицировать буквально каждый элемент на собственный вкус. И хотя обычно рядовые пользователи используют уже готовые варианты, прошивку можно создать самостоятельно. Для этого потребуется ряд специальных инструментов, о которых нами будет рассказано в настоящей инструкции.
Создание прошивки для Android
Прежде чем перейти к основам, необходимо учесть: даже если в точности придерживаться ограничений и рекомендаций из нашей статьи, ваше устройство может прийти в нерабочее состояние. Связано это со многими факторами, от мелких ошибок до отсутствия совместимости. Поэтому любыми доступными способами проверяйте совместимость, чтобы сохранить девайс в целости.
Шаг 1: Установка Recovery
В одной из инструкций на нашем сайте был рассмотрен процесс установки кастомного рекавери, необходимого для перепрошивки Android-устройства. Этот шаг является обязательным и должен быть выполнен заранее до работы с самой прошивкой. При этом помните, что для разных смартфонов используется собственный вариант, но это никак не скажется на дальнейшем процессе за исключением некоторых отличий в интерфейсе.
Шаг 2: Выбор прошивки
Помимо добавления загрузчика с возможностью сохранения доступа к файлам нужно найти прошивку, совместимую с вашим девайсом. В этом вопросе трудно дать какие-то конкретные советы, так как существует огромное количество смартфонов и не менее большой ассортимент прошивок. Проще всего найти подходящий вариант, посетив раздел «Android» на русскоязычном форуме 4PDA или на англоязычном ресурсе XDA Developers.
Отыскав раздел с прошивками для вашего устройства, предпочтение стоит отдать чистым вариантам, которые не были модифицированы автором. Это необходимо для того чтобы изменить прошивку с нуля, не заменяя и не вырезая другие элементы. Загрузите архив в формате ZIP на компьютер, где и будут производиться дальнейшие изменения.
Шаг 3: Подготовка системы на ПК
Специальное ПО для компьютера, о котором пойдет речь в следующем разделе, в равной степени совместимо с ОС Windows, Linux и MacOS. Наиболее удобный метод сводится к использованию систем на основе Linux, в то время как на Виндовс потребуется ряд дополнительных действий и программ. В связи с куда большей распространенностью второго варианта, именно ОС Windows мы уделим внимание.
-
Посетите официальный сайт Oracle и загрузите программное обеспечение JDK в соответствии с разрядностью вашей операционной системы.
Дальнейшие действия по установке Cygwin производятся в автоматическом режиме.
На этом этап подготовки можно считать завершенным и переходить к следующему шагу. Заметьте, внутри архива в файле «kitchen_readme» также имеется инструкция по установке.
Шаг 4: Использование Android Kitchen
Программа Android Kitchen, так же известная как «кухня», представляет собой наиболее удобное средство для создания кастомных прошивок. Загрузить архив можно с официальной страницы на Github по ниже представленной ссылке. Лучше всего брать последнюю вышедшую версию ПО.
-
Загрузив «кухню» на компьютер, извлеките папку из архива так же, как и на прошлом этапе.
Примечание: Вместо «user» папка будет названа в соответствии с именем пользовательской директории в системе.
cd kitchen
./menu
Закройте «кухню» и переходите к следующему этапу.
Шаг 5: Сборка прошивки
Самой важной и наиболее трудоемкой частью является сборка прошивки, так как этот процесс необходимо выполнять с осторожностью, чтобы исключить вероятность ошибок. Данная процедура не будет проблемой при наличии опыта. По той же причине мы не будем акцентировать внимание на этапе сборки, упомянув лишь несколько моментов.
-
В главном меню Android Kitchen введите «0» и нажмите «Enter», чтобы перейти к расширенному списку параметров.
Завершив процедуру редактирования, можно приступать к прошивке устройства.
Шаг 6: Установка прошивки
Как и в случае с установкой рекавери, процедура инсталляции кастомной прошивки вне зависимости от варианта ее получения была нами описана в отдельной статье на сайте. Ознакомиться с ним вы можете, перейдя по ниже представленной ссылке. Обратите внимание, что разные виды прошивок могут устанавливаться по-разному.
Заключение
Надеемся, наша статья помогла вам разобраться с процедурой создания собственной прошивки для Android-устройства. Важно учитывать, что без опыта и понимания достичь желаемого результата не получится, даже если уделить внимание конкретным примерам. Связано это с массой отличий в случае разных прошивок, версий Андроид и смартфонов.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Кто-то отметит, что вся нужная и ненужная информация по процессу перепрошивки находится на всем известном форуме. Я, свою очередь, отвечу, что во-первых — далеко не все проблемы и их решения там описаны, а во-вторых — не каждый сходу сможет найти среди такого обилия информации нужную. Я же исхожу из собственного опыта.
Важно:
Я не несу ответственности за ваши действия после прочтения данной статьи, обязательно делайте резервные копии данных на внешнее хранилище (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
Читайте также: