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

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

Сколько стоит прошить телефон андроид?

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

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

Во многих регионов прошить «телефон кирпич» можно от 500 до 900 рублей. Средняя цена в Москве – 600 рублей. При этом процедура длится не более 30 минут. У специалиста под рукой есть все необходимые инструменты, и это очень важно, поскольку если вы решите самостоятельно проделать прошивку, у вас таких инструментов может не оказаться.

Подготовка к прошивке телефонного устройства

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

  1. Убедитесь, что ваше устройство заряжено на все 100%. Это очень важно, поскольку отключение гаджета во время процедуры может привести к потере данных.
  2. В настройках, а именно в раздел «О телефоне» нужно посмотреть версию устройства, версию ядра и номер сборки.
  3. И, наконец, на основе этих данных требуется скачать новую прошивку. Она должна полностью соответствовать вашему телефонному устройству.

Как прошить телефон без компьютера?

Если нужно восстановить работоспособность java устройства, то лучше всего применять откат прошивки к заводским показателям. Если же пользователь собирается сменить прошивку, то нужно учитывать, что процедура существенно отличается. Между этими двумя вариантами есть главные различия – использование программы во втором случае, для установки неофициальной прошивки.

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

Как прошить китайский телефон через ПК?

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

Как уже стало известно, рынок мобильных телефонов довольно-таки многообразен: Nokia, Zte, Samsung, Sony Ericsson, lenovo a5000, lenovo a319, Fly и т.д. Для обновления прошивки телефонов необходимо скачать программу, кстати говоря, для каждого производителя она своя. Так, Nokia можно прошить с помощью программ Phoenix либо JAF. Для каждой модели Samsung существует отдельная программа, но универсальной является Toolbox. Прошить аппараты производителя Sony Ericsson возможно при помощи:

  • Far Manager,
  • XS++,
  • SETool2Lite.

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

Важно: все программы, драйвера можно скачать с официального сайта разработчика, и нигде более!

Через флешку и через sd карту можно перекинуть на ПК нужную прошивку.

Как прошить выключенный телефон?

Что делать, если телефон не включается , как быть? Если вы столкнулись с этой проблемой и ваш телефон, так сказать, «мертвый », то обратитесь к специалисту или проделайте такую процедуру дома с особой внимательностью.

Подготовьтесь к процедуре: скачайте программу «Phoenix » и прошивку, а также отыщите на аккумуляторе устройства код издателя.

Теперь перейдите к самой процедуре…

  1. В режиме администратора установите и запустите программу «Phoenix». Напротив «Connections» проверьте наличие записи «NO CONNECTION». Нажмите на кнопку меню «File» и выберите «Open Product».
  2. Теперь понадобиться код, который вы смотрели на аккумуляторе. В списке выберите его. Кликните по меню «Flashing», выберите пункт «Firmware Update». В новом окне нажмите на кнопку с изображением 3-х точек и укажите нужный языковой пакет.
  3. В окне Firmware Update отметьте «Dead Phone USB flashing», нажмите «Update Software» и дождитесь завершения прошивки. Готово!

Важно! Эта инструкция не гарантирует восстановление жизни мобильного устройства.

Как прошить андроид через sd карту?

Скачайте требуемую прошивку и сохраните ее в корневом каталоге карты памяти. После чего зайдите в меню ClockworkMod Recovery. Для этого на выключенном устройстве зажмите кнопки громкости и включения. Далее найдите «Wipe data/factory reset». Все действия в данном меню реализовываются посредством кнопок громкости и кнопки «назад».

Теперь отыщите скачанный раздел, который пишет меню как «Install zip from sdcard». В нем выбирайте «Choose zip from sdcard». Далее просто укажите необходимую прошивку, просто выбрав ее из списка.

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

Через флеш тулс можно прошить телефонное устройство. Для этого проверьте все драйвера, при необходимости установите их. Запустите FlashTool . В открывшемся окне выберите «scatter-loading file», затем откройте папку со скачанной прошивкой и выберите её.

Отметьте галкой поле «DA DL All with check sum». Нажмите «firmware-upgrade». Подключите телефонное устройство. Теперь, когда вы установили новую прошивку, можете включить телефон и проверить полученный результат.

Такой способ подойдет практически для всех телефонов, в том числе и для смарт старт .

Таким образом, вы теперь знаете, как прошить телефон андроид через компьютер. Я надеюсь, вам все стало понятно, и вы не будете больше задаваться вопросом «Можно ли самостоятельно прошить телефон?». Для многих телефонов принцип один и тот же, остается лишь делать всё внимательно. Если у вас есть ко мне вопросы обязательно задавайте их в комментариях, будем разбираться вместе. Всем пока!

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

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

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

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

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

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

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

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

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

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

Далее нужно установить кухню на свой компьютер. Лучше всего работать под Linux, но необходимые библиотеки можно поставить и в Windows. В этом случае можно выйти из ситуации установив Cygwin. и следуйте пошаговой инструкции, помещённой в архиве. Перед этим потребуется установить также Java Platform (JDK) с официального сайта (https://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 самостоятельно? Что вы в ней меняли и каким образом это делали? Будет интересно, если вы поделитесь своими отзывами.

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

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

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


Существует два способа : с помощью компьютера и без. Если вы склоняетесь к последнему варианту, обязательным условием такой переустановки является наличие карты памяти, ведь сам установочный файл «операционки» будет находиться непосредственно на ней. Итак, кратко рассмотрим процесс.

Перепрошивка с помощью компьютера

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

Как сделать прошивку на Андроид самому

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

Тут можно найти не только прошивку, но и «программу-перепрошивальщик», которая нам также понадобится. Например, для «самсунгов» это программа «Odin», для «сони эриксон» – «PC Companion», а вы должны найти версию такой утилиты под свое устройство. После загрузки прошивки, ее нужно «перекинуть» в такую программу и начинать работу.

Итак, вам нужно:

  • Ваш гаджет;
  • USB-шнур;
  • Программа для перепрошивки;
  • Прошивка.

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

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

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

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

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

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

  • 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

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