Создание прошивок для андроид. Как сделать самостоятельно прошивку на Андроид: подробная инструкция

  • 20.08.2019

Ведет активную поддержку клиентов, с переменным успехом выпуская апдейты и обновления для своих гаджетов. На практике официальные прошивки разработчик поставляет в основном «по воздуху» (через ОТА обновления), а также выкладывая специальный файл образа прошивки, на своем сайте или портале.

Прошить образ можно благодаря набору специального софта:

  • CWM Recovery.
  • TWRP Recovery.
  • При помощи компьютера и специального набора программ (Fastboot, KDZ Update, Odin и прочих утилит).

Как правило, образы прошивок до обновления запакованы в специальные архивы, имеющие расширение ZIP, ISO и другие.

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

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

На вопросе как прошить андроид под ОТА обновления «по воздуху» останавливаться не будем, а лучше сконцентрируем все свое внимание на других методах обновлений.

Прошивка телефона при помощи CWM Recovery

Богатая функциональность CWM Recovery позволяет производить с устройством множество манипуляций, в том числе и накатывать прошивку. По умолчанию в девайсах установлен стоковый Recovery, а значит, для начала нужно выполнить установку непосредственно самой утилиты ClockWorkMod Recovery.

Общий процесс прошивки, описанный ниже, касается ZIP файлов. Инструкция:

  1. Заходим в Recovery. Для этого необходимо полностью выключить девайс, и после зажать определенную последовательность кнопок, на теле устройства. Набор клавиш может варьироваться в зависимости от производителя устройства. Каждая комбинация может отличаться между собой. Дополнительную информацию можно узнать благодаря поисковикам, задав соответствующий вопрос. Универсальным вариантом является набор следующих нажатий:
  • Кнопка повышения громкости + клавиша вкл.
  • Кнопка понижения громкости + клавиша вкл.
  • Кнопки повышения/понижения громкости + клавиша питания + «Домой».
  • Одновременно зажатые клавиши громкости вверх+вниз и клавиша включения аппарата.

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

  1. Перед началом устройства обязует выполнить полный сброс гаджета до заводских настроек. Для этого перейдите к пункту «wipe data/factory reset» и подтвердите действие, нажав по строке с надписью «Yes – Wipe all user data».
  2. Вернувшись в основное лобби, выберите пункт «Install zip».
  3. Далее нажмите на пункте «Choose zip from /sdcard» и в древе проводника выберите файл, с сохраненной ранее прошивкой.
  4. Подтверждаем выбор, нажав на пункте «Yes – Install…».
  5. Запуститься процесс перепрошивки девайса. По окончанию процесса пользователь увидит надпись на экране «Install from sdcard complete».
  6. Все что осталось сделать пользователю, это вернуться в основное лобби CWM Recovery и выполнить процесс перезагрузки гаджета, нажав строку «reboot system now».

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

Как прошить телефон андроид при помощи TWRP Recovery

Для тех, кому по душе больше нравится работа с утилитой в виде TWRP Recovery, предлагается следующая инструкция пошаговой установки обновления в виде ZIP архива:

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

Установка обновлений при помощи ROM Manager

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

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

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

Для начала скачайте файл с прошивкой для вашего гаджета, и следуйте дальнейшей инструкции:

  1. Перенесите архив прошивки, в расширении ZIP в память вашего устройства.
  2. В меню утилиты перейдите в пункт «Установить ROM с SD карты»».
  3. Среди папок и файлов выберите ваш образ и нажмите на него.
  4. В новом лобби выберите пункт «Перезагрузка и установка». Не забудьте поставить отметку на пункте «Сохранить текущий ROM». В этом случае у вас будет возможность восстановить систему в любое время.
  5. Нажав «ОК» ваш гаджет перейдет в режим Recovery, и начнется процесс обновления прошивки.

Благодаря расширенному функционалу приложения ROM Manager пользователи могут непосредственно в нем скачать образы под свое устройство. Сделать это можно нажав на пункт «Скачать прошивку». Доступ к некоторым ROMам доступен только в платной версии программы.

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

Android Kitchen

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

После того, как выбор изменений был сделан, пользователю остается только выбрать версию прошивки, которая используется в данный момент (здесь важно не ошибиться), во вкладке «Summary» еще раз проверить список и нажать на кнопку «Submit Work to Kitchen». Теперь нужно дождаться своей очереди на создание архива с файлом прошивки, которую потом можно будет залить через Recovery.

Одной из самых популярных, если не сказать популярнейшей операционной системой для мобильных устройств , будь то смартфоны, планшеты или другие девайсы, несомненно, является Android. Мобильных гаджетов работающего на основе данного программного обеспечения существует великое множество, и еще больше – версий прошивок, как официальных от производителя, так и неофициальных, собранных любителями или поклонниками того или иного устройства. Но бывает, случается так, что та или иная прошивка не устраивает. Причины могут быть самыми разными, от быстродействия до интерфейса, и много других мелких нюансов. Что же делать в таком случае? Создать прошивку самостоятельно!

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

Создать Андроид прошивку

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

После посещения Android Kitchen можно выбрать, что нужно поменять – индикатор батареи, системные иконки, строку состояния, различные анимации, диалоговое окно изменения громкости, разделители и полосу прогресса, экран блокировки, шрифты. Выбирая те или иные функции на «кухне», можно сразу же, в реальном времени провести предварительный просмотр сделанных изменений, чтобы оценить их. После того, как все нужные изменения были произведены, переходим на вкладку File Upload. Здесь доступны некоторые настройки, однако по умолчанию они подобраны оптимально – не меняйте их, если не уверены, что вы делаете. В разделе «Select your ROM from Kitchen`s list or upload your own files», выбираем опцию «Kitchen`s list». Из выпадающего списка выбираем используемую прошивку. Будьте внимательны – если указать не ту версию программного обеспечения, высока вероятность ошибки, после которой в лучшем случае патч не применится вообще, а в худшем – система перестанет загружаться и придется полностью перепрошивать устройство.

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

