Андроид прошивка полного кирпича - Ремонт и дизайн от ZerkalaSPB.ru
10 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Андроид прошивка полного кирпича

Прошивка Андроид с помощью утилиты FastBoot

вкл. 06 Июнь 2016 . Опубликовано в Android — Общее

Прошивка Андроид с помощью утилиты FastBoot. Необходимо прошить Android c помощью FastBoot, но не знаете как? В данной статье дается детальная инструкция по использованию утилиты FastBoot и как ей пользоваться чтобы прошить Android девайс.

Данная инструкция полностью расскажет как пользоваться FastBoot! Если же вы не знаете как устанавливать архивные обновления то вам необходима статья — Clockwordmod — что это такое. Инструкция по CWM recovery с картинками

Скачивание и установка FastBoot

Прежде прошить Android c помощью FastBoot, необходимо его скачать и установить на необходимый компьютер.

1. Скачать утилиту FastBoot можно с официальной программой Android SDK (большой вес)

2. Скачать отдельно FastBoot без установки и скачивания лишних файлов

3. Либо воспользоваться программой Adb Run, в которой «все включено», а также умеет разблокировать графический ключ Android.

почему ADB RUN лучше

Запуск

Если скачали Отдельно Fastboot

После того как Вы скачали и установили FastBoot, откройте на ПК программу « Командная строка »

и вве дите команды для перехода в папку с утилитой Fastboot (если установили отдельно FastBoot )

Если скачали ADB RUN

Если ваш выбор пал на программу ADB RUN, то запустите ее и выберите в меню Manual -> ADB

Инструкция по командам как прошить Android c помощью FastBoot

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

Если у вас команда указана

то нужно писать именно так, но ни как иначе. Другими словами важен регистр букв иначе вы получите ошибку cannot load ‘image’ — нет такого файла.

Команды перезагрузки в режим прошивки (bootloader)

Перезагрузка Android в режим загрузки (bootloader), данная команда работает если устройство включено в обычном режиме

Перезагрузка Android в обычный режим из режима прошивки (bootloader)

Перезагрузка Android из режима прошивки в этот же режим

Команда «видит» ли ПК ваш Android

Возьмите в привычку проверять перед тем как что-то делать в Fastboot если соединение между компьютером и Android:

Проверка «видит ли» ПК ваш Android

Данную команду выполнять когда устройство уже в режиме прошивке (bootloader)

Команды разблокировки и блокировки загрузчика Nexus

Разлочить bootloader для Nexus

Залочить bootloader для Nexus

Команда узнать версию bootloader

Покажет установленую на Android номер версии бутлоадер

Команды форматирования раздела

fastboot erase Imya_razdela — стереть раздел: boot, radio, recovery, system, userdata и другие

Стирает раздел Кеш (Cache)

Стирает раздел Дата (Data)

Стирает раздел Систем (System)

Стирает раздел Recovery

Команды для прошивки раздела

После того как выполнили форматирование раздела или разделов, можете приступить к прошивке

fastboot flash Imya_razdela imya_file.img — прошивка выбранного раздела: boot, radio, recovery, system, userdata и другие

Прошить раздел системы (System)

Прошить раздел кеш (Cache)

Прошить раздел дата (Data)

Прошить раздел Recovery

Установка анимации включения (прошивка раздела с анимацией)

Прошить все разделы (boot, recovery и system)

Вместо imya.img — необходимо прописывать имя файла которые вы собираетесь прошить

Команда для установки update.zip

Прошивает на Android архив-обновление в формате update.zip или архив ZIP с IMG образами различных разделов

Для устройств Sony

Проверка подключения устройства Sony, если ответ 0.3 устройство, то тогда подключено

Разблокировка bootloader

Более детальная информация по разблокировке Bootloader Sony — Как разблокировать Bootloader Sony

Ошибка Waiting for Device

Если у вас долгое время в командном окне горит надпись waiting for device — значит:

  • Не установлен или некорректно установлен драйвер — переустановить или установить
  • Устройство Android не в режиме Bootloader — перевести
  • Некорректное подключение к USB порту — использовать задние порты USB 2.0 компьютера, не использовать USB хабы

Более подробно о данной ошибке «Waiting for Device» читайте в специальной посвященной этому статье Waiting for Device.

