Программа для прошивки кастомных прошивок

Обновлено: 05.07.2024

Каждый пользователь Android слышал о так называемых кастомных прошивках , но вот как их установить конкретно на вашу модель смартфона или планшета информации очень мало, либо разбросана по просторам Интернет.

Данная статья относится только к установке кастомных прошивок с помощью ZIP ОБНОВЛЕНИЙ, а не каким либо другим способом.

Коротко о главном…

Операционная система Android, она и Африке ей же и останется, будь у вас Samsung, LG, HTC, Sony, Motorola или другой производитель… Есть определенный свод правил, последовательность действий, которые немного дополняются в зависимости от производителя, но сам процесс установки кастомной прошивки схож со всеми устройствами. Вот эти простые шаги:

Итого всего 8 шагов (2 необязательных, 2 выполняются один раз). Из них в дальнейшем вы будете повторять только 3 — 5 если вдруг, захотите сменить прошивку.

Готовые решение!

Где найти кастомную прошивку на ваш Android?

Есть различные кастомные прошивки от различных производителей, какая для вас будет лучшей знаете только вы сами, поэтому пробуйте и экспериментируйте!

  • Прошивки Linage OS (бывший CyanogenMod)
  • Прошивки MIUI
  • Прошивки OMNI ROM
  • Прошивки Paranoid Android — официальные , любительские
  • Прошивки AOKP
  • Прошивки Slim ROM
  • Прошивки PAC MAN
  • Прошивки Carbon ROM
  • Прошивки Resurrection Remix
  • Прошивки PRO-BAM (AOSB)

Также в сети интернет (рекомендуемые ресурсы XDA, 4PDA) можно найти множество других кастомных прошивок выполненных на базе ранее перечисленных крупных проектов. Нашли прошивку? Отлично! Скачиваем ее и переходим дальше!

Скачиваем GAPPS

Не спешите перепрыгивать данный заголовок! Наверно вы привыкли пользоваться сервисами Google - Магазин приложений Google Play, YouTube, Gmail, Карты итп. В оригинальных кастомных прошивках их нет! Поэтому вам понадобится ZIP обновление с GAPPS . Скачивать версию GAPPS необходимо от версии Android на которой основана кастомная прошивка (если прошивка с Android 4.4 , то GAPPS должны быть для Android 4.4).

Делаем Резервное копирование

Данный пункт не является обязательным, но что если вы захотите вернутся обратно или что-то пойдет не так? Поэтому выполните резервное копирование .

Разблокируем Bootloader

Вы счастливый обладатель Sony, HTC, Huawei, Nexus, тогда вам предстоит дополнительная процедура на пути установки кастомной прошивки — разблокировка Bootloader.

  • Разблокировать Bootloader Sony
  • Разблокировать Bootloader HTC
  • Разблокировать Bootloader Huawei
  • Разблокировать Bootloader Nexus

Данная процедура выполняется один раз и в дальнейшем ее можно пропускать.

Находим и скачиваем кастомное Recovery (или Ядро с Recovery)

Вы семимильными шагами двигаетесь к установки своей первой кастомной прошивки! Продолжаем… Вам также необходимо скачать кастомоное Recovery, для чего спросите вы?

Есть несколько причин:

  1. В некоторых устройствах его банально нет (Recovery), а вам необходимо установить из под него кастомную прошивку и GAPPS
  2. Установить из под оригинального Recovery (если оно есть) кастомную прошивку не удастся в связи с тем, что там нет подписи производителя, а кастомное Recovery отключает подпись и разрешает установку различных ZIP обновлений в том числе и кастомной прошивки.

В некоторых случаях Recovery встроено в ядро Android (Sony, иногда Samsung) поэтому вам необходимо искать ядро с CWM или TWRP Recovery вместо того чтобы искать просто Recovery.

Если в дальнейшем Recovery вы удалять не будете, то более его устанавливать не нужно.

Установка Кастомной Прошивки

Итак вы сделали следующие обязательные действия:

  1. Скачали Кастомную прошивку
  2. Скачали GAPPS
  3. Разблокировали Bootloader
  4. Скачали и установили Recovery

Теперь переместите архивы ZIP - Кастомной прошивки и GAPPS на карту памяти (если есть слот) или внутреннюю память Android смартфона или планшета. Перейдите в меню Recovery . После чего установите вначале ZIP архив Кастомной прошивки, а после GAPPS.

  • Установка ZIP из СWM Recovery
  • Установка ZIP из TWRP Recovery

