Стандартная прошивка для андроид

Как обновить прошивку андроид?

Разд е л: Прошивка Дата: 03.04.2015 Автор: Александр Мойсеенко . Комментариев: 0

Последнее обновление: 26/08/2020

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

Зачем обновлять прошивку на Android

Вот неполный перечень причин:

  1. Получить новые и/или ранее недоступные функции/возможности.
  2. Исправить выявленные ошибки и неполадки в прошивке.
  3. Закрыть уязвимости и дыры в системе безопасности.
  4. Улучшить производительности устройства или ускорить устаревший аппарат.
  5. Скачивать некоторые игры и приложения, не работающие на устаревших версиях системы.

Виды, отличия и особенности обновлений

Стандартная прошивка

Выделяют 2 вида обновлений:

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

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

MIUI прошивка

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

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

Китайская. Прошивка предназначена для пользователей/разработчиков/тестеров из поднебесной, поскольку содержит только английскую и китайскую локализацию. Порядок выхода: Альфа сборка – Бета, для разработчиков – Стабильная версия.

Глобальная. Система рассчитана на пользователей других стран, так как содержит расширенный языковый пакет. Порядок выхода: Бета, для разработчиков – Стабильная версия.

Отличительные особенности прошивок

Альфа версия. Прошивка содержит последние нововведения и чаще обновляется. Система доступна только некоторым китайским тестерам/разработчикам.

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

Стабильная версия. Обычно выходит каждые 3-6 месяцев, где устранено большинство ошибок. Система лучше отлажена, в сравнении с еженедельными сборками и более пригодна для постоянного использования.

Сторонние прошивки

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

Способы обновления прошивки

Владельцу Android доступно 4 способа обновления прошивки:

  1. Встроенная опция FOTA.
  2. Через заводское recovery.
  3. С помощью компьютера.
  4. С использованием стороннего recovery.

Обновление прошивки через FOTA

Сокращение FOTA (OTA), в переводе с английского Firmware Over The Air – прошивка по воздуху. Стандартный метод получения и обновления прошивки большинством устройств на ОС Android.

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

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

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

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

Обновление прошивки через заводское recovery

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

Читайте также:  Геймпады для андроид устройств

Метод актуален, когда обновление для телефона имеется, но через FOTA не скачивается. Тогда достаточно закачать в память файл обновления под названием «update», загрузится в режим восстановления, где выбрать файл и запустить процесс обновления.

К недостаткам стоит отнести некоторые сложности с поиском файла обновления. Требуется проделать больше действий. Так же установке подлежит только официальная прошивка, модификации установить нельзя. А поскольку цикл поддержки устройства редко превышает больше года, 1.5-2 года для флагманов, обновить прошивку получится не всегда.

Обновление прошивки с использованием компьютера

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

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

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

К преимуществам стоит отнести возможность установки полного пакета прошивки, что актуально, когда обновление не доступно через ОТА. Ещё прошить «улучшенный» сток, где автор может убрать лишние программы и сервисы, а взамен поставить лучший вариант приложений.

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

Обновление прошивки с использованием модифицированного recovery

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

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

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

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

Из недостатков – необходимость стороннего recovery и разблокированного загрузчика. Так же некоторого времени и знаний со стороны владельца.

Вывод

Статья подробно описывает способы, как обновить прошивку андроид. Каждый метод ориентирован на определенные знания и возможности пользователя, с получением соответствующего результата. Новичкам подойдут стандартные инструменты обновления через ОТА. Для продвинутых пользователей – метод с заводским recovery и обновлением через ПК. Обновление путем установки кастомной прошивки – сложный и не быстрый процесс, под силу опытным и терпеливым пользователям, что окупается наличием свежего ПО и доступа к множеству улучшений.

А какой вариант обновления прошивки предпочитаете вы? Свой вариант обязательно напишите в комментариях.

Источник

Модификация стоковых прошивок для 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, а класс, который содержал данную подпрограмму находился в \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.

Читайте также:  Systemui controls android 11

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 и смотрим код:

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. Удаляем строки с нумерацией строк, копируем и заменяем метод (подпрограмму) в нашем \com\htc\util\contacts\BuildUtils$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. Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.

Эпилог

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

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

Источник

Оцените статью