Любую прошивку можно доработать под определенного пользователя

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

Сборка из исходников

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


Изменение уже готового файла

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

Редактирование с помощью компьютера

Необходимое программное обеспечение

Нам понадобится компьютер, устройство, файл прошивки и специальная программа под названием Android Kitchen (известная также как кухня). Файл прошивки можно найти на специализированных форумах, наиболее известные - англоязычный XDA Developers и русскоязычный 4PDA. В разделе вашей модели устройства можно найти ссылки на самые популярные и проверенные прошивки как официальные стоковые, так и неофициальные пользовательские.

Далее нужно установить кухню на свой компьютер. Лучше всего работать под Linux, но необходимые библиотеки можно поставить и в Windows. В этом случае можно выйти из ситуации установив Cygwin. и следуйте пошаговой инструкции , помещённой в архиве. Перед этим потребуется установить также Java Platform (JDK) с официального сайта (http://www.oracle.com/technetwork/java/javase/downloads/index.html для Windows) или же в Центре приложений Ubuntu найти и скачать OpenJDK Java 6 Runtime либо похожее (для Linux). Второй вариант использования - установить Linux на виртуальную машину и управлять процессом через неё.


Модификация прошивки

Прошивки чаще всего распространяются в виде файла с расширением.img, реже - как ZIP-архив. В обоих случаях вам понадобится с прошивкой в папку установленной кухни, чтобы она смогла импортировать её и начать с ней работу. Кухня должна быть установлена по пути c:/cygwin/home/user/ (при установке через Cygwin) или Файловая система/home/user/ (при работе через Linux).


  1. Запустите кухню через Cygwin или Linux-терминал с помощью команды cd kitchen, затем./menu.
  2. Распакуйте архив в кухню, как уже писалось выше.
  3. После того как появится меню программы, перейдите в раздел 0. Advanced Options.
  4. После этого будет представлен список команд для модификации прошивки. Выберите именно ту, которая нужна вам. Можно добавить Busy Box, Root, Apps2SD, заменить стоковые приложения, различные анимации, освободить память устройства и многое другое.
  5. После окончания манипуляций запустите в главном команду 99. Build ROM from working folder (Построить прошивку с рабочей папки) и заберите ZIP-архив с OUTPUT_ZIP.


Прошивка устройства

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


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


Редактирование на устройстве

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


Изменение собственной прошивки

  1. Если на устройстве ещё не получен root, получите его. Как это сделать, можно прочесть на специализированных форумах в разделе, посвящённом именно вашему аппарату. Дело в том, что поддерживаются малым количеством устройств и большинство из них имеют индивидуальную процедуру.
  2. Установите Nandroid backup (https://play.google.com/store/apps/details?id=com.h3r3t1c.onnandbup&hl=ru) и сделайте с его помощью резервную копию системы своего девайса. Сохраните её в надёжном месте, например, в облачном хранилище. Для чего создавать копию? Вдруг что-то пойдёт не так или вы нечаянно удалите что-то нужное - будет возможность вернуть всё как было.


  1. Установите файловый менеджер, работающий с системным разделом, чтобы удалить ненужный софт и добавить свои приложения. Золотым стандартом является Titanium Backup.
  2. Выберите приложения, которые вы хотите удалить, и удалите их через файловый менеджер.
  3. Установите приложения, которыми вы хотите заменить удалённые, и через Titanium Backup сделайте их системными.
  4. Перезагрузите устройство и наслаждайтесь своими успехами.


Изменение сторонней прошивки в ZIP-архиве

  1. Скачайте интересующий вас файл прошивки в формате.zip.
  2. Установите файловый менеджер, умеющий работать с архивами, например, ES Проводник или Total Commander, и распакуйте содержимое архива.
  3. Удалите лишние или добавьте недостающие приложения, после чего запакуйте архив обратно и переместите в корень флеш-карты.
  4. С помощью Nandroid backup (https://play.google.com/store/apps/details?id=com.h3r3t1c.onnandbup&hl=ru) создайте резервную копию системы и скопируйте её на облачный диск.
  5. Прошейте устройство из режима Recovery.


Заключение

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

Собирали ли вы прошивку для Android самостоятельно? Что вы в ней меняли и каким образом это делали? Будет интересно, если вы поделитесь своими отзывами.

Бывало ли с вами так, что поставил свежую новую кастомную прошивку. И вроде бы со всех сторон она просто идеальна. Шустрая, с последней версией системы, красивая до ужаса. Но вдруг товарищ хвастается, что тоже вчера обновился, и ты понимаешь, что чужая штука красивее, быстрее, вкуснее, желаннее. Что делать?

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

Для изменений своей прошивки первым делом нужно перейти на сайт кухни http://uot.dakra.lt/kitchen/ . Там-то и будет проходить весь процесс. На самом деле с нуля прошивку собрать не получится. За основу придётся уже взять чьё-то творение, а вот приправить его собственными специями - запросто.

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

Причём, выбирая какие-то опции на кухне, есть возможность создавать real-time превью изменений, чтобы видеть, что получится на выходе.

После выбора необходимых вам изменений нужно отправиться на закладку file upload. Там из настроек не стоит менять ничего без крайней необходимости. Только лишь в разделе "Select your rom from kitchen"s list, or upload your own files" выберите опцию "Kitchen"s list". Появится выпадающий список, в котором нужно будет указать используемую прошивку. Если вы укажите не свою, то есть большая вероятность, что сгенерированный патч не применится или ещё хуже - придётся делать перепрошивку, потому что система не сможет загрузиться.

После всех этих манипуляций переходим на вкладку "Summary", проверяем список изменений, которые запланировали и давим кнопку "Submit Work to kitchen".

Далее отправляемся на страницу http://uot.dakra.lt/pickup/ , где ждём своей очереди. Как только она наступит - сайт отдаст вам.zip-архив со свежеприготовленным патчем для прошивки, который необходимо прошить через рекавери.

Внимание, перед прошивкой не забудьте сделать бекап системы!

Удачных кастомизаций!

Если вам интересны новости мира ИТ, подписывайтесь на материалы сайт в, .

Это вдохновляет нас на написание новых материалов. Спасибо;)

А ещё чуть ниже можно прочесть или оставить комментарии. Доскроллишь страницу? Есть что сказать?

Комментарии:

Teutonick : И все же со скепсисом я отношусь к подобным штучкам. Глядя на то сколько проблем народ имеет с обычными перепрошивками, порой и между двумя стоковыми версиями, ставить такого франкинштейна кому попало,имхо, небезопасно =) Сам лично никогда не пробовал... так что ничего конекретного не скажу, просто наблюдения

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

Введение

Существует три способа создания собственной прошивки для Android-коммуникатора: 1. Допиливание и компиляция операционной системы из исходников, публикуемых компанией Google или командой CyanogenMod. 2. Модификация стоковой прошивки коммуникатора. 3. Модификация сторонней прошивки , созданной с помощью первого или второго способа.

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

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

Выбираем подопытного

Итак, предположим, что наш коммуникатор уже зарутован и в загрузочную область записана консоль восстановления ClockworkMod, позволяющая устанавливать на аппарат любые прошивки без всяких ограничений (о том, как это сделать, мы писали в статье «Тотальное подчинение», опубликованной в октябрьском номере ][). Теперь мы хотим установить на устройство другую прошивку, да не абы какую, а с собственными модификациями, настройками и набором ПО. Поэтому нам нужен каркас, а именно чужая прошивка, стабильно работающая на нашем устройстве. Где ее взять?

Главное место обитания всех ромоделов - это, конечно же, форумы xda-developers.com. Там можно найти все что угодно для коммуникаторов, работающих под управлением iOS, Windows Mobile, Windows Phone и Android. Открываем сайт в браузере, жмем на раздел Forums и ищем в списках форумов свой коммуникатор. Далее заходим в соответствующий раздел Android Development и внимательно просматриваем список тем, содержащих в названии слово «». Лучше найти какую-нибудь чистую прошивку с названием вроде «Pure Android 2.3 Rom» или порт CyanogenMod, хотя, в сущности, подойдет и любая другая (правда, возможно, придется отменять авторские изменения). Открываем тему, проматываем первый пост, находим где-то в конце ссылку на скачивание и загружаем ROM на свой комп.

Теперь файл прошивки нужно вскрыть. Делается это с помощью самого обычного unzip:

$ mkdir ~/rom; cd ~/rom $ unzip ../путь/до/прошивки.zip

Общая структура каталогов и важные файлы

Набор файлов и каталогов, образовавшийся в результате выполнения предыдущей команды, и есть, в сущности, операционная система Android, причем ровно в том виде, в каком она будет размещена в NAND-памяти устройства. В зависимости от версии Android и фантазии автора, она может содержать разные наборы каталогов и файлов, однако в ней всегда присутствуют три обязательных объекта: META-INF, файл boot.img и директория system.

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

Файл boot.img содержит загрузочный образ, который включает в себя ядро Linux и образ initrd. Его можно распаковать, однако для нас он не несет особой пользы, так как почти любые системные параметры можно изменить с помощью файлов настроек и файловой системы /proc. Если же тебе требуется ядро, собранное с особыми параметрами, например с активированным планировщиком BFS или поддержкой NFS, то почти наверняка его можно найти на том же xda-developers и прошить с помощью ClockworkMod.

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

  • app - предустановленные приложения: телефон, калькулятор, календарь и т. д.
  • bin -аналог каталогов /bin и /usr/bin в Linux. Содержит различные системные компоненты, используемые более высокоуровневыми компонентами системы. Например, именно здесь лежит виртуальная машина dalvikvm.
  • etc - файлы настроек. Полный аналог /etc в Linux, используемый, однако, только системными компонентами. Приложения Android хранят настройки в каталоге /data/data.
  • fonts - шрифты. По умолчанию содержит только фирменные шрифты Droid (или Roboto в Android 4.0).
  • framework - наборы Java-классов, используемые системой и Android-софтом. Тут же лежит файл framework-res.apk, содержащий полное описание интерфейса операционной системы, включая все графические файлы.
  • lib - Linux-библиотеки, используемые низкоуровневыми компонентами системы. Аналог каталогов /lib и /usr/lib в Linux, включает такие стандартные библиотеки, как libc (правда, Android использует собственную Bionic вместо Glibc), libz (gzip-шифрование), libssl и другие.
  • media - медиафайлы: рингтоны, звуки уведомлений, звуки интерфейса и файлы анимации загрузки ОС.
  • tts - файлы, необходимые для работы синтезатора речи.
  • usr - необязательный каталог, который обычно содержит файлы, необходимые для работы софтин из каталога bin. По сути, аналог /usr/share.
  • vendor - файлы, поставляемые производителем аппарата. Обычно содержит бинарную firmware для различных «железных» компонентов, например модуля Wi-Fi.
  • xbin - необязательный каталог, который содержит все, что не вошло в bin. Как правило, используется для хранения полезных утилит , тем не менее необязательных для работы системы (top, текстовый редактор). CyanogenMod использует его для хранения инструментов администрирования: bash, ssh, powertop, busybox и т. д.
  • build.prop - файл, содержащий информацию о сборке, а также различные низкоуровневые настройки.

Kоманда setprop

Приведенные в статье настройки build.prop можно применить и в уже работающей системе с помощью команды setprop:

# setprop debug.sf.nobootanimation 1

Собственный набор ПО

Каталог /system/app содержит все предустановленное в прошивку ПО. Удаляя и добавляя пакеты в этот каталог, мы можем изменить набор приложений, доступных «из коробки». Например, ни для кого не секрет, что стандартный ланчер Android (да и ADWLauncher в CyanogenMod) тормозит и имеет многочисленные недостатки. ОK, заменим его на LauncherPro:

$ rm system/app/Launcher.apk $ wget goo.gl/U9c54 -o system/app/LauncherPro.apk

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

Полезно поместить в прошивку одно из приложений для поиска утерянного смартфона (например, prey), тогда даже в случае сброса до заводских настроек оно останется в ОС и будет работать. Также можно заменить некоторое системное ПО, например добавить Dialer One вместо стандартного Phone.apk или Go SMS вместо sms.apk.

Как насчет системных Linux-приложений, например ssh-сервера или mc? Здесь тоже все просто. Собрать софтину для Android и процессора ARM можно с помощью комплекта NDK от Google, но большинство нужных приложений уже собрано до нас. Например, мы хотим предустановить mc в свою прошивку. Идем на xda-developers и выполняем поиск по запросу Midnight Commander. На первой же странице находим apk-пакет с установщиком и распаковываем его с помощью все того же unzip:

$ cd /tmp; unzip ~/NativnuxInstaller_1.1.apk

Видим в списке распакованных файлов assets/kits/mc-4.7.5.4-arm.tar.jet. Это архив tar.gz, который распаковывается в корень системы после установки apk-пакета (а точнее, после установки apk, запуска приложения и нажатия кнопки Install). Мы можем сразу распаковать его в нашу прошивку и получить предустановленный mc:

$ cd ~/rom $ tar -xzf /tmp/assets/kits/mc-4.7.5.4-arm.tar.jet

Теперь для запуска файлового менеджера на устройстве достаточно открыть терминал и набрать mc. Другие приложения могут распространяться в zip-архивах для прошивки с помощью ClockworkMod Recovery. Поместить их в свой мод еще проще, для этого достаточно перейти в корень прошивки (в данном случае ~/rom) и распаковать архив с помощью unzip.

Внешний облик

Собственную прошивку чаще всего создают для того, чтобы изменить внешний облик Android по своему вкусу. Проделать эту операцию в Android, опять же, очень просто. Все настройки графического интерфейса Android хранятся в файле framework/framework-res.apk. Его можно распаковать с помощью утилиты apktool:

$ cd ~; wget goo.gl/hxz5l $ tar -xjf apktool1.4.1.tar.bz2 $ cd ~/rom/system/framework $ java -jar ~/apktool.jar d framework-res.apk

В результате в текущем каталоге должен появиться каталог framework-res, содержащий все файлы пакета. Наиболее интересные подкаталоги внутри него - это res/drawable-* и res/layout-*. Первый содержит все графические элементы в виде png-файлов для разных разрешений и положений экрана. Например, drawable-land-mdpi - это каталог с графическими ресурсами для экранов среднего разрешения, находящихся в горизонтальном положении (во время поворота экрана ОС переключается на использование других файлов). Разумеется, любой файл можно отредактировать или заменить другим.

Каталоги layout содержат описания графических элементов в формате XML (на самом деле они хранятся в бинарном формате AXML, но apktool преобразовал их в обычный XML). Формат описания достаточно прост и понятен, но с наскоку с ним разобраться трудно, особенно если не знать, где что находится. Поэтому мы снова обратимся к услугам обитателей форума xda-developers, которые уже успели придумать массу различных модификаций для графического интерфейса Android. Их легко найти с помощью поискового запроса «framework-res mod имя_устройства».

Обычно такие моды распространяются в виде готового файла framework-res.apk, который можно просто положить в свою прошивку. Если же ты хочешь найти конкретные отличия в содержимом, то мод можно распаковать и сравнить с твоим framework-res с помощью diff:

$ diff -R ~/framework-res \ ~/rom/system/framework/framework-res

К сожалению, в рамках одной статьи мы не можем рассмотреть хотя бы часть внутреннего устройства framework-res, поэтому за более подробной информацией обращайся к соответствующей теме форума 4PDA .

После внесения модификаций можно собрать framework-res.apk с помощью все того же apktool. Однако для этой операции требуется утилита aapt из комплекта Android SDK, которую apktool использует для окончательной упаковки apk-файла. Ее можно получить и отдельно:

$ cd ~/bin; wget goo.gl/tC7k8

Теперь можно собрать файл:

$ cd ~/rom/system/framework $ java -jar ~/apktool.jar b framework-res $ cp framwork-res/dist/framework-res.apk . $ rm -rf framework-res

Следующий этап - это изменение анимации загрузки. Она хранится в виде обычных png-файлов, упакованных в архив system/media/bootanimation.zip. Распакуем его:

$ cd /tmp $ mkdir bootanimation; cd bootanimation $ unzip ~/rom/system/media/bootanimation.zip

Внутри находится файл desc.txt, описывающий анимацию в следующем формате:

Ширина Высота FPS p Порядок Пауза Каталог...

Стандартный вид этого файла:

480 800 30 p 1 0 part0 p 0 0 part1

Это значит, что изображение имеет размер 480 x 800, а скорость смены изображений (FPS) составляет 30 штук/с. Далее идет описание первой части анимации, файлы которой находятся в каталоге part0. Она проигрывается один раз (цифра 1 после p). Следующая часть (part1) проигрывается бесконечное число раз, пока аппарат не загрузится. Обычно каталог part0 содержит изображения, соответствующие первой части анимации, а part0 - все остальные изображения, которые проигрываются в цикле. Сами изображения должны быть одинакового размера, а их названия должны содержать числа в возрастающем порядке, например 0001.png, 0002.png и т. д.

Так как анимация загрузки имеет очень простой формат, ее довольно легко сделать. Достаточно преобразовать видеоролик в png-изображения с помощью mencoder (в desc.txt необходимо выставить значение FPS 24):

$ mplayer -nosound -vo png:z=9 video.avi

Но и это будет лишним. Участники форума xda-developers наделали столько анимаций, что необходимость работы руками отпадает вовсе. Ссылки на интересные анимации приведены в конце статьи.

Низкоуровневые настройки

Последнее, о чем я хотел бы рассказать в статье, - это редактирование низкоуровневых настроек. В Android для этого есть файл system/build.prop, который хранит информацию о сборке прошивки и настройки для конкретных устройств. Добавив в этот файл те или иные строки, можно изменить функционирование Android, ускорить его работу или уменьшить расход батареи. Ниже приведены наиболее интересные настройки.

  1. Запрет выгрузки рабочего стола из памяти: ro.HOME_APP_ADJ=1

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

  2. Повышение качества сохраняемых JPG-файлов: ro.media.enc.jpeg.quality=100

    Позволяет сделать снимки камеры более четкими, но существенно повышает нагрузку на ЦП.

  3. Отключение анимации загрузки для ускорения загрузки операционной системы: debug.sf.nobootanimation=1
  4. Возложение части работы по отрисовке интерфейса на GPU: debug.sf.hw=1

    Позволяет сделать интерфейс более быстрым и плавным.

  5. Блокировка извещения об активном режиме отладки (при подключении к компу с помощью USB): persist.adb.notify=0
  6. Устранение проблемы с возникновением черного экрана после завершения звонка: ro.lge.proximity.delay=25 mot.proximity.delay=25
  7. Включение подсветки клавиш управления сразу после включения экрана: ro.mot.buttonlight.timeout=0

Помимо всего этого, многие пользователи также рекомендуют применять следующие комбинации флагов:

  1. Уменьшение времени отклика сенсорного экрана: debug.performance.tuning=1 video.accelerate.hw=1 windowsmgr.max_events_per_sec=150
  2. Увеличение времени жизни батареи: wifi.supplicant_scan_interval=180 pm.sleep_mode=1 ro.ril.disable.power.collapse=0
  3. Твики 3G-модуля: ro.ril.hsxpa=2 ro.ril.gprsclass=10 ro.ril.hep=1 ro.ril.enable.dtm=1 ro.ril.hsdpa.category=10 ro.ril.enable.a53=1 ro.ril.enable.3g.prefix=1 ro.ril.htcmaskw1.bitmask=4294967295 ro.ril.htcmaskw1=14449 ro.ril.hsupa.category=5
  4. Улучшение производительности сети: net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960 net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960

Все эти строки необходимо просто поместить в файл system/build.prop и сохранить.

Сборка

ОК, мы внесли необходимые изменения , внедрили свои приложения, твикнули систему и теперь должны создать готовый к прошивке образ ОС. В этом нам поможет утилита testsign. Сначала следует запаковать прошивку с помощью zip:

$ cd ~/rom; zip -r my-rom.zip *

Теперь необходимо подписать архив, чтобы Recovery смог его установить:

$ wget goo.gl/OyBBk $ java -classpath testsign.jar testsign \ my-rom.zip my-rom-signed.zip

После этого закидываем архив my-rom-signed.zip на карту памяти устройства и выключаем аппарат. Чтобы попасть в Recovery, включаем аппарат с зажатой клавишей уменьшения громкости (для некоторых устройств процедура может отличаться).

Теперь переходим в пункт «Install zip from sdcard», а затем в «Choose zip from sdcard», находим my-rom-sign.zip на SD-карте и выбираем Yes. После завершения установки выбираем «Reboot system now».

Выводы

Android - гибкая платформа, и в этой статье описаны далеко не все возможности по ее модификации. Более глубокая модификация может включать в себя замещение ядра, изменение экрана блокировки и стандартных приложений, активацию таких возможностей, как автоматическая установка приложений на карту памяти, внедрение механизма загрузочных скриптов (/etc/init.d), и многое другое. Обо всем этом мы поговорим в следующих статьях.

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

Что такое прошивка?

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

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

Итак, перепрошить свой смартфон можно с помощью специального софта:

  • CWM Recovery;
  • TWRP Recovery;
  • ROM Manager;
  • При помощи компьютера и специального набора утилит (Fastboot, KDZ Update и т.д.).

Перед началом процесса установки новой ОС обязательно позаботьтесь о сохранности данных на внутренней памяти телефона – сделайте бекап важной информации. Ниже мы рассмотрим несколько способов установки операционной системы.

CWM Recovery

Утилита ClockWorkMod Recovery имеет широкий функционал по установке новых прошивок для смартфона. Неофициальные прошивки можно установить через Рекавери, при этом не обязательно использовать именно CWM. По умолчанию, все устройства «из коробки» уже имеют стандартную версию Рекавери. Поэтому изначально вам понадобится установить CWM Recovery. Сделать это можно через ROM Manager.

Напомним, что для нормальной работы ROM Manager вам понадобятся root-права для вашего Android девайсa. Итак, после установки ROM Manager на свой смартфон выполните следующие действия:

  1. Откройте пункт «Recovery Setup». В следующем окне в разделе «Install or update Recovery» выберите «ClockworkMod Recovery»;

  1. Затем приложение автоматически определит ваше устройство. Вам остается лишь нажать на соответствующий пункт в меню;

  1. В новом окне выберите «Установить ClockworkMod». После этого начнется процесс загрузки утилиты;

  1. По завершению загрузки появится окно с запросом подтверждения root прав для нового приложения.

На этом процесс установки завершен, вы должны увидеть финальное сообщение «Successfully flashed ClockworkMod recovery!».

После установки CWM Recovery можно приступать непосредственно к самой прошивке. Перед тем, как перепрошить андроид смартфон, скачайте файл с новой версией ОС в формате.zip. Затем выполните следующие действия:

  1. Выключите аппарат и нажмите клавишу громкости вверх + кнопку включения одновременно (в некоторых смартфонах комбинация для запуска Рекавери может отличаться). В меню утилиты можно перемещаться с помощью кнопок громкости, а клавиша питания осуществляет выбор соответствующего пункта. Выполните сброс настроек в пункте «wipe data/factory reset»;

  1. Нажмите «Yes – Wipe all user data» в новом окне;

  1. Вернитесь в главное меню и выберите «install zip». Далее перейдите к соответствующей папке с файлом прошивки в «Choose zip from /sdcard».

По завершению процесса установки должно появиться сообщение «Install from sdcard complete». Опять вернитесь в главное меню и перейдите к пункту «reboot system now». После этого должна начаться загрузка установленной прошивки, иногда этот процесс может занимать до 10 минут. По завершению всех действий смартфон готов к работе.

TWRP Recovery

Установка через эту утилиту не будет иметь какого-либо влияния на конечный результат, поэтому способ прошивки зависит сугубо от ваших личных предпочтений. Для работы с TWRP Recovery сначала нужно воспользоваться официальным приложением Official TWRP App, которое установит утилиту на смартфон. Эта версия Рекавери работает с теми же.zip файлами, что и CWM.

Итак, выполните следующие действия:

  1. Скачайте нужную версию прошивки в.zip формате, поместите её в папку в памяти телефона;

  1. Откройте утилиту. Сделать это можно тем же способом, что и с CWM Recovery (выключите смартфон и нажмите соответствующую комбинацию клавиш);

  1. Сбросьте настройки системы для заводских, выбрав «Wipe» в главном меню. Чтобы начать процесс, перетащите ползунок на экране вправо;

  1. По завершению сброса настроек вернитесь в главное меню. Перейдите к пункту «Install»;

  1. В памяти устройства найдите папку с прошивкой, перетащите ползунок для начала процесса установки;

  1. После завершения установки Нажмите на «Reboot System», чтобы загрузить Android.

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

ROM Manager

Помимо своего основного предназначения, ROM Manager также можно использовать для создания бекапа системы перед установкой прошивки. Итак, для перепрошивки выполните следующие действия:

  1. Скачайте архив с нужной версией ОС, поместите его в память телефона. В главном меню приложения выберите пункт «Установить ROM с SD карты»;

  1. Найдите соответствующий архив и кликните по нему. В новом окне выберите «Перезагрузка и установка». Рекомендуем также установить галочку напротив «Сохранить текущий ROM», так вы сможете восстановить систему если что-то пойдет не так;

  1. Подтвердите свое действие, ROM Manager автоматически начнет процесс установки прошивки через Recovery.

ROM Manager также умеет искать кастомные прошивки для устройства в Интернете. Для этого в главном меню приложения есть пункт «Скачать прошивки».

Как прошить телефон Андроид через компьютер

Чтобы перепрошить смартфон с помощью компьютера в домашних условиях, нужно воспользоваться несколькими десктопными утилитами. Ниже мы расскажем, как установить новую версию ОС через Fastboot, одну их самых популярных программ для этого. Итак, для начала вам нужно скачать архив с прошивкой и разархивировать его в папку «platform-tools», в которой находятся «ADB» и «fastboot».

Затем нужно перевести свой смартфон в fastboot mode. Для этого включите отладку по USB, перейдите в командную строку на компьютере и последовательно введите команды cd /, cd путь к файлу «adb». В нашем примере адрес – C:\Program Files (x86)\Android\android-sdk\platform-tools. После ввода всех команд телефон должен перезагрузиться в режиме fastboot.

Перед тем, как перепрошить телефон Андроид через компьютер в домашних условиях, отформатируйте все разделы девайса с помощью следующих команд:

  • fastboot erase boot;
  • fastboot erase userdata;
  • fastboot erase system;
  • fastboot erase recovery;
  • fastboot erase cache.

После ввода каждой команды нужно нажимать клавишу Enter. Далее введите команду flash-all, которая автоматически начнет установку прошивки (в папке должен находиться файл flash-all.bat). По завершению процесса вы увидите сообщение об успешной установке.

Здравствуй Хабр!

Несколько лет назад, когда я впервые познакомился с 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 , а класс, который содержал данную подпрограмму находился в

Распаковка и анализ оригинального файла
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.
public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return true; return false; }
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 и смотрим код:
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297:cond_13:goto_13 return v0 .line 283:cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291:cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto:goto_13 .end method
9 . Страшно, не правда ли? Ничего же не понятно. Но, это дело поправимое. Создав несколько своих патчей и набив тем самым руку, вы легко сможете модифицировать код без сторонних средств. В нашем случае, в этом коде
.prologue const/4 v0, 0x1 происходит присваивание переменной v0 значение 1, то есть TRUE. Далее идут всякие проверки, и если телефон не китайский, то значение переменной изменяется:
.line 297 const/4 v0, 0x0 goto:goto_13
10 . Самый простой способ спасти отца русской демократии, это изменить код на следующий:
.prologue const/4 v0, 0x0 , то есть поменять значение переменной с 1 на 0. То есть что бы ни было, всегда бы возвращалось значение FALSE и в JD-GUI код выглядел бы как public static boolean isChina() { if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; }
11 . Да, метод,будет работать. Но мы же не ищем легких путей - это раз. Во-вторых не совсем красиво. Хочется кода что-то вроде
public static boolean isChina() { return false; }
12 . А как нам получить Dalvik код данного исходного кода? Для новичков мы сделаем небольшой трюк.