Сброс Данных

После того как вы установили Кастомную прошивку необходимо выполнить сброс данных, он необходим затем, что данные которые были созданы предыдущей прошивкой (официальной) несовместимы с только что установленной. Поэтому очень важно сделать сброс данных или wipe . Если сброс не выполнить то вы получите вечную загрузку Android (bootloop).

Первая загрузка Android

После установки Кастомной прошивки и сброса данных перезагрузите Android, как правило первая загрузка очень долгая и длится она от 3 минут до 15 минут. Связано это с первой настройкой «железа» и до установки системы. Самое главное не нервничать и не перезагружать устройство в этот промежуток времени.

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


Начнем с того, что тебе нужен 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.

  1. Распаковываем архив с прошивкой в любую папку.
  2. Качаем скрипт по ссылке и разархивируем в любую папку.
  3. Запускаем файл ext (если будет ругаться на отсутствие Java, просто пропусти, нажав y ; Java нужна только для запаковки).
  4. Теперь выбираем распаковку, нажав кнопку 1, а затем Enter.
  5. Новая папка с именем extract_* появится рядом с файлом ext и папкой tools . Копируем в нее файлы system.new.dat и system.transfer.list .
  6. После копирования файлов нажимаем Enter и ждем. Через некоторое время нужно будет опять нажать Enter, ввести пароль администратора и еще раз тапнуть Enter.
  7. Готово. Содержимое system в папке extract_*/output .

Ручной способ

Распаковываем архив с прошивкой в любую папку (например, в rom ):

Скачиваем нужные нам инструменты в эту папку:

Он преобразует файл system.new.dat в raw-образ с именем system.img . Монтируем образ к подпапке mnt :

Содержимое образа system

Содержимое образа 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

Четыре части в 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

Дополнительный файл для 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 в прошивку выполняется так:

  1. Распаковываем ZIP-архив GApps с помощью любого архиватора.
  2. Переходим в папку Core.
  3. Видим множество архивов с расширением .tar.lz . Извлекаем с помощью lzip.
  4. После распаковки копируем файлы из папок в соответствующие папки в system. Что куда кидать, нетрудно догадаться по структуре каталогов в архиве. Например, configupdater (со скриншота) нужно кидать в папку priv-app .
  5. Переходим в папку GApps (находится рядом с Core) и проделываем пункты 3 и 4 для файлов в ней.
  6. Все, мы интегрировали GApps в нашу прошивку!

Свободное место

Необходимо понимать, что место для установки прошивок ограниченно. Нельзя установить прошивку, размер которой перевешивает размер раздела system устройства. Посмотреть его значение можно, используя ADB:

Инфа о разделе system

Инфа о разделе 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, я услышал от своего коллеги по работе, что Android предусматривает возможность установки модифицированных или самодельных прошивок. Признаться, тогда я был далек от этого. И даже пол года назад меня едва интересовали подобные вещи. Глубоко в душе, я был уверен: то, что делает производитель, уже предназначено для нормального использования.

Каково же было мое разочарование, когда я приобрел телефон из поднебесной, где заводскими настройками было запрещено использование Google, Skype, Facebook и других приложений. В принципе, на некоторые вещи можно было закрыть глаза, но когда мой телефон не подразумевал использование учетной записи Google — я взял с себя обещания обязательно разобраться во что бы мне это не стало.

Прошло пол года и мои кастомные прошивки с успехом используются по всему миру.

В данной серии статей пойдет речь о том, как делать reverse программирование для Android, реализовывать патчи, твики и моды.

Преамбула

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

Патч — изменение или замена существующего программного кода с целью модификации алгоритма программы.
Мод — как правило, добавление дополнительного функционала в существующий программный код без изменения алгоритма.
Твик — усовершенствование функционала программы с целью облегчения доступа к параметрам системы.

Также хочу заметить, что все примеры будет взяты для телефона HTC, но это не значит, что данная информация не может быть использована на других телефонах.

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

Подготовка среды

