Кастомные Android-прошивки и всё, что с ними связано
Покупаешь новый смартфон и ходишь радостный пока опять новый кастом не накатил. Он и работает шустро, и игрушки идут лучше: явно побыстрее стока. Но тут прилетело OTA, ядро новое вышло, да и Magisk обновился уже — пора ставить апдейты и получать “бутлупы”. Да, от общего числа пользователей Android смартфонов доля тех, кто сидит на кастомах крайне мала. Однако, всё же людям приходят в голову странные мысли по типу: “А не прошить бы мне свой Xiaomi, что б летал как ракета”. По такому случаю статья, в которой рассказывается про кастомные Android прошивки от А до Я.
Кастомные прошивки и их классификация
Что же из себя представляет кастомная Android-прошивка? Это система, к созданию которой причастны сторонние разработчики: то есть любая неофициальная прошивка. В большинстве случаев отличительными чертами подобных прошивок является иная оболочка, модифицированное ядро системы, широкая кастомизация и много разных плюшек, которых нет в официальных Android прошивках, созданных компанией-производителем. Чаще всего такие прошивки работают быстрее официальных, но реже они работают стабильнее. Существует огромное множество кастомов, которые делятся на виды, изучением которых мы сейчас и займёмся.
Вот основые вариации Android-прошивок:
- Официальная от производителя (модифицированная)
- Кастомная — собранная из исходников
- GSI-прошивка
- Портированная прошивка
А теперь про каждую поподробнее. Официальная прошивка от производителя установлена в смартфоне с завода: то есть вы покупаете телефон именно с ней. Её делал отдел компании-производителя, который отвечает за программное обеспечение своих устройств. Эти прошивки часто модифицируют умельцы путём распаковки образа прошивки, внося свои изменения. Также, любая уважающая себя компания предоставляет исходный код прошивки, которую они создали: те самые исходники. Далее по списку кастомная прошивка, собранная из исходников — та, которую собирали сторонние разработчики с нуля. Такая прошивка может включать в себя всевозмножные улучшения и кастомизации, которых не было в официальной, и их нельзя было добавить путём простой распаковки/запаковки образа. Следующая у нас GSI-прошивка — отличается от двух предыдущих тем, что при её установке не затрагивается раздел Vendor, так как GSI-образ это и есть образ системы. Работают эти GSI прошивки куда медленнее и менее стабильно, чем собранные из исходников. Ну и последняя — порт прошивки с другого девайса. Это прошивка, полностью перенесённая с иного устройства и изменённая для работы на конкретном смартфоне. По большей части это самые багованные прошивки, так как система не просто не родная, она ещё и содрана с другого устройства. Но их используют: к примеру те же любители фирменных оболочек различных устройств. Существует огромное колличество портированных прошивок со смартфонов OnePlus с их оболочкой OxygenOS, которая многим приходится по душе.
Мы будем рассматривать именно те кастомы, которые собираются из исходного кода. На это есть ряд причин, а именно: такие прошивки работают быстрее остальных, они стабильнее и представляют из себя полноценную замену стоковой, так как собирались с оптимизацией под конкретный девайс. Естественно, не без учёта качества сборки. На данный момент кастомы имеют широкое распространение среди многих моделей различных брендов. Также, само сообщество создателей кастомов постоянно растёт и развивается, поэтому найти стабильно работающую прошивку под свой смартфон не представляет особой трудности.
Существует классификация прошивок, показывающая, на основе какого исходного кода взята база для сборки:
- AOSP — Android Open Source Project. Представляет из себя абсолютно голую систему Android, на которую в последующем «навешивают» оболочки, по типу One UI, MIUI, OxygenOS и так далее. Пояснение: смартфонах Google Pixel не AOSP, в них установлена собственная оболочка на базе 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 — модифицированная версия 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 и приступаем к установке: Выбираем накопитель на котором лежат необходимые файлы и ставим всё в такой последовательности:
- Firmware
- Прошивка (Система, которую ставим)
- Перезагрузка в TWRP (По причине, описанной выше)
- Ядро
- Перезагрузка в TWRP
- Необходимые патчи / фиксы
- GAPPS (Google Services)
- DFE (Отключение шифрования)
- Magisk (Root права)
- Перезагрузка в систему и дальнейшая её настройка на ваш вкус.
Составляющих в последовательности установки может быть и меньше. Как я уже сказал, достаточно в TWRP установить лишь прошивку и если ей ничего более не нужно, то она запустится и будет работать.
Проблемы при установке прошивки
Ошибки могут быть разные, но решаются по одному и тому же алгоритму. Если TWRP выдаёт ошибку, то:
- Проверить какую прошивку вы ставите. Всякое бывает, можно и не свою скачать случайно.
- Перечитать инструкцию если таковая есть, вдруг что-то пропустили.
- Перекачать установочный zip с прошивкой (он может быть битый).
- Если 1-2-3 не сработали, то проводим очистку разделов и форматируем Data.
- Крайний случай: прошиваем стоковой прошивкой через фирменный прошивальщик.
- Только при наличии программатора и умения с ним работать: шьём через него сток (может решить проблему, если не помог обычный прошивальщик)
- Пробуем восстановить смартфон по индивидуальной для каждого инструкции «Восстановление из кирпича», которая ищется в теме своего устройства.
- Если совсем никак, скорее всего проблема в железе. Поэтому остаётся только вариант сервисного центра.
Все проблемы, которые могут возникнуть в рабочей системе решаются установкой «Фикса от Васяна», сменой ядра, либо установкой другого кастома.
Если вы уже решили заняться этим делом, то ищите и пытайтесь пофиксить, а ещё лучше показать остальным как вы решили свою проблему, если решения до вас не было.
Выводы: нужно оно нам, или нет
Для начала придётся немного пострадать, а там уже опыт наберётся и можно будет шиться без гайдов и фиксить любую проблему самому. Получение удовольствия от использования своего смартфона станет не таким редким явлением. Захотели себе что-то особенное и лучше чем сток? Готовы уделять этому время? Форумы с прошивками вас ждут. «Кастом будет всегда лучше любого стока» — эта фраза будет иметь смысл только в том случае, если прошивка хорошо собрана, имеет ядро с различными оптимизациями и почищена от мусорных приложений. Тут дело уже не во вкусах, а в том, как на самом деле.
- Разработка под Android
- Разработка под Linux
- Гаджеты
- Смартфоны
Как перепрошить Андроид смартфон
Что бы узнать как перепрошить Андроид устройство, будь то планшет или смартфон, обязательно обратите внимание на данное руководство и внимательно изучите приведенные ниже инструкции.
Что такое прошивка?
Термин «прошивка телефона» означает процесс замены в устройстве программного обеспечения, то есть операционной системы. Перепрошивка Андроид телефона может выполняться с целью:
- установка более новой операционной системы;
- исправление при программных сбоев в устройстве (смартфоне или планшете);
- взлом защиты Андроид устройства.