Видео пример работы с утилитой Fastboot

Для тех кто ничего не понял!

Для тех кто ничего не понял воспользуйтесь приложением ADB RUN, в данной программе введены практически все команды, которые нужны для FASTBOOT!

Ниже представлен пример работы ADB RUN — как прошить быстро файл Recovery с помощью ADB RUN за менее чем за 5 секунд (только не забывайте вначале переводить в режим bootloader)! Кликните по изображению для просмотра.

Новая жизнь старого android-устройства: устанавливаем CyanogenMod 13

Оглавление

  • Вступление
  • «Устаревшее» устройство
  • Выбор прошивки
  • Загрузка прошивки
  • Установка Recovery
  • Установка прошивки
  • Первое включение и настройка
  • Установка CyanogenMod 13
  • Производительность
  • Автономность
  • Заключение

Вступление

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

реклама

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

В качестве подопытного выступит планшет Samsung Galaxy Tab 2 7.0 (процессор TI Omap 4430, 2 x 1200 МГц, видеосопроцессор PowerVR 540 384 МГц, 1 Гбайт ОЗУ) с неофициальной прошивкой CyanogenMod 13.

«Устаревшее» устройство

В моем личном использовании находится планшет Samsung Galaxy Tab 2 7.0, который вышел в начале далекого 2012 года, когда курс доллара был менее 30 рублей, но речь сейчас не об этом. Данный аппарат построен на базе шустрого двухъядерного процессора Ti Omap, оснащен сочным PLS дисплеем и качественным корпусом.

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

OC Android ICS и Jelly Bean, которые поддерживаются Samsung Galaxy Tab 2 7.0, уже порядком заросли бородой. Ведь сейчас актуальна версия Android M. А нам хотя бы Android Lollipop, в котором проведена оптимизация производительности, улучшен уровень автономности и есть все новые фишки. В лучшем случае можно разинуть роток на Android Marshmallow…

реклама

Но установить новую версию операционной системы Android на старое устройство все-таки можно, в том числе даже вышеупомянутую Android M.

Выбор прошивки

Для начала следует определиться с выбором прошивки и узнать, а есть ли вообще неофициальные версии системы для нашего аппарата? Владельцам флагманских смартфонов и планшетов (таких как Google Nexus, Samsung Galaxy S, HTC One, Sony Xperia Z и других) не стоит и переживать – прошивки есть, причем в огромном количестве.

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

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

Лучше смотрите на официальные сборки прошивок таких гигантов, как CM, AOSP, Google Play Edition и Miui. Чуть менее серьезно воспринимайте ColorOS и прочие. Узнать о плюсах и минусах, а также различиях каждой из систем можно в интернете, поскольку в рамки одной статьи уместить это сложно.

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

Загрузка прошивки

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

реклама

В нашем случае мы открываем сайт CyanogenMod, где выбираем в левой панели соответствующую модель устройства и переходим к загрузке. Будьте аккуратны, поскольку у некоторых смартфонов и планшетов в зависимости от модификации бывают отличия в плане процессоров и внутренних компонентов, например, наличие или отсутствие ИК-порта, 3G/4G-модуля и прочих преимуществ. В нашем случае P3110 и P3100 это разные версии!

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

Установка Recovery

реклама

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

Читать еще:  Станок атлант для производства кирпича лего

Для OC Android существуют два варианта: CWM (или Philz) и TWRP Recovery. В чем различия между этими тремя режимами? На вкус и цвет товарищей нет! Все они предлагают примерно одинаковую функциональность, но разрабатываются разными группами разработчиков и отличаются различными нюансами.

К примеру, TWRP позволяет открыть доступ к съемному носителю при подключении через USB, а еще предлагает расширенные параметры подключения по ADB и дополнительные возможности сжатия «бэкапа» системы. А Philz Recovery построен на базе TWRP и отличен от него интерфейсом и парой мелочей. В то время как ClockworkMod Recovery более стабилен и обладает большим списком поддерживаемых устройств.

Однако выбор есть не всегда. Для каждого устройства разрабатывается отдельное Recovery и бывает так, что выбора у пользователей нет. В моем случае выбор пал на TWRP Recovery версии 2.8.7.0. Установка данного режима может осуществляться различными способами, начиная от официального Recovery, Fastboot и заканчивая программами и утилитами для конкретных моделей.