Обойдусь без подробных инструкций как пользоваться тем или иным программным обеспечением. Если вам интересна данная статья и вы дочитали до этих строк, то я надеюсь, что вы уже опытный пользователь и имеете опыт использования, ну или хотя бы экспериментирования в данной области. Инструкций, статей и результатов тестирования полно в открытом доступе, впрочем, как и на Хабре. Также обойдусь без описания некоторых терминов, иначе статья получится очень большой и нудной. Будем писать только по делу. Уверен, что среда у вас уже давно стоит. Если нет, то предлагаю скачать и установить.

1. Android SDK. Это среда разработки приложений для Андроид. Для того чтобы делать модификации, нам обязательно придется проверять наш программный код. Среда разработки самое лучшее, что мы можем использовать.
2. Android Kitchen. Данная утилита позволит вам работать с образами системных партиций официальной ну или неофициальной прошивки.
3. JD-GUI. Декомпилятор программного кода языка Java. Сразу отмечу, что это самый лучший декомпилятор в плане удобства использования.
4. DJ Java Decompiler. Еще один декомпилятор, или дизассемблер, как некоторые любят называть, программного кода языка Java. Не удобен в плане использования, но разбирает код, который иногда не понимает JD-GUI.
5. smali. Еще один дизассемблер, но уже dalvik кода. smali нужен для дизассемблирования, а backsmali ассемблирования кода.
6. dex2jar. Утилита для конвертации исполняемых файлов Dalvik кода.

Преобразование прошивки

Разумеется, прошивка, которая стоит у вас на телефон от производителя оптимизирована с целью сокращения энергопотребления. Для того чтобы прошивку можно было изменять, ее необходимо преобразовать в формат, позволяющий изменять код. Для этого используется Android Kitchen. Можно конечно и руками, как я и делал раньше, пока не нашел эту самую «кухню». Как вытаскивать системную область из телефона, устанавливать среду, делать DEODEX прошивки, вы можете прочитать в интернете. Если вам уже ничего не понятно, я думаю стоит повременить со статьей, пока вы не наберете достаточно опыта.

После того, как прошивка из оптимизированного вида (ODEX — оптимизированный dalvik исполняемый код, если мне не изменяет память) стала DEODEX (то бишь НЕ оптимизированной), все исполняемые файлы готовы к модификации.

Непосредственно модификации

Создание патчей

Как я уже и рассказывал, мой телефон изначально имел запрет на использование Google. Ну хоть ты тресни, на Playstore не зайти, учетную запись не настроить, телефонная книга толком не синхронизируется. Зачем нужен такой Android? Долго копаясь в логах (logcat) самого устройства, я нашел записи, которые говорили о том, что использование Google запрещено. Самое не удобное в Android, вы видите лог, но не знаете какое системное приложение его производит. Чтобы отыскать от куда ноги растут, мне пришлось распотрошить все системные приложения до дизассемблированного Java кода. Это заняло достаточно времени, но я до сих пор пользуюсь проделанной работой при анализе и поиске нужного кода. Этапы получения подобного инструментария следующие:
1. Сделать DEODEX всей прошивки
2. Вашу новую DEODEX прошивку надо будет собрать и прошить на телефон. Как это делается — тема другой статьи.
3. Из каждого файла, находящегося в /system/framework вытащить файл classes.dex и переконвертировать в JAR посредством dex2jar.
4. Каждый полученный JAR открыть в JD-GUI и пере-сохранить в исходный код
5. Распаковать исходный код из архива.

В итоге у меня получилось столько папок, сколько было JAR файлов в /system/framework, и каждая папка имела структуру исходных кодов Java.
Путем несложных манипуляций, я быстро отыскал то место, которое генерировало записи в logcat.

Не будем рассматривать всю логику запрета, так как для каждого случая это отдельная история. Мне пришлось потратить пару часов, прежде чем я нашел где производятся проверки, построить в голове блок схему алгоритма и понять куда надо лезть, чтобы алгоритм чуть чуть «попортить».

Оказалось все просто. Есть подпрограмма, которая на основе заранее установленных констант, при обращении отвечала, относится ли телефон к Китаю или же нет.

Код находился в файле HTCExtension.jar, а класс, который содержал данную подпрограмму находился в \com\htc\util\contacts\BuildUtils$Customization.java

Распаковка и анализ оригинального файла