Каждый производитель, выпуская смартфоны и планшеты на платформе Android, ведет активную поддержку клиентов, с переменным успехом выпуская апдейты и обновления для своих гаджетов. На практике официальные прошивки разработчик поставляет в основном «по воздуху» (через ОТА обновления), а также выкладывая специальный файл образа прошивки, на своем сайте или портале.
Прошить образ можно благодаря набору специального софта:
- CWM Recovery.
- TWRP Recovery.
- ROM Manager;
- При помощи компьютера и специального набора программ (Fastboot, KDZ Update, Odin и прочих утилит).
Как правило, образы прошивок до обновления запакованы в специальные архивы, имеющие расширение ZIP, ISO и другие.
Помимо официальных прошивок, очень часто пользователи и комьюнити гаджета формируют поддержку аппаратов, выпуская кастомные версии прошивок и выкладывая их на любительских форумах и порталах. Такие обновления могут предоставить расширенный или урезанный функционал официальных образов, дополняя или убирая ненужные моменты из них.
Для начала, перед процессом перепрошивки, обязательно позаботьтесь о ваших данных на внутренней памяти устройства. При обновлении все файлы стираются, а значит необходимо заблаговременно сделать бэкап и сохранить важные файлы на внешних носителях.
На вопросе как прошить андроид под ОТА обновления «по воздуху» останавливаться не будем, а лучше сконцентрируем все свое внимание на других методах обновлений.