Создание Dalvik кода
1 . Открываем Android SDK.
2 . Создаем новый проект, и в наш единственный тестовый класс пишем следующий код
package ru.habrahabr.test; public class test { public static boolean isChina() { return false; } }
3 . Компилируем наш проект и затем берем собранное приложение из рабочей области.
4 . Кладем собранное приложение в папку, где мы с вами потрошили JAR файл.
5 . Даем команду java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Мы дизассемблировали только что собранное приложение в Dalvik код.
7 . Открываем наш файлик test.smali и видим там код
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method
8 . Все, код для патчинга готов.
Накатывание патча
1 . Dalvik код замусорен маркерами, указывающими строку кода в оригинальном исходном файле. Это нужно при выводе ошибок, если таковые имеются в вашей программе. Без указаний строк код также прекрасно работает.
2 . Удаляем строки с нумерацией строк, копируем и заменяем метод (подпрограмму) в нашем \com\htc\util\contacts\BuildUtils$Customization.java файле.
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
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 доступ:

Adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@[email protected]@classes.dex reboot

1-ая команда закидывает патченный файл на флешку
2-ая команда открывает shell
3-ая команда дает root доступ
4-ая команда монтирует систему в режим чтения/записи
5-ая команда делает резервную копию файла
6-ая команда перезаписывает существующий файл новым патченным.
7-ая команда настраивает разрешения
8-ая команда удаляет кэш
9-ая команда делает перезагрузку устройства.