1. Сперва нам надо взять оригинальный DEODEX JAR файл, который отвечает за нужную нам часть кода. В нашем случае HTCExtension.jar.
2. Открыть любым архиватором и вытащить от туда classes.dex
3. С помощью конвертера dex2jar преобразовать его в JAR файл. Команда: dex2jar.bat classes.dex
4. Открыть полученный classes_dex2jar.jar файл в JD-GUI.
5. Да, чаще всего JD-GUI декомпилирует код не так как он выглядит в оригинале, оно и понятно, но читать вполне можно. В исходнике мы видим, что подпрограмма проверяет параметры проекта и языковой флаг прошивки. В нашем прискорбном случае возвращается значение TRUE.

6. Чтобы сделать патч, нам надо дизассемблировать сам Dalvik код. Для этого используем baksmali. Удобнее всего создать отдельную папку и положить туда три файла вместе: HTCExtension.jar, smali.jar и baksmali.jar. Даем команду java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

- это API вашей версии Android. Для JB - это 16
- папка, где находятся все фреймворки прошивки.

В моем случае это была команда
java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar
7. В нашей вновь созданной папке появилась папка HTCExtension, а в ней наши файлы с Dalvik кодом.
8. Отыскиваем файл по пути \com\htc\util\contacts\BuildUtils$Customization.java и смотрим код:

9. Страшно, не правда ли? Ничего же не понятно. Но, это дело поправимое. Создав несколько своих патчей и набив тем самым руку, вы легко сможете модифицировать код без сторонних средств. В нашем случае, в этом коде
происходит присваивание переменной v0 значение 1, то есть TRUE. Далее идут всякие проверки, и если телефон не китайский, то значение переменной изменяется:

10. Самый простой способ спасти отца русской демократии, это изменить код на следующий:
, то есть поменять значение переменной с 1 на 0. То есть что бы ни было, всегда бы возвращалось значение FALSE и в JD-GUI код выглядел бы как
11. Да, метод ,будет работать. Но мы же не ищем легких путей - это раз. Во-вторых не совсем красиво. Хочется кода что-то вроде

12. А как нам получить Dalvik код данного исходного кода? Для новичков мы сделаем небольшой трюк.

Создание Dalvik кода

1. Открываем Android SDK.
2. Создаем новый проект, и в наш единственный тестовый класс пишем следующий код

3. Компилируем наш проект и затем берем собранное приложение из рабочей области.
4. Кладем собранное приложение в папку, где мы с вами потрошили JAR файл.
5. Даем команду
8. Все, код для патчинга готов.

Накатывание патча

1. Dalvik код замусорен маркерами, указывающими строку кода в оригинальном исходном файле. Это нужно при выводе ошибок, если таковые имеются в вашей программе. Без указаний строк код также прекрасно работает.
2. Удаляем строки с нумерацией строк, копируем и заменяем метод (подпрограмму) в нашем \com\htc\util\contacts\BuildUtils$Customization.java файле.

3. Сохраняем файл. Да, забыл сказать, редактор нужен нормальный, например Notepad++ или EditPlus. Кому какой нравится.

Компиляция и сборка патченного JAR файла

1. С помощью backsmali мы распотрошили наш JAR файл, а теперь его надо собрать обратно.
2. Даем команду java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3. В нашей папочке появляется файлик classes.dex
4. Снова открываем HTCExtension.jar файл архиватором и заменяем в нем существующий classes.dex на наш только что созданный.
5. Все, наш HTCExtension.jar содержит модифицированный программный код.

Замена оригинального файла на патченный

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

1. Заменить текущий рабочий файл можно следующими командами, если у вас уже стоит DEODEX прошивка и имеется root доступ:

2. Спасибо что дочитали до этого пункта, осталось немного.
3. После перезагрузки ваш новый патченный код вступит в силу.
4. Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.

Эпилог

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

К следующей статье я расскажу как делать Твики. Будет пример использования автоматической записи телефонных звонков родными средствами телефона. Спасибо за ваше внимание.

Кастомная прошивка представляет собой неофициальную версию программного обеспечения, которую разрабатывают для Андроид отдельные группы программистов или пользователи. Её установка привлекательна тем, что устройство можно обогатить дополнительными функциями, расширить некоторые из них, или, наконец, получить больше прав пользователя.

Выбор кастомной прошивки для Андроид

Неофициальные версии ПО часто обладают дополнительными возможностями

Помимо этого многие владельцы устройств на платформе Android ставят подобные прошивки с целью увеличить скорость и производительность оборудования. Настройка кастомного обеспечения довольно проста, поэтому мы рассмотрим пару вариантов осуществления этого процесса.

Имейте в виду, что если вы установили подобное обеспечение, официальная гарантия на ваше устройство больше не действует.

Получение Root-прав

Если вы решили поставить новое программное обеспечение на своё устройство, значит, вам необходимо получить права администратора для возможности внесения изменений в системные параметры. В магазине Андроид вы можете скачать приложения z4root или Universal AndRoot. Они позволят получить root-права, чтобы в дальнейшем вы смогли перепрошить оборудование.

Получение прав Суперпользователя с помощью утилиты z4root

Стоит уточнить, что при выполнении всех этих действий с планшета Android удаляются данные приложений, контактов и прочее, поэтому выполните их резервное копирование. А вот файлы мультимедиа на карте памяти останутся в целостности, о них можно не беспокоиться.

Давайте теперь рассмотрим, при помощи каких меню для Recovery можно установить кастомное ПО легко и быстро.

Установка кастомной прошивки при помощи Team Win Recovery Project

Эта утилита является довольно простой в пользовании, поэтому с её помощью вы сможете быстро установить прошивку на Android. Но прежде чем начать ею пользоваться, скачайте файл микропрограммы или ПО, которую вы хотите поставить на устройство, и сохраните его на карте памяти.

Теперь переходим к процессу обновления программного обеспечения:

  • Переходим в режим Recovery на планшете Android — в большинстве случаев для этого нужно зажать клавиши включения и громкости. Для каждого отдельного оборудования комбинация может отличаться, поэтом узнайте её заранее. Если вы так и не узнали, загрузите на планшет приложение Quick Reboot. Наделите это приложение root-правами, чтобы оно могло осуществить переход в режим Recovery;
  • Когда вы успешно перешли в этот режим работы, первое, что требуется — зайти в раздел Wipe и стереть разделы под названием /data и /system. Для этого внизу окна вы увидите соответствующие функции, которые позволят вернуть оборудование к заводским настройкам;

Возврат к заводским параметрам

Примечание. Не пользуйтесь процессом форматирования для стирания этих данных, так как при этом удаляться не только они, но и вся прочая информация с планшета Андроид.

  • Вернитесь в главное меню и откройте раздел Install, чтобы загрузить новую прошивку — для этого найдите её файл в памяти планшета.

Настройка Team Win Recovery Project

После установки произойдёт перезагрузка планшета Android, которая может длиться дольше обычного. Терпеливо дождитесь её окончания, после чего процесс получения неофициальной прошивки считается завершённым.

Ставим кастомную прошивку при помощи ROM Manager

Это приложение вы можете загрузить из приложения Google Play для Android, после чего нужно выполнить следующее:

  • После запуска нажмите на меню Recovery Setup — произойдёт загрузка Clockwork Mod;
  • Скачайте из интернета версию прошивки, которую хотите поставить на своё устройство, сохраните во внутренней памяти планшета;
  • Далее нам необходимо перейти в режим Recovery, для чего зажмите клавиши громкости и запуска или воспользуйтесь иной комбинацией, предусмотренной для конкретной модели оборудования Андроид;
  • Кнопки громкости позволят перемещаться по меню, а клавиша выключения служит для выбора раздела или строки.

Установка прошивки через приложение ROM Manager

Непосредственно для установки кастомного обеспечения следует поочерёдно запустить такие команды:

  • В меню wipe data/factory reset и wipe cache partition нужно нажать подтверждение и выполнить команды Wipe all user data и Wipe Cache в каждой из них;
  • В меню Advanced выбираем команду Wipe для Dalvik Cache;
  • Чтобы загрузить прошивку на Android, выполните install zip, после перехода в него вы сможете указать путь к файлу;
  • Когда вы нашли файл с программным обеспечением, вернитесь в главное меню менеджера Clockwork Mod и нажмите reboot system now.

Благодаря этим указаниям вы сможете выбрать один из способов установки кастомной прошивки и загрузить её на своё устройство Android. Как видите, всё это делается довольно просто. Если вы хотите улучшить функциональность и производительность своего оборудования Андроид, стоит поставить неофициальную версию обеспечения для комфортного и удобного пользования.

Программы для перепрошивки Андроид телефона через компьютер

Смартфоны и планшеты на базе ОС Android являются наиболее распространенными мобильными устройствами среди пользователей со всего мира. Флагманские и близкие к ним девайсы зачастую работают стабильно и без нареканий, а вот бюджетные и морально устаревшие далеко не всегда ведут себя должным образом. Многие пользователи в таких ситуациях принимают решение выполнить их прошивку, установив таким образом более свежую или просто улучшенную (кастомизированную) версию операционной системы. Для этих целей, в обязательном порядке, требуется воспользоваться одной из специализированных программ для ПК. О пяти самых востребованных представителях данного сегмента пойдет речь в нашей сегодняшней статье.

SP Flash Tool

Smart Phones Flash Tool – это относительно простая в использовании программа для работы со смартфонами и планшетами, «сердцем» которых является процессор производства компании MediaTek (MTK). Основной ее функцией, конечно же, является прошивка мобильных устройств, но помимо этого в составе присутствуют инструменты для резервного копирования данных и разделов памяти, а также форматирования и тестирования последней.

Smart Phone Flash Tool модель процессора

Ashampoo_Snap_15 апреля 2017 г._01h22m18s_005_Smart Phone Flash Tool-Runtime Trace Mode-

Этот инструмент для прошивки мобильных девайсов является компонентом программного комплекса Qualcomm Products Support Tools (QPST), ориентированного на специалистов – разработчиков, работников сервисных центров и т.п. Сам же QFIL, как можно понять из его полного названия, предназначен для смартфонов и планшетов, в основе которых лежит процессор Qualcomm Snapdragon. То есть, по сути, это тот же SP Flash Tool, но для противоположного лагеря, который, к слову, занимает лидирующее положение на рынке. Именно поэтому список Android-устройств, поддерживаемых этой программой, действительно огромен. В их число входят и продукты небезызвестной китайской компании Xiaomi, но о них мы еще расскажем отдельно.

Программа Qualcomm Flash Image Loader (QFIL) для прошивки мобильных устройств на Android

QFIL обладает простой, понятной даже малоопытному пользователю графической оболочкой. Собственно, зачастую все что от него требуется – это подключить девайс, указать путь к файлу (или файлам) прошивки и инициировать выполнение процедуры их установки, которая по завершении будет записана в лог. Дополнительные возможности этого «прошивальщика» заключаются в наличии средства создания резервных копий, перераспределении разделов памяти и восстановлении «кирпичей» (нередко это и вовсе единственное эффективное решение для поврежденных Qualcomm-аппаратов). Без недостатков тоже не обошлось – в программе нет защиты от ошибочных действий, ввиду чего по незнанию можно повредить устройство, а для работы с ней и вовсе потребуется установить дополнительное ПО.

Прошивка мобильных устройств на базе Android в программе Qualcomm Flash Image Loader (QFIL)

В отличие от двух рассмотренных выше программ, ориентированных на работу с максимально широким спектром мобильных устройств, данное решение предназначено исключительно для продуктов компании Samsung. Функциональные возможности Одина значительно более узкие – с его помощью можно установить на смартфон или планшет официальную или кастомную прошивку, а также прошить отдельные программные компоненты и/или разделы. Помимо прочего, данный софт может использоваться и для восстановления поврежденных девайсов.

Odin3 v3-12 подкл ус-во, подсказка прош

Odin3 v3-12 options

XiaoMiFlash

Фирменное программное решение для прошивки и восстановления, ориентированное на обладателей смартфонов Xiaomi, которых, как известно, на отечественном пространстве довольно много. Часть мобильных устройств этого производителя (те, что на базе Qualcomm Snapdragon) можно прошить с помощью рассмотренной нами выше программы QFIL. MiFlash, в свою очередь, предназначен не только для них, но и для тех, в основе которых лежит собственная аппаратная платформа китайского бренда.

XiaoMiFlash интерфейс

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

XiaoMiFlash драйвера

ASUS Flash Tool

Как можно понять из названия программы, предназначена она исключительно для работы со смартфонами и планшетами известной тайваньской компании АСУС, продукты которой хоть и не так популярны, как Samsung, Xiaomi и прочие Huawei, но все же имеют свою немалую пользовательскую базу. Функционально этот Flash Tool не так богат, как его аналог Smart Phones для MTK-аппаратов или собственное решение от Xiaomi. Он, скорее, похож на Odin, так как заточен исключительно под прошивку и восстановление мобильных девайсов конкретного бренда.