Прошивка телефона при помощи CWM Recovery
Богатая функциональность CWM Recovery позволяет производить с устройством множество манипуляций, в том числе и накатывать прошивку. По умолчанию в девайсах установлен стоковый Recovery, а значит, для начала нужно выполнить установку непосредственно самой утилиты ClockWorkMod Recovery.
Общий процесс прошивки, описанный ниже, касается ZIP файлов. Инструкция:
- Заходим в Recovery. Для этого необходимо полностью выключить девайс, и после зажать определенную последовательность кнопок, на теле устройства. Набор клавиш может варьироваться в зависимости от производителя устройства. Каждая комбинация может отличаться между собой. Дополнительную информацию можно узнать благодаря поисковикам, задав соответствующий вопрос. Универсальным вариантом является набор следующих нажатий:
- Кнопка повышения громкости + клавиша вкл.
- Кнопка понижения громкости + клавиша вкл.
- Кнопки повышения/понижения громкости + клавиша питания + «Домой».
- Одновременно зажатые клавиши громкости вверх+вниз и клавиша включения аппарата.
Попав в рекавери, вы увидите центральное меню, передвигаться по которому можно при помощи кнопок увеличения и уменьшения громкости, а клавиша включения будет выполнять функцию выбора действия.
- Перед началом прошивка андроид устройства обязует выполнить полный сброс гаджета до заводских настроек. Для этого перейдите к пункту «wipe data/factory reset» и подтвердите действие, нажав по строке с надписью «Yes – Wipe all user data».
- Вернувшись в основное лобби, выберите пункт «Install zip».
- Далее нажмите на пункте «Choose zip from /sdcard» и в древе проводника выберите файл, с сохраненной ранее прошивкой.
- Подтверждаем выбор, нажав на пункте «Yes – Install…».
- Запуститься процесс перепрошивки девайса. По окончанию процесса пользователь увидит надпись на экране «Install from sdcard complete».
- Все что осталось сделать пользователю, это вернуться в основное лобби CWM Recovery и выполнить процесс перезагрузки гаджета, нажав строку «reboot system now».
После указанных действий начнется установка прошивки. Не стоит паниковать, ведь алгоритм установки может длиться до 10 минут.

Как прошить телефон андроид при помощи TWRP Recovery
Для тех, кому по душе больше нравится работа с утилитой в виде TWRP Recovery, предлагается следующая инструкция пошаговой установки обновления в виде ZIP архива:
- Закиньте файл с образом прошивки в память девайса.
- Перейдите в рекавери TWRP. Делается это по аналогии с CWM.
- Выполните сброс до заводских настроек, нажав в главном меню на параметре «Wipe». Перетяните рычажок вправо. По окончанию очистки гаджета вернитесь к исходному лобби, нажимая на клавише «Back».
- В главном лобби выберите пункт «Install» и найдите в древе файловой системы скачанный ранее образ. Нажмите на него, перетянув ползунок в сторону.
- После этого будет запущен процесс прошивки. По стандарту он не превышает 2-3 минут.
- По завершению, утилита автоматически выведет сообщение об удачной перепрошивке. Нажав на пункте «Reboot System», выполните перезагрузку устройства.

Установка обновлений при помощи ROM Manager
При помощи данного приложения, можно не только выполнить прошивку, но еще и создать резервную копию системы. Воспользуйтесь данной опцией, что бы не потерять важные данные и оперативно восстановить весь функционал смартфона.
Для начала работы, вам потребуется наличие специальных Root прав на устройстве, которые позволяют на системном уровне получить доступ к внутренним файлам вашего девайса. Для этого можете воспользоваться любой из представленных программ.
Вторым немаловажным аспектом при работе ROM Manager служит кастомное рекавери. Все действия по прошивке происходят непосредственно в самом лаунчере Android, а ROM Manager служит визуальной надстройкой над Recovery.
Price: Free
Для начала скачайте файл с прошивкой для вашего гаджета, и следуйте дальнейшей инструкции:
- Перенесите архив прошивки, в расширении ZIP в память вашего устройства.
- В меню утилиты перейдите в пункт «Установить ROM с SD карты»».
- Среди папок и файлов выберите ваш образ и нажмите на него.
- В новом лобби выберите пункт «Перезагрузка и установка». Не забудьте поставить отметку на пункте «Сохранить текущий ROM». В этом случае у вас будет возможность восстановить систему в любое время.
- Нажав «ОК» ваш гаджет перейдет в режим Recovery, и начнется процесс обновления прошивки.
Благодаря расширенному функционалу приложения ROM Manager пользователи могут непосредственно в нем скачать образы под свое устройство. Сделать это можно нажав на пункт «Скачать прошивку». Доступ к некоторым ROMам доступен только в платной версии программы.

Как прошить андроид через компьютер
Универсальным средством для прошивки Андроид девайсов при помощи ПК является утилита Fastboot. Она является частью SDK Platform Tools, а значит подойдет для большого числа устройств.
Вторым этапом перед началом прошивки является получение доступа к ядру системы. Очень часто многие производители блокируют этот системный параметр, не желая, что бы пользователи собственноручно меняли системные файлы образов их прошивок. К таким производителям относятся HTC, линейка устройств Nexus, Sony и прочие. Для этого необходимо разблокировать Bootloader. Для этого нужно изучить подробную инструкцию по настройке и управлению командной строкой. Перед началом прошивки при помощи компьютера не забудьте включить отладку устройства по USB в инженерных настройках девайса.
Краткая инструкция по установке ZIP прошивки при помощи Fastboot
- Для начала скопируйте .zip архив с образом, и поместите его в папку с «ADB».
- Переведите ваш смартфон или планшет в режим fastboot mode и пропишите в командной строке запрос: fastbooflash zip имя_файла.zip , где имя_файла.zip – это название вашей прошивки.
- Дождитесь конца установки и перегрузите девайс.
Вопросы и ответы о прошивке на Андроид
Что такое прошивка Android?
Андроид прошивка — это ПО (программное обеспечение) другими словами аппаратные настройки, находящиеся в памяти Android-устройства.
Какие есть Android прошивки?
Есть официальные прошивки и кастомные, то-есть имеющие расширенные возможности или отличия от официальной. Но при этом кастомные имеют недостаток, могут работать на установленном Android устройстве нестабильно.
Как прошить телефон андроид без компьютера?
Для прошивки телефона Android без компьютера можно воспользоваться приложениями для смартфона, такими как ROM Manager или Flashify. Сначала необходимо скачать прошивку в формате ZIP и сохранить ее на внутренней памяти телефона. Затем запустите выбранное приложение, выберите опцию «Install ROM from SD Card» или аналогичную, найдите сохраненную прошивку и следуйте инструкциям приложения для установки прошивки на телефон. Перед прошивкой рекомендуется сделать резервную копию данных и зарядить телефон.
Кастомный Android: делаем свою прошивку из стоковой, не копаясь в исходниках

Наверняка у тебя как у пользователя 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-обновлений, то есть выборочного внесения изменений в прошивку; если прошивка «полная», он имеет нулевой размер.

Рекомендуем почитать:
Xakep #294. Pentest Award
- Содержание выпуска
- Подписка на «Хакер» -60%
Распаковываем 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 ):
$ mkdir ~/rom $ unzip путь_до_архива -d ~/rom/
Скачиваем нужные нам инструменты в эту папку:
$ cd ~/rom $ wget https://github.com/xpirt/sdat2img/raw/master/sdat2img.py
$ chmod +x sdat2img.py $ ./sdat2img.py system.transfer.list system.new.dat system.img
Он преобразует файл system.new.dat в raw-образ с именем system.img . Монтируем образ к подпапке mnt :
$ mkdir mnt $ sudo mount -t ext4 -o loop system.img ~/rom/mnt

Структура каталогов 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, начнем вносить изменения.
Удаляем и добавляем приложения
Все предустановленные программы можно найти в двух папках:
- /system/app/;
- /system/priv-app/.
Друг от друга они отличаются привилегиями доступа. Если программы из 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 p 1 0 part0 p 0 0 part1
Назначение этих строк интуитивно понятно: 1920 × 1080 — разрешение картинки, 60 — число кадров в секунду. Part0 и part1 указывают на папки, из которых будет воспроизводиться анимация, и последовательность воспроизведения. Вообще, может быть как одна часть, так и несколько (три и больше).
Изображения, находящиеся в папках part, пронумерованы пятью цифрами в порядке воспроизведения: 00000.png , 00001.png , 00002.png . Эти изображения можно поменять на свои, тем самым создав оригинальную анимацию. А можно просто удалить файл bootanimation.zip . Тогда девайс будет показывать анимацию из стандартного Android. Или воспользоваться уже готовой коллекцией анимаций на 4PDA.
Изменяем звуковое оформление
Фактически все звуки, которые воспроизводит система, хранятся в папке /system/media/audio . Внутри нее ты найдешь следующие папки:
- alarms — мелодии будильника;
- notifications — звуки уведомлений;
- ringtones — мелодии звонка;
- ui — системные звуки, например низкий заряд батареи, фокусировка камеры, выбор элементов интерфейса.
В alarms, notifications, ringtones можно накидать сколько угодно любых мелодий. Взять их можно, например, здесь:
- стандартные мелодии из разных телефонов и смартфонов Nokia;
- знаменитые стандартные рингтоны;
- просто множество рингтонов;
- мелодии с разных телефонов.
И маленький лайфхак: удаление файлов из папки ui приведет не к сбоям и ошибкам, а к исчезновению системных звуков. Поэтому ты можешь легко отключить звук создания снимка с камеры, снятия скриншота, просто потерев содержащие эти звуки файлы (их имена интуитивно понятны).
Добавляем шрифты
Шрифты хранятся в fonts . Найти архивы с файлами шрифтов можно на 4PDA и XDA. Для установки достаточно скопировать с заменой ttf-файлы из архива в папку fonts .
Меняем системные настройки (build.prop)
В образе system есть интересный файлик build.prop , содержащий множество полезной информации о железе устройства и настройках, устанавливаемых по умолчанию, для различных стоковых приложений. Справедливости ради замечу, что это не всегда так. Например, в Gigaset ME и ME Pro build.prop разделен на две части. В одной части содержатся настройки для 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:
$ adb shell df /system

Второй вариант: поставить на устройство терминал и набрать команду
$ df /system
Размер раздела в байтах можно узнать, установив на смартфон BusyBox и выполнив в терминале команду
$ busybox df -B 1 /system
Или то же самое с помощью ADB:
$ adb shell busybox df -B 1 /system
Место, занимаемое прошивкой, будет приблизительно равно размеру 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 . Скачиваем нужные нам инструменты:
$ wget https://github.com/xpirt/img2sdat/raw/master/img2sdat.py $ wget https://github.com/xpirt/img2sdat/raw/master/blockimgdiff.py $ wget https://github.com/xpirt/img2sdat/raw/master/common.py $ wget https://github.com/xpirt/img2sdat/raw/master/rangelib.py $ wget https://github.com/xpirt/img2sdat/raw/master/sparse_img.py $ sudo apt-get install android-tools-fsutils
Преобразовываем нашу папку обратно в RAW-образ. Назовем его system_new.img :
$ sudo make_ext4fs -T 0 -S file_contexts -l 1073741824 -a system system_new.img output/
1073741824 меняем на размер раздела system в байтах. Желательно даже сделать его чуть меньше. Делаем из RAW-образа sparse-образ:
$ img2simg system_new.img system_snew.img
Преобразуем наш образ в system.transfer.list и system.new.dat , которые и нужно кидать в архив с прошивкой, но сначала удалим старые файлы:
$ rm -rf system.transfer.list $ rm -rf system.new.dat $ rm -rf system.patch.dat $ chmod +x img2sdat.py $ ./img2sdat.py system_snew.img
Отделим файлы прошивки от лишней шелухи (файлов, которые мы загружали для работы. Для этого удобно пользоваться архивом с прошивкой). Удалили? Теперь нужно запаковать прошивку в ZIP-архив (любым архиватором).
Осталось подписать архив. Сделать это можно как на самом Android с помощью ZipSigner, так и на ПК (потребуется установленная Java):
$ wget https://github.com/appium/sign/raw/master/dist/sign.jar $ java -jar файл.zip
Подводные камни
Во время сборки system.new.dat ты можешь столкнуться с несколькими проблемами, вызванными постоянными изменениями в механизмах формирования прошивок Android. Описанный выше способ должен хорошо сработать в случае основанной на Android 5.1 прошивки, в более новых могут возникнуть сложности, так что потребуется использовать другие версии инструментов сборки. К сожалению, мы не можем описать все нюансы сборки, поэтому, возможно, придется погуглить.
Установка
Для установки кастомной прошивки необходим кастомный рекавери TWRP, позволяющий устанавливать неподписанные или подписанные тестовым ключом прошивки (именно такую мы создали). В журнале мы неоднократно описывали процесс его установки, да и в ветках форума, посвященных твоему устройству, обычно есть достаточно информации для того, чтобы это сделать.