2 . Спасибо что дочитали до этого пункта, осталось немного.
3 . После перезагрузки ваш новый патченный код вступит в силу.
4 . Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@[email protected]@classes.dex reboot

Эпилог

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

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

P.S. Если что-то не понятно или смущает, задавайте вопросы - всегда буду рад ответить и пояснить.

Читайте в этой статье, как прошить Андроид через компьютер. Как прошить смартфон, что такое прошивка телефона на Андроид, зачем она нужна – распространенные вопросы пользователей-новичков, которые впервые столкнулись с проблемами на устройстве, управляемым «зеленым человечком».

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


Что такое перепрошивка Android, зачем она нужна

Сам термин «перепрошивка» широко стал применяться с заполнением рынка смартфонами под управлением ОС Android. Новоиспеченная система открыла пользователю кучу возможностей, к числу которых относится открытость, что позволило каждому изменять Android по своему желанию.

Перепрошить можно не только смартфон, но и обычный мобильный телефон – они также работают на ОС, пусть и более простой.

Что же скрывает за собой термин “прошить Андроид”? Любой современный смартфон, как мы уже обозначили, работает на операционной системе (комплекс программных средств , которые обеспечивают правильную работу аппаратной части), которой свойственны ошибки, глюки и прочие проблемы. ОС, телефона также может «слететь», как и Windows на вашем компьютере. И в этом случае выходом является переустановка системы или же перепрошивка.

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

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

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

