Содержание
- 1 Прошивка Андроид
- 2 Установка кастомной прошивки CyanogenMod (MIUI/OMNI/AOKP) на Android
- 3 Модификация стоковых прошивок для Android. Часть 1
- 4 Как прошить Android планшет, смартфон
- 4.1 Прошивка Андроид через Рекавери
- 4.2 Устанавливаем ZIP файл в CWM
- 4.3 Как установить прошивку через TWRP Recovery
- 4.4 Используем ROM Manager
- 4.5 Как прошить Android через компьютер
- 4.6 Fastboot: инструкция по прошивке телефона
- 4.7 Установка ZIP обновлений в Fastboot
- 4.8 SP Flash Tool: прошиваем китайские Android смартфоны на MTK
- 4.9 Прошивальщики для Samsung и LG
Прошивка Андроид
Если Ваш мобильный девайс (смартфон или планшет) перестал нормально работать, ему может помочь перепрошивка. Как перепрошить Андроид Вы узнаете из статьи ниже.
Современные смартфоны и планшеты на базе Android сегодня стали весьма распространёнными устройствами, которые есть практически у каждого. В немалой степени этому поспособствовал наплыв подобной техники китайского производства. Она недорогая, презентабельная внешне и может быть весьма «шустрой» внутри. Однако, такие девайсы очень часто работают нестабильно, а в один момент могут и вовсе отказаться работать…
Помочь «поставить на ноги» Ваше устройство с шансом 50 на 50 может его перепрошивка. И именно данному процессу будет посвящена сегодняшняя статья. Кстати, почти все упоминаемые в статье инструменты для прошивки большинства китайских аппаратов Вы сможете скачать под статьёй!
Принцип прошивки
Грубо процесс прошивки любого телефона можно сравнить с процессом установки Windows на компьютер. Однако, если Винду можно поставить практически на любой ПК, то установка Android таит в себе множество подводных камней. Дело в том, что прошивка содержит в себе не только саму систему, но и полный комплект драйверов и программ, подходящих сугубо к конкретной модели устройства.
Учитывая, что китайцы собирают свои смартфоны из всего, что можно недорого купить у различных производителей, нетрудно констатировать факт того, что одна и та же внешне копия, к примеру, Samsung S7 может базироваться на совершенно различных платформах! Собственно, основная проблема при прошивке как раз и состоит в поиске той, которая идеально подойдёт к Вашему устройству по всем параметрам.
Искать прошивки можно в Интернете по названию модели Вашего девайса. Однако, если он не фирменный, а китайская копия, то тут может прийтись туго… Потребуется произвести предварительные тесты, чтобы хотя бы примерно выяснить, какую же «начинку» впихнул в телефон дядя Ляо. Прежде всего нас интересует платформа сборки и её номер ALPS.
Чтобы узнать данную информацию надёжнее всего вскрыть устройство и «пробить» в Интернете номера, указанные на материнской плате. Однако, разобрать без ущерба можно далеко не каждый девайс. Поэтому существует ряд программных средств диагностики. Они могут устанавливаться как на сам смартфон (например, AIDA64 или CPU-Z), так и на компьютер. В последнем случае Вам также потребуется установить специальный драйвер (он также понадобится при прошивке).
После установки драйвера Вы сможете воспользоваться одним из наиболее часто используемых для «китайцев» на базе платформы MT65xx инструментом – программой MTK Droid Root and Tools:
При подключении Вашего устройства USB-кабелем к компьютеру программа просканирует его и выдаст определённую порцию информации, от которой можно отталкиваться при поиске нужной прошивки. Самыми важными данными являются версия платформы (Firmware) и номер сборки системы (Build number). Зная их Вы уже более точно сможете определить, какую прошивку качать (а их, порой, очень много!)
Итак, предположим, Вы нашли нужную прошивку на свою модель устройства. Качаем её и обязательно читаем инструкцию по её установке. Устанавливаться она может при помощи:
- штатного рекавери (самый простой способ);
- модифицированного рекавери (чаще всего CWM или TWRP);
- программы-прошивальщика или флешера (например, Odin, SP Flash Tool и т.п.).
В любом случае перед прошивкой Вам очень желательно (если, конечно, аппарат запускается) сделать полный бэкап всех данных на устройстве и его прошивки. Если этого не сделать, Вы рискуете получить вместо своего любимого девайса так называемый «кирпич», который будет уходить в «вечный ребут». Но об этом ниже, а сейчас рассмотрим варианты прошивки Андроида.
Прошивка через штатное рекавери
Если Вам сильно повезёт, то официальная прошивка для Вашего устройства может устанавливаться с карты памяти через штатное рекавери. Например, мне с моим подопытным Cubot GT99 (см. скриншот выше) подфартило! Всё, что нужно для его прошивки – скинуть архив с требуемыми файлами в корень флешки (только, желательно, чтобы других архивов там не было):
Когда прошивка уже лежит на SD-карте, нужно выключить устройство и загрузить его в режиме рекавери. Для этого, как правило, нужно зажать «качельку» громкости вверх (реже вниз) и кнопку включения. Когда появится меню выбора способа загрузки, нужно всё той же «качелькой» вниз выбрать режим «Recovery Mode» и нажать качельку вверх (реже кнопку включения) для перехода в рекавери:
В появившемся меню нужно «качелькой» громкости выбрать пункт «apply update from external storage» или «Install ZIP from SD Card» и применить его нажатием кнопки выключения. Запустится процесс прошивки и нам останется только дождаться его окончания:
Прошивка через модифицированное рекавери
Штатное рекавери – вещь полезная, однако, с его помощью устанавливаются далеко не все прошивки. С ним ставить можно только официальные подписанные всеми сертификатами сборки системы. Если же Вам хочется поэкспериментировать с кастомными прошивками, то Вам потребуется поставить себе кастомное же рекавери.
Наиболее популярными и распространёнными версиями на сегодняшний день являются уже упомянутые выше CWM и TWRP. Готовые сборки таких рекавери существуют для большинства популярных моделей устройств. Однако, для китайских смартфонов придётся их поискать. Правда, в некоторых из них кастомное рекавери уже стоит по умолчанию, что значительно упрощает проведение различных экспериментов.
Принцип прошивки устройства через кастомное рекавери аналогичен вышеописанному. Разница лишь в том, что с его помощью можно установить практически любой подходящий ZIP-архив, даже если файлы в нём не имеют никаких подписей. Более того, если прошивка не подходит, рекавери автоматически сделает откат до созданного Вами бэкапа (Вы, ведь, не забыли его сделать? ;))
Вход в кастомное рекавери обычно осуществляется той же комбинацией, что и в стоковое («качелька» громкости + кнопка включения). Для установки прошивки с SD карты в CWM Вам потребуется пройти по пути install zip from sdcard – chooze zip from sdcard. При этом обычно желательно отключить проверку подписей в разделе toggle signature veritification:
В TWRP для достижения того же результата нужно зайти в раздел Install и следовать подсказкам. Кстати, в этом рекавери управление производится не физическими кнопками, а посредством тачскрина (хотя существует и подобная сборка CWM touch).
Кастомное рекавери очень полезная штука. Кроме прошивки, с его помощью можно получить рут на Ваше устройство, подключиться в режиме отладки по ADB, управлять разделами памяти телефона и т.п. Беда только в том, что такая полезная штука портирована лишь для немногих устройств…
Прошивка при помощи ПК
Так или иначе, даже, если для Вашего устройства нет сборки кастомного рекавери, прошить его можно при помощи ПК. Для этого Вам потребуется как минимум:
- Драйвер для распознавания компьютером Вашего девайса.
- Прошивка, подходящая по всем параметрам.
- Бэкап текущей прошивки на SD-карте на случай, если новая прошивка не заработает.
- Рабочий USB-кабель для подключения устройства к компьютеру.
- Программа для прошивки Вашей модели телефона или планшета (она же флешер).
Из вышеприведённого списка нас больше всего интересует последний пункт. Для популярных фирменных устройств существуют и фирменные утилиты-флешеры. Например, для Samsung'ов – Odin, для LG – LG GSM Multi или PC Suite, HTC – HTC Sync и т.п.
Рассмотрим принцип прошивки на примере Odin для Самсунгов. Для начала Вам нужно подключить аппарат в режиме загрузки к компьютеру. Войти в этот режим можно, зажав на выключенном устройстве одновременно «качельку» звука вверх, кнопку «Домой» и включения. После подключения телефона в данном режиме, Odin должен распознать его как подключение на одном из COM-портов.
Теперь в поле «AP» Вам нужно выбрать архив с прошивкой (обычно в форматах .tar или .tar.md5). Проверьте активность опций «Auto reboot» и «F. Reset Time», после чего можете нажимать кнопку «Start». Если всё нормально, начнётся загрузка прошивки на телефон и её установка:
Для китайских устройств, большинство из которых работает на базе платформы MediaTek, существует собственная универсальная программа для прошивки SP Flash Tool (или просто Flash Tool).
Принцип прошивки здесь следующий. Открываем программу на вкладке «Download» (обычно открывается по умолчанию) и нажимаем кнопку «Choose» напротив поля «Scatter-loading File». Откроется диалог выбора прошивки. Она должна быть предварительно извлечена из архива в папку (желательно в корне диска, как и сам флешер) и содержать текстовый scatter-файл с картой разметки системных разделов.
Когда файл будет выбран, откроется таблица доступных разделов. Обычно требуется убрать галочки с «Preloader», «Cache» и «Userdata», но более точную информацию читайте в инструкции именно к Вашей модели устройства. Последний шаг – нажатие кнопки «Download». Теперь осталось только подключить к компьютеру ПОЛНОСТЬЮ ВЫКЛЮЧЕННЫЙ телефон и дождаться завершения копирования файлов:
«Кирпич» и что с ним делать
Как видим, сама прошивка не является очень уж сложным процессом (если учитывать, что на Вашем устройстве не заблокирован загрузчик). Но, почему тогда её многие так боятся? А тут дело в том, что успех прошивки никогда не гарантирован и Вы каждый раз рискуете получить так называемый «кирпич» – аппарат, который не загружается вовсе или постоянно перезагружается, не доходя до включения самой системы.
Вариантов «окирпичивания» может быть, по большому счёту, два: полный «кирпич» и с сохранившимся recovery. Если сохранился доступ к рекавери и Вы предварительно делали бэкап системы на флешке, то «раскирпичить» устройство можно весьма быстро, воспользовавшись способом прошивки или восстановления образа (если есть такая опция) через рекавери.
Если же при неудачной прошивке был нарушен раздел с рекавери, то вернуть аппарат к жизни можно только, установив на него корректную версию прошивки. Тут уже Вам, как говорится, нечего терять и можно пробовать различные прошивки, пока не подберёте нужную! Обычно такие танцы с бубном требуются при работе с китайскими телефонами, в которых сами разработчики программно скрывают версию платформы или комплектацию «железа».
В самых запущенных случаях может получится так, что ни одна из доступных в Интернете прошивок Вам не подойдёт… Если Вы столкнулись с такой ситуацией, не спешите отчаиваться! Во-первых, со временем (пара месяцев или полгода) образ нужной именно Вам версии прошивки может появится. Во-вторых, Вы всегда можете попросить помощи у опытных пользователей на крупнейшем русскоязычном форуме 4PDA или англоязычном XDA. Владельцы же «китайфонов» могут попытать счастья на ресурсе China-iPhone.Ru.
Выводы
Общие принципы прошивки Android, как Вы могли убедиться, не особо сложные. Однако, это, увы, лишь в теории… На практике Вы можете столкнуться с различными нестандартными ситуациями, которые, чаще всего, случаются при попытке прошить очередной китайский аппарат от неизвестного производителя. Здесь всё может превратиться в весьма запутанный квест с неизвестным исходом (именно поэтому ещё в самом начале я написал, что вероятность успеха – 50/50).
В любом случае, начиная заниматься прошивкой Андроида, первым делом обязательно СДЕЛАЙТЕ БЭКАПЫ! Вторым же делом – не поленитесь прочесть инструкции, которые пишут на форумах другие более опытные пользователи (если эти инструкции есть). Ведь порой даже не там поставленная галочка может превратить Ваше устройство в «кирпич» буквально в одно касание!
И ещё одно. Всегда начинайте работу на свежую голову и с запасом времени хотя бы в пару часов. Это даст Вам возможность спокойно обдумать свои действия, если вдруг что-то пойдёт не так. А вообще, пускай прошивка Андроида для Вас всегда будет успешной!
P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.
Источник: https://www.bestfree.ru/article/device/firmware-android.php
Установка кастомной прошивки CyanogenMod (MIUI/OMNI/AOKP) на Android
Каждый пользователь Android слышал о так называемых кастомных прошивках, но вот как их установить конкретно на вашу модель смартфона или планшета информации очень мало, либо разбросана по просторам Интернет.
[stextbox id=»warning»]Данная статья относится только к установке кастомных прошивок с помощью ZIP ОБНОВЛЕНИЙ, а не каким либо другим способом.[/stextbox]Коротко о главном…
Операционная система Android, она и Африке ей же и останется, будь у вас Samsung, LG, HTC, Sony, Motorola или другой производитель… Есть определенный свод правил, последовательность действий, которые немного дополняются в зависимости от производителя, но сам процесс установки кастомной прошивки схож со всеми устройствами. Вот эти простые шаги:
- Скачиваем прошивку
- Скачиваем сервисы Google (необязательно)
- Делаем Бекап (необязательно)
- Разблокируем Bootloader (один раз, в зависимости от бренда)
- Устанавливаем Recovery (один раз)
- Ставим прошивку и Сервисы Google
- Сброс данных
- Ожидание первой загрузкой
Итого всего 8 шагов (2 необязательных, 2 выполняются один раз). Из них в дальнейшем вы будете повторять только 3 — 5 если вдруг, захотите сменить прошивку.
Готовые решение!
Сайт Android +1 подготовил отдельные инструкции по установке кастомных прошивок на следующие бренды и производители:
Где найти кастомную прошивку на ваш Android?
Есть различные кастомные прошивки от различных производителей, какая для вас будет лучшей знаете только вы сами, поэтому пробуйте и экспериментируйте!
Также в сети интернет (рекомендуемые ресурсы XDA, 4PDA) можно найти множество других кастомных прошивок выполненных на базе ранее перечисленных крупных проектов. Нашли прошивку? Отлично! Скачиваем ее и переходим дальше!
Скачиваем GAPPS
Не спешите перепрыгивать данный заголовок! Наверно вы привыкли пользоваться сервисами Google — Магазин приложений Google Play, , Gmail, Карты итп. В оригинальных кастомных прошивках их нет! Поэтому вам понадобится ZIP обновление с GAPPS. Скачивать версию GAPPS необходимо от версии Android на которой основана кастомная прошивка (если прошивка с Android 4.4 , то GAPPS должны быть для Android 4.4).
Делаем Резервное копирование
Данный пункт не является обязательным, но что если вы захотите вернутся обратно или что-то пойдет не так? Поэтому выполните резервное копирование.
Вы счастливый обладатель Sony, HTC, Huawei, Nexus, тогда вам предстоит дополнительная процедура на пути установки кастомной прошивки — разблокировка Bootloader.
Данная процедура выполняется один раз и в дальнейшем ее можно пропускать.
Находим и скачиваем кастомное Recovery (или Ядро с Recovery)
Вы семимильными шагами двигаетесь к установки своей первой кастомной прошивки! Продолжаем… Вам также необходимо скачать кастомоное Recovery, для чего спросите вы?
Есть несколько причин:
- В некоторых устройствах его банально нет (Recovery), а вам необходимо установить из под него кастомную прошивку и GAPPS
- Установить из под оригинального Recovery (если оно есть) кастомную прошивку не удастся в связи с тем, что там нет подписи производителя, а кастомное Recovery отключает подпись и разрешает установку различных ZIP обновлений в том числе и кастомной прошивки.
В некоторых случаях Recovery встроено в ядро Android (Sony, иногда Samsung) поэтому вам необходимо искать ядро с CWM или TWRP Recovery вместо того чтобы искать просто Recovery.
На сайте Android +1 подробно описано где его найти и как установить — Скачать и Установить Recovery. Также Recovery можно поискать в Google и ресурсах XDA и 4PDA.
Если в дальнейшем Recovery вы удалять не будете, то более его устанавливать не нужно.
Установка Кастомной Прошивки
Итак вы сделали следующие обязательные действия:
- Скачали Кастомную прошивку
- Скачали GAPPS
- Разблокировали Bootloader
- Скачали и установили Recovery
Теперь переместите архивы ZIP — Кастомной прошивки и GAPPS на карту памяти (если есть слот) или внутреннюю память Android смартфона или планшета. Перейдите в меню Recovery. После чего установите вначале ZIP архив Кастомной прошивки, а после GAPPS.
- Установка ZIP из СWM Recovery
- Установка ZIP из TWRP Recovery
Сброс Данных
После того как вы установили Кастомную прошивку необходимо выполнить сброс данных, он необходим затем, что данные которые были созданы предыдущей прошивкой (официальной) несовместимы с только что установленной. Поэтому очень важно сделать сброс данных или wipe. Если сброс не выполнить то вы получите вечную загрузку Android (bootloop).
Первая загрузка Android
После установки Кастомной прошивки и сброса данных перезагрузите Android, как правило первая загрузка очень долгая и длится она от 3 минут до 15 минут. Связано это с первой настройкой «железа» и до установки системы. Самое главное не нервничать и не перезагружать устройство в этот промежуток времени.
На этом процесс установки Кастомной прошивки закончен! Возможно кому либо покажется что уйдет уйма времени на все про все, но на самом деле если полностью понимаете все что делаете, то процесс длится не более 15 минут (если не учитывать, скачивание необходимого и ожидание первой загрузки).
Статья подошла к концу! Подписывайтесь в соц. группы сайта Android +1!
Источник: https://androidp1.ru/ustanovka-kastomnoy-proshivki-cyanogenmod-miui-omni-aokp-na-android/
Модификация стоковых прошивок для Android. Часть 1
Здравствуй Хабр! Несколько лет назад, когда я впервые познакомился с Android, я услышал от своего коллеги по работе, что Android предусматривает возможность установки модифицированных или самодельных прошивок. Признаться, тогда я был далек от этого. И даже пол года назад меня едва интересовали подобные вещи. Глубоко в душе, я был уверен: то, что делает производитель, уже предназначено для нормального использования.
Каково же было мое разочарование, когда я приобрел телефон из поднебесной, где заводскими настройками было запрещено использование Google, Skype, и других приложений. В принципе, на некоторые вещи можно было закрыть глаза, но когда мой телефон не подразумевал использование учетной записи Google — я взял с себя обещания обязательно разобраться во что бы мне это не стало. Прошло пол года и мои кастомные прошивки с успехом используются по всему миру.
В данной серии статей пойдет речь о том, как делать reverse программирование для Android, реализовывать патчи, твики и моды.
Преамбула
И так! Давайте сперва определимся с понятиями, которые будут использоваться в данной статье. Ваше привычное понимание, при этом, может сильно отличаться.
Патч — изменение или замена существующего программного кода с целью модификации алгоритма программы.
Мод — как правило, добавление дополнительного функционала в существующий программный код без изменения алгоритма.
Твик — усовершенствование функционала программы с целью облегчения доступа к параметрам системы. Также хочу заметить, что все примеры будет взяты для телефона HTC, но это не значит, что данная информация не может быть использована на других телефонах. Обращаю ваше внимание, что я, как автор, не несу ответственности за возможную потерю данных на вашем телефоне в результате использования информации ниже.
Подготовка среды
Обойдусь без подробных инструкций как пользоваться тем или иным программным обеспечением. Если вам интересна данная статья и вы дочитали до этих строк, то я надеюсь, что вы уже опытный пользователь и имеете опыт использования, ну или хотя бы экспериментирования в данной области. Инструкций, статей и результатов тестирования полно в открытом доступе, впрочем, как и на Хабре.
Также обойдусь без описания некоторых терминов, иначе статья получится очень большой и нудной. Будем писать только по делу. Уверен, что среда у вас уже давно стоит. Если нет, то предлагаю скачать и установить.
1. Android SDK. Это среда разработки приложений для Андроид. Для того чтобы делать модификации, нам обязательно придется проверять наш программный код.
Среда разработки самое лучшее, что мы можем использовать.
2. Android Kitchen. Данная утилита позволит вам работать с образами системных партиций официальной ну или неофициальной прошивки.
3. JD-GUI. Декомпилятор программного кода языка Java. Сразу отмечу, что это самый лучший декомпилятор в плане удобства использования.
4. DJ Java Decompiler. Еще один декомпилятор, или дизассемблер, как некоторые любят называть, программного кода языка Java. Не удобен в плане использования, но разбирает код, который иногда не понимает JD-GUI.
5. smali. Еще один дизассемблер, но уже dalvik кода. smali нужен для дизассемблирования, а backsmali ассемблирования кода.
6. dex2jar. Утилита для конвертации исполняемых файлов Dalvik кода.
Преобразование прошивки
Разумеется, прошивка, которая стоит у вас на телефон от производителя оптимизирована с целью сокращения энергопотребления. Для того чтобы прошивку можно было изменять, ее необходимо преобразовать в формат, позволяющий изменять код. Для этого используется Android Kitchen. Можно конечно и руками, как я и делал раньше, пока не нашел эту самую «кухню».
Как вытаскивать системную область из телефона, устанавливать среду, делать DEODEX прошивки, вы можете прочитать в интернете. Если вам уже ничего не понятно, я думаю стоит повременить со статьей, пока вы не наберете достаточно опыта.
После того, как прошивка из оптимизированного вида (ODEX — оптимизированный dalvik исполняемый код, если мне не изменяет память) стала DEODEX (то бишь НЕ оптимизированной), все исполняемые файлы готовы к модификации.
Создание патчей
Как я уже и рассказывал, мой телефон изначально имел запрет на использование Google. Ну хоть ты тресни, на Playstore не зайти, учетную запись не настроить, телефонная книга толком не синхронизируется. Зачем нужен такой Android? Долго копаясь в логах (logcat) самого устройства, я нашел записи, которые говорили о том, что использование Google запрещено.
Самое не удобное в Android, вы видите лог, но не знаете какое системное приложение его производит. Чтобы отыскать от куда ноги растут, мне пришлось распотрошить все системные приложения до дизассемблированного Java кода. Это заняло достаточно времени, но я до сих пор пользуюсь проделанной работой при анализе и поиске нужного кода.
Этапы получения подобного инструментария следующие:
1. Сделать DEODEX всей прошивки
2. Вашу новую DEODEX прошивку надо будет собрать и прошить на телефон. Как это делается — тема другой статьи.
3. Из каждого файла, находящегося в /system/framework вытащить файл classes.dex и переконвертировать в JAR посредством dex2jar.
4. Каждый полученный JAR открыть в JD-GUI и пере-сохранить в исходный код
5. Распаковать исходный код из архива. В итоге у меня получилось столько папок, сколько было JAR файлов в /system/framework, и каждая папка имела структуру исходных кодов Java. Путем несложных манипуляций, я быстро отыскал то место, которое генерировало записи в logcat. Не будем рассматривать всю логику запрета, так как для каждого случая это отдельная история. Мне пришлось потратить пару часов, прежде чем я нашел где производятся проверки, построить в голове блок схему алгоритма и понять куда надо лезть, чтобы алгоритм чуть чуть «попортить». Оказалось все просто. Есть подпрограмма, которая на основе заранее установленных констант, при обращении отвечала, относится ли телефон к Китаю или же нет.
Код находился в файле HTCExtension.jar, а класс, который содержал данную подпрограмму находился в \com\htc\util\contacts\BuildUtils$Customization.java
Распаковка и анализ оригинального файла
1. Сперва нам надо взять оригинальный DEODEX JAR файл, который отвечает за нужную нам часть кода. В нашем случае HTCExtension.jar.
2. Открыть любым архиватором и вытащить от туда classes.dex
3. С помощью конвертера dex2jar преобразовать его в JAR файл. Команда: dex2jar.bat classes.dex
4. Открыть полученный classes_dex2jar.jar файл в JD-GUI.
5. Да, чаще всего JD-GUI декомпилирует код не так как он выглядит в оригинале, оно и понятно, но читать вполне можно. В исходнике мы видим, что подпрограмма проверяет параметры проекта и языковой флаг прошивки. В нашем прискорбном случае возвращается значение TRUE.
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.jaradb shellsumount -o remount -rw /systemdd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.backdd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jarchmod 644 /system/framework/HTCExtension.jarrm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dexreboot 1-ая команда закидывает патченный файл на флешку 2-ая команда открывает shell 3-ая команда дает root доступ 4-ая команда монтирует систему в режим чтения/записи 5-ая команда делает резервную копию файла 6-ая команда перезаписывает существующий файл новым патченным. 7-ая команда настраивает разрешения 8-ая команда удаляет кэш 9-ая команда делает перезагрузку устройства.
2. Спасибо что дочитали до этого пункта, осталось немного.
3. После перезагрузки ваш новый патченный код вступит в силу.
4. Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.
adb shellsumount -o remount -rw /systemdd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jarrm /data/dalvik-cache/system@framework@HTCExtension.jar@classes.dexreboot
Эпилог
Да, кому-то показалось данная статья слишком специфичной, кому-то мало-понятной, а кому-то бесполезной. Я специально обошелся без углубленной детализации и иллюстраций как это все выглядит в живую и на практике. Во-первых, данный труд будет неблагодарный и только породить еще больше вопросов.
Во-вторых, не хочу видеть армию пользователей на форумах, которые жалуются, что убили свой телефон. К следующей статье я расскажу как делать Твики. Будет пример использования автоматической записи телефонных звонков родными средствами телефона. Спасибо за ваше внимание.
P.S.
Если что-то не понятно или смущает, задавайте вопросы — всегда буду рад ответить и пояснить.
- Android
- SDK
- Разработка под Android
- программирование на android
Источник: https://habr.com/post/181826/
Как прошить Android планшет, смартфон
Для каждого смартфона или планшета существуют как официальные, так и кастомные прошивки. Их установка осуществляется разными способами: OTA обновления приходят по воздуху, прошивки в ZIP архивах устанавливаются вручную через CWM, TWRP Recovery или приложение ROM Manager, используя компьютер, можно прошить Android при помощи утилит Fastboot и SP Flash Tool.
После прошивки Андроид все данные с внутренней памяти сотрутся, поэтому чтобы сохранить контакты, настройки и приложения, сначала сделайте бэкап.
Об установке OTA-обновлений («по воздуху») и том, что делать если они долго не приходят, подробно рассказано в инструкции: как обновить Android.
Прошивка Андроид через Рекавери
Неофициальные прошивки в формате ZIP, такие как CyanogenMod, можно установить через кастомное Рекавери: CWM либо TWRP, а также приложения, использующие Recovery, например, ROM Manager. Аналогично шьются ядра и патчи. Для загрузки официальных «Update.zip» хватает возможностей стандартного режима восстановления, подробнее в статье по ссылке выше.
Устанавливаем ZIP файл в CWM
На всех устройствах «из коробки» стоит стоковое Рекавери от производителя, вместо него нужно установить CWM по инструкции. Затем найдите и скачайте ZIP архив с прошивкой. Учтите, что прошивки других форматов через CWM не устанавливаются.
1. Теперь переходим в Рекавери. Для этого выключаем аппарат и нажимаем определенное сочетание кнопок. В зависимости от производителя комбинация клавиш отличается, ниже представлены все возможные варианты (в новой подробной статье написано как зайти в Recovery на конкретных моделях):
- Громкость вверх + кнопка включения
- Громкость вниз + кнопка включения
- Громкость вверх/вниз + кнопка включения + «Домой»
- Громкость вверх + громкость вниз + кнопка включения
Отлично, вы попали в Recovery. Движение осуществляется при помощи кнопок громкости, а подтверждение выбора кнопкой включения.
2. Перед установкой прошивки необходимо сначала сделать сброс настроек: выберите пункт «wipe data/factory reset».
3. Далее просто подтвердите, что согласны сделать сброс настроек: «Yes – Wipe all user data».
4. Отлично! Вернитесь в главное меню и выберите «install zip».
5. После этого «Choose zip from /sdcard».
6. Перейдите к папке, в которую сохранили прошивку и выберите ее.
7. Появится запрос на подтверждение действия. Нажмите «Yes – Install…».
8. Пройдет процесс установки прошивки и в конце внизу на экране пояится надпись «Install from sdcard complete».
Замечательно, Android прошился. Возвращаемся в главное меню CWM Recovery и перезагружаем систему. Для этого выбираем «reboot system now».
Начнется загрузка установленной прошивки. Не пугайтесь, первый раз после обновления Android этот процесс может длиться до 10 минут.
Как установить прошивку через TWRP Recovery
Если больше нравится не CWM, а TWRP Recovery, прошейте его, руководствуясь этой инструкцией. Через него также можно установить прошивку из ZIP архива:
1. Скачайте прошивку и поместите ее в любое удобное место в памяти смартфона.
2. Перейдите в TWRP. Делается это так же, как CWM.
3. Теперь необходимо сбросить систему. Для этого выберите «Wipe» в главном меню.
4. Для того, чтобы запустить сброс настроек до заводских, перетяните ползунок вправо.
5. По завершению очистки смартфона, планшета нажмите кнопку «Back».
6. Вы вернетесь к главному меню TWRP Recovery. Теперь переходим непосредственно к самой прошивке. Для этого выберите «Install».
7. Перейдите к тому месту в памяти, где сохранена прошивка. Нажмите на нее.
8. Перетяните ползунок вправо для начала установки прошивки.
9. Начнется процесс. Обычно он длится 2-3 минуты.
10. В конце появится сообщение об удачном завершении прошивки. Нажмите на «Reboot System», чтобы загрузить Android.
Рассмотрен еще один способ как прошить Android при помощи ZIP обновления. Также можно воспользоваться специальным приложением. Об этом ниже.
Используем ROM Manager
Приложение ROM Manager позволяет создать резервную копию системы. Кстати, советую сделать бекап внутренней памяти перед прошивкой, чтобы потом восстановить данные. Сейчас мы будем использовать другую функцию программы: прошивать телефон при помощи ROM Manager.
Для работы утилиты нужны root права – они получаются при помощи эксплоитов: Kingo Android ROOT, Unlock Root, Framaroot или Vroot.
Обязательно должно быть установлено кастомное Recovery (по сути при помощи ROM Manager прошиваете устройство через него, но при этом работаете с простым и понятным интерфейсом приложения, а не Рекавери). Ссылки на инструкции есть в предыдущих пунктах.
Итак, установите ROM Manager, найдите и скачайте нужную прошивку для вашего устройства. Откройте приложение и следуйте инструкции:
1. Поместите .zip архив прошивки в памяти Андроид телефона или планшета.
2. В меню ROM Manager откройте пункт «Установить ROM с SD карты».
3. Найдите архив и нажмите на него.
4. В открывшемся меню выберите «Перезагрузка и установка». Советую поставить галочку напротив «Сохранить текущий ROM», чтобы иметь возможность восстановить систему при необходимости.
5. В следующем окне нажмите «ОК», после чего устройство загрузится в режим Recovery и начнется процесс прошивки.
Также в ROM Manager есть функция поиска ROM для устройства. В главном меню программы выберите «Скачать прошивки». Некоторые из них доступны только в премиум версии программы.
Выше я рассказал о трех способах установки прошивок из ZIP архивов на самом устройстве. Дальше пойдет информация о прошивке Андроид при помощи ПК.
Как прошить Android через компьютер
Многие мобильные девайсы прошиваются при помощи специальных утилит для ПК: ниже инструкции по работе с Fastboot и SP Flash Tool. Через вторую программу производятся различные манипуляции с китайскими телефонами на базе процессоров Mediatek.
Fastboot: инструкция по прошивке телефона
Многие прошивки необходимо устанавливать с компьютера при помощи утилиты Fastboot, перезагрузив мобильный девайс в одноименный режим. Программа входит в Android SDK Platform Tools, об установке которых рассказано в отдельной инструкции. Кроме того понадобятся драйверы (вся информация есть по ссылке).
Также на устройствах некоторых производителей сначала необходимо разблокировать Bootloader:
Далее скачиваем архив с нужной прошивкой и разархивируем его в папке «platform-tools», в которой находятся «ADB» и «fastboot». Должно получится приблизительно так (у меня нужные компоненты находятся в отдельной папке «adb»).
Затем подключаем Android к компьютеру по USB и переводим смартфон либо планшет в fastboot mode. Проще всего это сделать следующим образом:
- Включаем отладку по USB
- На компьютере переходим в командную строку
- Последовательно вводим команды и после каждой нажимаем «Enter»:
cd /
cd путь к файлу «adb»
Например, он находится в «C:\Program Files (x86)\Android\android-sdk\platform-tools». Тогда путь будет выглядеть так:
cd Program Files (x86)\Android\android-sdk\platform-tools
adb reboot bootloader
Затем Android гаджет перезагрузится в режим fastboot.
Перед тем как прошить какой-либо из разделов системы, сначала его нужно отформатировать, чтобы не возникло проблем в работе. Для этого используйте команды (после ввода каждой нажимайте «Enter»):
fastboot erase boot
fastboot erase userdata
fastboot erase system
fastboot erase recovery
fastboot erase cache
После очистки разделов их можно прошивать. Вводите команды (их количество может быть больше – все зависит от наличия определенных файлов в той или иной прошивке, ниже представлен набор основных):
fastboot flash boot imya-fayla.img
fastboot flash userdata imya-fayla.img
fastboot flash system imya-fayla.img
fastboot flash recovery imya-fayla.img
fastboot flash cache imya-fayla.img
«Imya-fayla.img» — это название соответствующего файла прошивки. Например, поскольку в моем случае шьется Recovery и его образ так и называется «recovery.img», я ввожу:
fastboot flash recovery recovery.img
Обычно прошивку можно установить целиком, то есть прошить все файлы сразу. Для этого в папке с файлами прошивки должен находится «flash-all.bat». Если он есть, тогда просто введите эту команду и начнется процесс установки прошивки:
flash-all
В итоге в конце появится сообщение об успешном завершении прошивки.
Можно загружать систему. Для этого нужно выйти из fastboot mode на самом устройстве или при помощи компьютера. Во втором случае нужно ввести еще одну команду:
fastboot reboot
Установка ZIP обновлений в Fastboot
Используя Fastboot можно установить ZIP прошивку. Для этого скачайте и поместите прошивку в папку, где находится «ADB». Переведите смартфон или планшет в fastboot mode и введите команду:
fastboot flash zip imya-fayla.zip
«Imya-fayla.zip» – это название вашей прошивки, замените его на свое.
Дождитесь завершения установки Android и перезагрузите устройство.
SP Flash Tool: прошиваем китайские Android смартфоны на MTK
Китайские смартфоны Fly, Lenovo, Xiaomi, Meizu, ZTE, Doogee, Bluboo, UMI, Elephone, Oukitel, Blackview и другие, работающие на базе процессоров MTK, прошиваются специальной утилитой SP Flash Tool. Она умеет шить отдельные разделы, форматировать систему и создавать резервные копии. Поддерживаются модели на MT6572, MT6577, MT6580, MT6582, MT6589, MT6592, MT6750, MT6737, Helio P10, Helio P20, Helio X10, Helio X20 и других менее популярных чипах.
Актуальная версия программы доступна на сайте: http://spflashtool.com/. Перед началом процесса установите драйвера USB под процессор MTK (ссылка на FAQ находится в пункте «Fastboot» данной инструкции).
1. Разархивируйте папку SP Flash Tool на диске «C:\», рядом «положите» прошивку. Путь к файлам не должен содержать кириллических символов.
2. В папке находится файл «flash_tool». Запустите его.
3. В поле «Download-agent» уже будет указан путь к «MTK_AllInOne_DA.bin». Далее нужно нажать «Scatter-loading» и выбрать scatter файл в папке с прошивкой.
4. Переключатель оставляем на «Download Only» и отмечаем какие разделы нужно прошить (по умолчанию выделены все).
5. Нажимаем «Download». Затем выключаем телефон, вынимаем батарею на несколько секунд, вставляем обратно и подсоединяем выключенный Android смартфон к компьютеру по USB.
6. Сначала появится красная полоса «Download DA 100%».
7. Затем желтая с процессом прошивки. Проценты отображают насколько близок конец установки.
8. SP Flash Tool сообщит о завершении прошивки мобильного девайса – откроется окно «Download Ok» с галочкой.
Включайте телефон. Первый запуск обычно длится достаточно долго.
Прошивальщики для Samsung и LG
Устройства некоторых производителей нужно прошивать через специальные фирменные утилиты (прошивальщики). На нашем сайте есть инструкции на эту тему:
- LG – KDZ Update
- Samsung – Odin
(4,83 из 5, оценили: 18)
Источник: https://4idroid.com/kak-proshit-android-planshet-smartfon-kastomnaya-proshivka/