реклама

Загружаем утилиту GooManager, выбираем в дополнительном меню пункт «Install OpenRecovery Script» и ожидаем чуда. Предварительно необходимо получить ROOT права и включить режим отладки в параметрах для разработчиков.

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

Установка прошивки

Если процесс установки модифицированного режима восстановления был успешен, можно перейти к следующему – установке прошивки. Для начала необходимо зарядить устройство более чем на 60%, а еще лучше на все 100%. В противном случае мы обречены на фатальный результат. Затем загруженный образ необходимо переместить в память смартфона, будь то съемный накопитель или внутренняя память, и уже оттуда загрузиться в режиме Recovery и установить прошивку. Все гениально просто, осталось только повторить.

реклама

Берем в руки устройство, запускаем его комбинацией клавиш «включение» и «увеличение громкости», попадаем в системное меню.

Желательно сделать полный «бэкап» системы на флэш-карту!

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

реклама

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

К слову, установка или обновление прошивки может занимать до 10-15 минут, поскольку все зависит от компонентов устройства и устанавливаемой системы. Если процесс затянулся – значит, что-то пошло не так… В нашем случае процесс успешно завершился за 4 минуты. В это время на экране будут описываться стадии установки. Жаль только, возможность создания скриншотов отсутствует.

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

Прошивка Андроид

Содержание:

  1. Прошивка Андроид
  2. Описание
  3. Принцип прошивки
  4. Прошивка через штатное рекавери
  5. Прошивка через модифицированное рекавери
  6. Прошивка при помощи ПК
  7. «Кирпич» и что с ним делать
  8. Выводы
  9. Комментарии

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

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

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

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

Если Ваш мобильный девайс (смартфон или планшет) перестал нормально работать, ему может помочь перепрошивка. Как перепрошить Андроид Вы узнаете из статьи ниже.

Современные смартфоны и планшеты на базе 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 sdcardchooze zip from sdcard. При этом обычно желательно отключить проверку подписей в разделе toggle signature veritification:

В TWRP для достижения того же результата нужно зайти в раздел Install и следовать подсказкам. Кстати, в этом рекавери управление производится не физическими кнопками, а посредством тачскрина (хотя существует и подобная сборка CWM touch).

Кастомное рекавери очень полезная штука. Кроме прошивки, с его помощью можно получить рут на Ваше устройство, подключиться в режиме отладки по ADB, управлять разделами памяти телефона и т.п. Беда только в том, что такая полезная штука портирована лишь для немногих устройств.

Прошивка при помощи ПК

Так или иначе, даже, если для Вашего устройства нет сборки кастомного рекавери, прошить его можно при помощи ПК. Для этого Вам потребуется как минимум:

  1. Драйвер для распознавания компьютером Вашего девайса.
  2. Прошивка, подходящая по всем параметрам.
  3. Бэкап текущей прошивки на SD-карте на случай, если новая прошивка не заработает.
  4. Рабочий USB-кабель для подключения устройства к компьютеру.
  5. Программа для прошивки Вашей модели телефона или планшета (она же флешер).

Из вышеприведённого списка нас больше всего интересует последний пункт. Для популярных фирменных устройств существуют и фирменные утилиты-флешеры. Например, для 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).

В любом случае, начиная заниматься прошивкой Андроида, первым делом обязательно СДЕЛАЙТЕ БЭКАПЫ! Вторым же делом – не поленитесь прочесть инструкции, которые пишут на форумах другие более опытные пользователи (если эти инструкции есть). Ведь порой даже не там поставленная галочка может превратить Ваше устройство в «кирпич» буквально в одно касание!

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

Модификация стоковых прошивок для Android. Часть 1

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

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

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

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

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

В моем случае это была команда
java -Xmx512m -jar baksmali.jar -a 16 -d S:devAndroidAndroid-KitchenWORKING_JB_15systemframework -o HTCExtension -x HTCExtension.jar
7. В нашей вновь созданной папке появилась папка HTCExtension, а в ней наши файлы с Dalvik кодом.
8. Отыскиваем файл по пути comhtcutilcontactsBuildUtils$Customization.java и смотрим код:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эпилог

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

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

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector