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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

    Чтобы установить драйвера:
  • подключите устройство к компьютеру;
  • зайдите в «Диспетчер устройств» (воспользуйтесь поиском или найдите раздел в «Панели управления»;
  • найдите пункт с названием вашего устройства (смартфон или планшет может не определиться системой, в этом случае появится строка с неизвестным устройством, рядом с которой – желтый треугольник);
  • правой кнопкой мыши вызовите контекстное меню для этого устройства;
  • из списка выберите «Обновить драйвер»;
  • нажмите на пункт «Поиск драйверов на этом компьютере»;
  • затем кликните «Выбрать драйвер из списка уже установленных»;
  • нажав на кнопку «Установить с диска», укажите путь к скачанным драйверам;
  • перезагрузите ПК и смартфон, чтобы изменения вступили в силу.
  • Нередко одного лишь драйвера смартфона недостаточно. Для ряда устройств приходится устанавливать дополнительные драйвера 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 и аналогичные).

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

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

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

  • ждем появления окошка с зеленым кружком;
  • только теперь отключаем устройство от компьютера и пробуем его включить.
  • Процесс первого запуска может длиться довольно долго (около 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

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

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

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

    Прошивка смартфон на Android с помощью компьютераДля начала предупредим Вас о том, что таким образом можно “убить” свой гаджет. Говоря языком понимающих людей, превратить его в “кирпич”. В таком случае без похода в сервисный центр отделаться не получится. За прошивку NoName гаджетов из Китая и вовсе браться не стоит, если сломаете, могут и в сервисном центре не восстановить.

    Как бы то ни было, мы живём в век технологий, век Интернета – всемирной паутины, где при желании можно научиться буквально всему: даже прошивке Андроид-телефонов. Собственно, чем Вы сейчас и занимаетесь. Что ж, приступим....

    Поиск и установка необходимого для прошивки ПОНе секрет, что для разных производителей устройств нужны разные драйвера. Благо, их также можно скачать в Интернете. Например, у Вас смартфон от компании Samsung – драйвера для последующей его прошивки можно найти на официальном сайте. Есть и альтернативный вариант без поиска драйверов – просто подсоединить телефон компьютеру, после чего операционная система самостоятельно их подберёт и скачает (касается владельцев Windows 7 и более новых версий оконных ОС).

    Следующая задача – скачать саму прошивку. Наиболее популярный русскоязычный ресурс с официальными и кастомными прошивками – 4pda.ru. Переходите на форум, ищите там своё устройство и прошивки для него. Выбираете наиболее интересную для Вас и скачиваете на свой компьютер.

    Затем необходимо присвоить программе права Суперпользователя, то есть, дать Root-доступ. Как именно его предоставить, смотрите в ранее написанной нами статье.

    Теперь возвращаемся на уже знакомый на сайт 4pda.ru, точнее – на его форум и скачиваем файл CWM-recovery для своего гаджета (важно, чтобы он был именно для Вашего устройства, иначе рискуете превратить его в “кирпич”).

    Записываем в память устройства zip-архив с прошивкой и Рекавери, скачанные ранее, а лучше – на SD-карту.

    Вновь возвращаемся к установленной программе Mobileuncle MTK Tools, запускаем её и она в автоматическом режиме отыщет на смартфоне CWM-recovery, Вам нужно будет лишь подтвердить процесс обновления нажатием кнопки «OK».

    Подготовка к прошивкеБез резервной копии – никуда! Она пригодится нам в случае неудачной прошивки для восстановления работоспособности устройства. Поехали:


    Итак, бэкап создан. Для его восстановления следует зайти в установленное приложение CWM-рекавери, тапнуть по пункту «Резервные копии» и выбрать там недавно созданную.

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

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

    Установка прошивки на Android-смартфонИтак, новый Recovery установлен, теперь нужно в него зайти. Для начала полностью зарядите устройство. Выключите его и, пользуясь комбинацией из кнопки Power и Volume Up, заходите в Рекавери. В зависимости от производителя устройства комбинация может отличаться.

    Здесь же выбираем «Wipe cache partition» и подтверждаем свои действия;
    А теперь переходим к самому интересному – к установке операционной системы. Нажимаем на «Install from sdcard», далее на «Choose zip from internal sdcard» и находим файл с прошивкой, закачанный ранее;

    Подтверждаем своё согласие;

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

    Что делать, если телефон не запускается после прошивкиЕсли процесс запуска смартфона так и не продвинулся дальше логотипа, есть смысл заново его перезагрузить. Не помогло и это? Тогда перепрошивайтесь вновь. В ином случае нам нужно откатиться на стандартную прошивку и восстановить Бэкап. Как восстанавливать резервную копию Вы уже знаете, но как откатиться на ранее установленную версию прошивки? Ответ один – никак, её придётся устанавливать через компьютер.

    Рассмотрим процесс на примере устройств от Samsung:

    Если способ не сработал, а бывает и такое – Вам вымощена дорога в сервисный центр. Предупреждаем: название программ и драйвера для всех программ разные, но в целом процесс установки похож, поэтому разобраться будет несложно. Надеемся, что у Вас всё получилось!

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

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

    Каково же было мое разочарование, когда я приобрел телефон из поднебесной, где заводскими настройками было запрещено использование 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 (в zip формате)


    ---
    что да как:

    Открывая архив с прошивкой вы видите следующее:
    META-INF - в папке хранятся скрипты установки прошивки
    system - папка со всеми файлами прошивки (приложения, твики, скрипты и т.д.)
    boot.img - ядро системы

    Практически все манипуляции проводятся в папке system
    её структура:
    app - системные приложения
    bin - ресурсы самой системы
    etc - Скрипты, твики, конфиги, профили и настройки системы
    fonts - Системные шрифты
    framework - здесь хранятся главные файлы системы (графика, настройки текста анимации и т.д)
    lib - библиотеки системы
    media - файлы мультимедиа (мелодии уведомлений, анимация загрузки, обои и т.д)
    usr - настройки не изменяемые в дальнейшем системой (работают в режиме "только чтение")
    xbin - опять же системные конфиги и прочие твики
    build.prop - инфа о системе, настройки локали и производительности системы.


    ---
    Приложения

    Перед тем как добавлять/удалять софт в систему, необходимо проверить деодексирована ли ваша прошивка (то есть проверить наличие файлов.odex в папке app. Если оные в наличии, то необходимо от них избавиться по .
    -Добавляем софт в прошивку:
    Прежде всего необходимо установить себе в смарт те программы которые вы хотите добавить в сборку.
    После установки достаём их из системы при помощи Root Exporer и его аналогов, находятся они по пути data/app , так же нам понадобятся их либы (если они конечно есть) они находятся по пути data/data. Находятся они в одноимённой приложению папке и имеют расширение .so .
    Затем изъятые.apk файлы кладем в архив по пути system/app и файлы с расширением.so (lib"ы) по пути system/lib .
    -Удаляем софт из прошивки:
    Тут всё просто, заходим в папку app - определяемся что нам не нужно и удаляем весь ненужный софт (систему лучше не трогать)


    ---
    Язык и версия прошивки

    Копируем файл build.prop на рабочий стол. Открываем его блокнотом и находим строчки

    ro.product.locale.language=en
    ro.product.locale.region=US


    для русского языка необходимо сделать так:

    ro.product.locale.language=ru
    ro.product.locale.region=RU


    название своего мода вписываем в строку

    в том же build.prop

    ---
    графика

    Вся графическая часть прошивки хранится в двух файлах
    framework-res.apk путь к файлу systemframework и SystemUI.apk по пути systemapp. А графическая часть приложения настройки хранится естественно в приложении Settings.apk.
    Принципы распаковки, редактирования и сборки файлов с расширением.apk можно изучить .


    ---
    Скрипты и твики (ускорение и оптимизация системы)

    Большая часть настроек проводится в файле build.prop , по этому поводу есть .
    Так же если ваше ядро поддерживает init.d (об этом можно узнать на форуме о вашем девайсе) есть ряд скриптов для оптимизации системы, один из них описан и в данной статье


    ---
    Замена шрифтов системы

    Как выше излагалось все шрифты содержаться в папке fonts , основные шрифты это: DroidSans.ttf и DroidSans-Bold.ttf их можно заменить любыми шрифтами из нашего сайта переименовав их аналогично вышеуказанным и переместить с заменой в архив с прошивкой в папку fonts .