ASUS Flash Tool выбор модели

И все же, есть у продукта ASUS приятное достоинство – непосредственно перед выполнением основной процедуры пользователь должен выбрать из встроенного списка свое устройство, после чего указанная модель будет «сверена» с добавленным файлов прошивки. Зачем это нужно? Для того чтобы наверняка не угробить, не «окирпичить» своего мобильного друга, записав в его память несовместимые или просто неподходящие данные. Дополнительная функция у программы лишь одна – возможность полной очистки внутреннего хранилища.

ASUS Flash Tool настройки

В этой статье мы рассказали о нескольких программных решениях, наиболее часто используемых для прошивки и восстановления мобильных устройств с Андроидом на борту. Первые два ориентированы на работу со смартфонами и планшетами из противоположных (и самых массовых) лагерей – MediaTek и Qualcomm Snapdragon. Следующая троица предназначена для девайсов конкретных производителей. Конечно, есть и другие инструменты, предоставляющие возможность решения аналогичных задач, но они более узконаправленные и менее массовые.

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

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Еще статьи по данной теме:

нечего не понятно что делать? где скачать?

Да можно, прошивку в интернете ищите)

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

Здравствуйте. Для решения вашей проблемы ознакомьтесь с представленной по ссылке ниже статьей и воспользуйтесь предложенными в ней рекомендациями. Лучше действовать в том порядке, в котором все описал автор.

я не магу найти програму для прошивки на планшет супра m726g

Здравствуйте. Ваш планшет можно прошить с помощью программы SP Flash Tool. О том, как именно это делается, ранее мы во всех деталях писали в отдельной статье, ссылка ниже. Непосредственно файл прошивки потребуется найти самостоятельно.

У меня телефон SAMSUNG GT-S7392, с прошивкой для МТС.Хотим перейти на ТЕЛЕ-2.Какой программой нужно для этого воспользоваться?

как прошить телефон x gody x15s нечего не получается

какой программой прошить смартфон Leagoo T5c

Asus tf101 .
why devices of the Transformer family are not supported .
How to flash tf101 .

Здраствуйте,скажите какой поограммой можно прошить андроид Prestigio Wize N3 PSP 3507 DUO

Здравствуйте. Все зависит от того, в каком состоянии находится смартфон (работает или нет) и какого результата вы хотите добиться в итоге. В общих случаях можно порекомендовать программу ResearchDownload. На нашем сайте есть две статьи, где она использовалась в качестве одного из инструментов, но с совершенно иными мобильными устройствами. Однако для понимания алгоритма этого будет достаточно.

Здраствуйте,телефон загружается но не открывается я думаю нужна прошивка

как перепрошить телефон itel

как перепрошить телефон itel.скиньте сайты и приложение пожалуйста.


Подробнее: Прошивка ZTE Blade X3 через SP Flash Tool (часть Способ 2: SP Flash Tool)

Вполне вероятно, что после такой прошивки работоспособность смартфона будет восстановлена, а если слетит NVRAM или IMEI, его можно будет восстановить. И если это потребуется сделать, напишем как это сделать.

Спасибо. По той ссылке от кнопки. которую дали и вы, мы пробовали прошиваться статусы ошибок разные в зависимости с какими кнопками работаешь, каким портом пользуешься, какие опции выставляешь, Вы думаете в сервис центре смогут помочь?

Добрый день, забыл код для разблокировал экрана oppo a53.
Нужно прошивать или есть как обойти пароль?

Как можно прошить на русский язык телефон нокия 216 модель
RM-1187 code059x847.назаров николай

Здравствуйте. На конкретно эту модель, с кодом 059X847, довольно сложно установить русский язык, скорее всего, потребуется изменить ее код. Сама же прошивка осуществляется с помощью программы Nokia Software Recovery Tool, ссылка на которую дана ниже:

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

Отмечу, что на странице поддержки телефона есть прошивки и файлы локализации, но русского среди них тоже нет.

Не могу найти прошивку наFamous 5+.андроид 8..1. sc7731. Sw 01

А если с другой модели телефона взять,с таким же андроидом и процессором и сборкой?

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