Выводы
Эта статья описывает лишь верхушку огромного айсберга под названием «модификация прошивок». «Серьезные» прошивки не только дополняют ядро и саму прошивку со стоковыми приложениями множеством функций (которые зачастую вырваны из других ядер и прошивок), организовывая или даже меняя принципы их взаимодействия, но и вполне могут кардинально менять принципы работы ОС. Правда, такая поделка — это уже не Android, а отдельная ОС, даже если Play-сервисы получится туда поставить (кстати, такие действия, мягко говоря, не поощряются Google). Ну и не забываем: все оболочки от производителей — TouchWiz, ZenUI, HTC Sense и так далее — всего лишь обычные кастомы, максимально привязанные к железу устройства и друг к другу.
Как прошить Android планшет через компьютер?
Установка “прошивки” на планшет — одновременно и простая и сложная задача. С обновлением версии Android многие производители или выпускают обновления для прошивок автоматически “на лету” через интернет (так называемые OTA-обновления) или позволяет установить новую прошивку через свои фирменные приложения при помощи ПК.
Фактически, алгоритм установки прошивки на планшет простой — вам понадобится сам телефон, USB-кабель или карта памяти (для размещения файла прошивки), программа для обновления прошивки и наконец, нужная прошивка — в абсолютном большинстве случаев необходимо устанавливать на телефон только “родную” прошивку, т.е. прошивку подходящую только для конкретной модели планшета. Конкретный порядок действий зависит от модели вашего планшета. Существуют также сайты-хранилища доступных прошивок для популярных моделей, так что скорее всего нужная прошивка на почти любой планшет в сети обязательно отыщется.
Первым делом посетите сайт производителя вашего планшета для загрузки соответствующих программ для обновления прошивки. Если производитель не предлагает фирменного ПО для установки прошивок, не отчаивайтесь, обратитесь к сообществам любителей прошивок — например крупнейшее зарубежное сообщество XDA-developers где легко можно найти прошивки (и инструкции по их установке) для планшетов под управлением Android и не только.
В случае, если производитель предлагает фирменное ПО для осуществления перепрошивки вашего Android-планшета, никаких сложностей обычно не возникает. В зависимости от модели, программа сама предложит вам подготовить планшет и подскажет порядок действий, а прошивку для вашей модели загрузит самостоятельно. Для планшетов LG предназначена программа LG Mobile Support Tool Download, для Sony — PC Companion, и так далее.
Если установка прошивки не происходит или возникают другие сложности, вы можете воспользоваться «ручным» режимом установки прошивки. В зависимости от версии установленного Android на вашем устройстве и производителя вашего планшета, вам могут понадобится различные версии программ для установки прошивки, например Odin (популярная программа для устройств Samsung) и FlashTool (используется для перепрошивки устройств множества производителей).
Алгоритм работы с этими программами такой:
- включите на вашем устройстве режим «Отладки по USB» (эта опция доступна в «Настройки» > «Опции разработчика»);
- переведите ваше устройство в один из режимов прошивки — «Download Mode» или «Recovery mode»;
- подготовьте прошивку в необходимом виде — или в виде целого образа .img\.tot, в виде отдельных файлов или в виде архива с необходимыми файлами;
- осуществите прошивку планшета через FlashTool или Odin.
Пожалуйста, будьте внимательны! Один из самых надежных способов усугубить или создать серьёзные проблемы с вашим устройством — это прервать процесс прошивки или осуществить прошивку вашей модели неподходящей прошивкой. Соблюдайте осторожность при установке прошивки — этот процесс нельзя прерывать, в противном случае вы рискуете превратить ваш телефон в “кирпич” — это полушутливое название аппарата, с нерабочей прошивкой, не отвечающий на внешние воздействия.
Прежде чем приступать к прошивке вашего Android-планшета, убедитесь что вы всё приготовили правильно, в надежности подключения планшета по кабелю USB, в наличии резервного питания на случай отключения электросети и в правильно выборе как прошивки так и программ, необходимых для перепрошивки.