Как перепрошить смартфон на Андроид?

Существует несколько довольно простых способов.

  • OTA -обновление . По сути, это и не является прошивкой. Вы просто обновляете версию ОС штатными средствами устройства. Процесс очень прост, к тому же, мы о нем уже рассказывали подробно, . Единственное, что стоит отметить – далеко не каждый смартфон получает обновления «по воздуху», а владельцы моделей от малоизвестных компаний и вовсе могут ни разу их не увидеть.
  • Перепрошивка с помощью смартфона . Задействовав лишь смартфон и пару приложений можно без проблем установить новую прошивку , которую скачали с официального или неофициального ресурса. Способ довольно простой, но следует предварительно ознакомиться с тем, о чем мы уже также писали.
  • Перепрошивка Android через компьютер. Способ прошить Андроид, о котором будем говорить сегодня. Он, скажем сразу, несколько сложнее тех, что представлены выше. Зато он предлагает значительно больше возможностей.

Перед тем как перепрошивать

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

Резервная копия данных

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


Резервная копия установленной прошивки

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

Качественный провод, полностью заряженный аккумулятор

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

Обязательно зарядите до 100% аккумулятор своего смартфона. Прошивка может длиться долго, а питание от USB-порта поступать непостоянно.

Возможные проблемы

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

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

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

Перепрошив свое устройство, вы теряете гарантию производителя.

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


Как прошить Андроид устройство через компьютер


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

Режим отладки по USB и нужные драйвера

Для начала возьмем в руки смартфон или другое устройство на Android, чтобы активировать режим «Отладка по USB». Делается это для того, что компьютер смог вносить изменения для подключенного по USB девайса. Итак, инструкция:

  1. первым делом обзаведемся правами разработчика, чтобы нам стало доступно специальное меню в настройках;

Для получения доступа к меню разработчика необходимо сделать многократные нажатия по пункту «Версия ОС». Находится он в разделе «О телефоне» (самый последний пункт в настройках устройства).

  1. после того как права получены, переходим в «Меню разработчика», которое появится в настройках;
  2. здесь находим пункт «Отладка по USB», делаем переключатель напротив него активным.

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

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

Чтобы установить драйвера:
  1. подключите устройство к компьютеру;
  2. зайдите в «Диспетчер устройств» (воспользуйтесь поиском или найдите раздел в «Панели управления»;
  3. найдите пункт с названием вашего устройства (смартфон или планшет может не определиться системой, в этом случае появится строка с неизвестным устройством, рядом с которой – желтый треугольник);
  4. правой кнопкой мыши вызовите контекстное меню для этого устройства;
  5. из списка выберите «Обновить драйвер»;
  6. нажмите на пункт «Поиск драйверов на этом компьютере»;
  7. затем кликните «Выбрать драйвер из списка уже установленных»;
  8. нажав на кнопку «Установить с диска», укажите путь к скачанным драйверам;
  9. перезагрузите ПК и смартфон, чтобы изменения вступили в силу.

Нередко одного лишь драйвера смартфона недостаточно. Для ряда устройств приходится устанавливать дополнительные драйвера USB-портов, чтобы ПК их мог обнаружить. Кроме того, многочисленные аппараты требуют установки инструмента ADB.

Android Debug Bridge (отладочный мост Android) – консольное приложение, которое используется для управления устройств Android через персональный компьютер.

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

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


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

  • ПО для прошивки определенных моделей. Фирменные программы, выпускаемые компаниями исключительно для своих устройств. Практически каждый крупный производитель предлагает к скачиванию бесплатную версию. Программы для перепрошивки определенных моделей обеспечивают быструю и безошибочную установку новой прошивки, к тому же имеют дополнительные инструменты, которые позволят сделать резервную копию системы и откат в случае критических ошибок. Подобное программное обеспечение представили следующие компании: Samsung (Odin); Lenovo (Flash Tool); HTC (Fastboot); LG (KDZ Updater); Sony (Flashboot); Nexus (Fastboot).
  • Универсальное ПО для прошивки. Программы, которые можно использовать для перепрошивки любых устройств Android. Их тоже немало, но возможности примерно одинаковы. Наибольшую популярность получили инструменты QFIL и SP Flash Tool: первый для прошивки устройств с процессорами Qualcomm Snapdragon, второй – Mediatek.
Разблокировка Bootloader

Очень многие смартфоны, дабы пользователь не мог свободно вносить изменения в систему, представлены с заблокированным Bootloader (загрузчиком). Bootloader – специальная программа, которая отвечает за доступ к ядру. Из чего делаем вывод, что пока она заблокирована, прошить ничего мы не сможем.

Разблокировка Bootloader производится при помощи специального софта, который предоставляет компания производитель с нужными инструкциями. Как правило, все сводится к установке специальной программы (к примеру, у HTC – Bootloader Unlock), активации на смартфоне режима отладки по USB (чуть выше описано, как это сделать) и нажатии всего одной кнопки – «Разблокировать» (Unlock).

Выбираем прошивку

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

  • Официальные. Представлены производителем без каких-либо изменений.
  • Неофициальные на основе официальной. Прошивки, которые доработаны сторонними разработчиками, но изменений внесено минимум (добавлена поддержка языков, исправлены ошибки и так далее).
  • Неофициальные. Есть и переработанные прошивки, которые просто напичканы самыми разными возможностями. Они разрабатываются на основе Android, готовы предложить кучу новых функций, но нередко содержат ошибки. Самые знаменитые из них: CyanogenMod, Lineage OS, OxygenOS и другие.

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

Перепрошивка Android через компьютер на примере SP Flash Tool


Как мы уже отметили, принцип работы всех программ для перепрошивки примерно схож. Мы более подробно расскажем о прошивке посредством.

Еще раз напоминаем, что SP Flash Tool – инструмент для прошивки только устройств с процессорами от компании Mediatek. Узнать, какой чип имеет ваш смартфон, можно на официальном сайте производителя или с помощью специальных приложений (AIDA64 и аналогичные).

Итак, смартфон пока не подключаем , работаем только с программой на ПК:

  1. распаковываем прошивку, если она в архиве (лучше делать это в корень диска C);
  2. запускаем программу SP Flash Tool (рекомендуем от имени администратора);
  3. указываем путь к скаттер-файлу, нажав на кнопку «Scatter Loading», которая находится в правой части окна (файл расположен в папке с прошивкой, название оканчивается так – emmc.txt);
  4. обязательно снимаем галочку с пункта Preloader (если ваше устройство работает на процессоре MT6575 или MT6577, то и с пункта dsp_bl также убираем галочку);
  5. из списка выберите Download Only;
  6. нажимаем кнопку Download, рядом с которой находится синий или зеленый значок стрелочки (в зависимости от версии программы);
  7. только сейчас подключаем Android-устройство к компьютеру без использования каких-либо переходников – только один провод;

Устройство должно быть выключено.

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

Не отключайте девайс от компьютера!

  1. ждем появления окошка с зеленым кружком;
  2. только теперь отключаем устройство от компьютера и пробуем его включить.

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

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

Заключение

Прошивка Android-устройства через персональный компьютер – задача довольно сложная, с массой нюансов, но выполнимая даже новичками. Главное в этом деле – не упускать из вида каждый момент, чтобы после не искать в Сети, как реанимировать кирпич. Не спешите, хорошенько изучите инструкции конкретно для вашего смартфона, благо их полно на просторах Интернета, и разберитесь с последовательностью действий. Ну а нам остается только пожелать вам удачи с перепрошивкой!


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

Введение

После этого, необходимо перезагрузить устройство и войти в режим рекавери. Recovery Mod на различных смартфонах активируется по-разному. Все зависит от производителя. Как правило, рекавери включается при одновременном нажатии клавиш Power (кнопка включения/выключения смартфона) + Volume Down (клавиша снижения уровня громкости). После того как вы зайдете в меню Recovery, необходимо открыть раздел, который предназначен для установки прошивок. В стандартном рекавери данный пункт называется «apply update from external storage». Что касается кастомных Recovery, то в TWRP надо выбрать «Install ZIP, а в CWM - «apply update from sdcard». Перемещение по рекавери осуществляется черед клавиши Volume Down и Volume Up.

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

Перепрошивка через ROM Manager

Провести прошивку в домашних условиях можно через программу под названием ROM Manager. Утилита, в отличие от того же CWM и TWRP, обладает простым интерфейсом, что облегчает процесс обновления прошивки. Кроме этого, программа имеет парочку интересных свойств. К примеру, можно сделать резервную копию системы и вернуть ОС к исходному состоянию, если процесс прошивки прошел неудачно. Итак, чтобы самому прошить телефон Андроид через ROM Manager, необходимо обладать root правами . Получить рут можно через специальные приложения по типу Unlock Root, Vroot и пр. Кроме этого, надо чтобы смартфон имел на борту кастомное рекавери (тот же CWM или TWPR).

Если у вас есть все вышеперечисленное, то в таком случае скачиваем и инсталлируем приложение ROM Manager с Play Market или интернета. Затем ищем подходящую прошивку и тоже загружаем ее. Затем запускаем ROM Manager и руководствуемся следующей инструкцией:

Как восстановить систему через ROM Manager

Если возникли какие-то проблемы после обновления ОС, то можно откатить изменения, вернув старую версию прошивки. Делается это следующим образом (при условии, что вы заранее сделали бэкап):

Если возникли какие-то вопросы по прошивке вашего телефона или что-то не получается - оставляйте свои комментарии. Также один из способов показан на видео ниже на примере Леново.