Прошивка смартфонов: что это и зачем нужно?
Функциональные возможности мобильного устройства обеспечиваются не только его аппаратной частью, но и установленной ОС.
Данный программный комплекс представляет собой виртуальную среду, в рамках которой могут запускаться различные приложения. Открытая архитектура смартфонов под управлением Android позволяет вносить изменения в ее работу. Как правило, наиболее радикальные меры по модификации существующей оболочки достигаются за счет установки новой прошивки.
Что такое прошивка?
Производители современных смартфонов на Android (Google, Samsung, Xiaomi, Sony) создают свои версии виртуальной среды для каждого девайса. Подобное ПО обычно принято называть фирменной прошивкой, поскольку на устройстве она присутствует изначально. Несмотря на общую мобильную платформу, функциональные особенности и дизайн у таких оболочек могут существенно различаться между конкурирующими компаниями.
Основные разновидности
В течение некоторого времени разработчики обеспечивают поддержку выпущенного на рынок гаджета за счет обновлений системы. Более совершенные версии прошивок позволяют пользователям смартфонов получать новые возможности, а также исправляют многие ошибки и проблемы с оптимизацией. Зачастую процесс установки свежего ПО требует всего лишь подтверждения загрузки и происходит в полуавтоматическом режиме — речь идет о беспроводном обновлении (OTA).
К сожалению, для многих телефонов официальная поддержка от производителя заканчивается довольно быстро. Зачастую это обуславливается выпуском новых версий Android, справляться с которыми по определенным причинам старые гаджеты не в состоянии. В таком случае на помощь приходят неофициальные или «кастомные» прошивки от сторонних разработчиков. Их установка позволяет не только оптимизировать работу слабых устройств, но и значительно расширить функционал все еще актуальных моделей.
Популярные образцы
На сегодняшний день существует две основных разновидности мобильных прошивок: официальные и неофициальные. Как правило, когда речь заходит о подобном явлении, чаще всего имеется в виду второй тип оболочек для системы.Чтобы их установить, нужно совершить ряд манипуляций над гаджетом. Рекомендуем доверить это дело профессионалам, обратившись в специализированный сервисный центр.
«Кастомные» модификации Android создаются самыми разными людьми. Ими могут быть обыкновенные народные умельцы или профессиональные команды разработчиков с большим опытом. Наиболее известными прошивками являются CyanogenMod, MIUI, Illusion ROMS, Paranoid Android, PAC ROM. Все они предоставляют широкие возможности по персонализации устройства и повышении стабильности его работы.
Плюсы и минусы прошивок
Заканчивая разговор о прошивках, нужно отметить их положительные и отрицательные стороны. К неоспоримым плюсам «кастомных» модификаций системы относятся:
Несмотря на все преимущества, получаемые пользователем смартфона с прошивкой, существуют некоторые проблемы, с которыми тот может столкнуться:
Именно поэтому не стоит совершать необдуманных поступков, сразу же устанавливая первую попавшуюся модификацию системы. Перед тем как пойти на такой шаг, нужно убедиться в качестве ПО и его совместимости с устройством. Найти необходимую информацию о прошивке можно на сайте разработчиков или технических форумах (4PDA).
Источник
CN-версия смартфона — что это значит?
Китайские телефоны давно перестали ассоциироваться с низким качеством.
Современные производители из Поднебесной смогли достигнуть отличного уровня качества, надежности и функциональности, поэтому многие покупают смартфоны через китайские интернет-магазины. Такая покупка позволит сэкономить, потому что в официальной рознице цена на гаджета часто завышена.
В связи с этим потенциальные покупатели сталкиваются с необходимостью выбора между «глобальной» и «CN» версией смартфона. Первый вариант ориентирован на мировой рынок и предлагает полный функционал (все подробности здесь), второй предназначен для внутренних потребителей. Давайте рассмотрим причины, почему рекомендуется с осторожностью покупать CN-версии телефонов.
Недостатки CN-версии смартфонов
Особенности прошивки. Смартфоны для внутреннего рынка часто обладают адаптацией операционной системы. Здесь отсутствуют привычные сервисы Google — вместо них установлены китайские аналоги. Такая особенность связана с запретом известной корпорации в Китае. В связи с этим, большинство пользователей столкнется со значительными неудобствами — например, невозможностью загрузить приложения из Google Play или воспользоваться Google Документами.
Именно поэтому покупателям приходится самостоятельно «дорабатывать» мобильное устройство после приобретения. Распространенный метод — установка новой прошивки. Для этого энтузиасты выкладывают на специальных форумах файлы, предназначенные для модификации операционной системы. После успешной установки на смартфоне появляются сервисы Google, но установка сторонней прошивки обычно исключает возможность получения обновлений ОС.
Нужно отметить, что прошивка смартфона — сложная задача для начинающих пользователей, требующая определенной подготовки. Единственное неверное действие сможет превратить телефон в «кирпич», поэтому нужно быть аккуратным.
Отсутствие русского языка. Китайские версии смартфонов обычно обладают двумя предустановленными языковыми пакетами — английским и китайским. Решение такой проблемы подразумевает установку новой прошивки. Но поскольку языковой пакет создается сторонними разработчиками, возможны ошибки в описании некоторых элементов интерфейса.
Зарядное устройство. Блоки питания для CN-смартфонов отличаются другими вилками, соответствующими определенным типам розеток. Поскольку продукт ориентирован на внутренних потребителей, производитель часто кладет в коробку китайское зарядное устройство. Оно не совместимо с европейскими розетками, поэтому телефон не получится зарядить без специальных приспособлений. Есть два метода решения проблемы:
Поддержка LTE. Некоторые китайские версии смартфонов не совместимы с российскими стандартами связи LTE. Таким образом, потенциальные покупатели не смогут воспользоваться скоростным интернетом на территории страны. Чтобы удостовериться в поддержке или отсутствии LTE, рекомендуется внимательно ознакомиться с техническими характеристиками CN-версии смартфона или использовать нашу инструкцию. Обычно производитель указывает всю необходимую информацию.
Преимущества CN-версий смартфонов
Низкая цена. Китайская адаптация смартфона обычно стоит дешевле, чем глобальная версия, которая нуждается в дополнительной сертификации перед реализацией. Чтобы сэкономить, достаточно воспользоваться популярными интернет-магазинами, например, AliExpress или Gearbest. Информация о разновидности версии всегда указывается продавцом в описании — изучайте внимательнее.
Лучшее качество дисплея. Некоторые пользователи определенных моделей смартфонов заметили, что китайские версии обладают более качественной матрицей на фоне глобальной версии. Отличия касались цветопередачи и яркости. Впрочем, такие особенности индивидуальны для каждого производителя. Чтобы сделать удачную покупку, рекомендуется просматривать отзывы перед заказом.
Итоги
Между китайской и глобальной версии смартфонов есть существенные различия. CN-версия отличается прошивкой без привычных сервисов Google, обладает всего двумя предустановленными языками и не поддерживает некоторые современные стандарты связи, использующиеся на территории России. Главное преимущество — низкая стоимость за счет отсутствия сертификации для европейского рынка.
Целесообразность такой покупки рекомендуется определять самостоятельно. Если вы готовы потратить время на установку альтернативной прошивки с сервисами Google и хотите немного сэкономить, выбирайте азиатскую версию. Если планируете получить все возможности «из коробки» и полноценную поддержку производителем, покупайте версию для глобального рынка.
Источник
Разработка и модификация прошивки для Android телефонов. Часть 2
В первой части мы научились перепаковывать официальную прошивку из формата RUU в формат пакета обновлений, что дало нам возможность использовать созданную нами прошивку, не опасаясь затирания модифицированного раздела восстановления (recovery rom). И тем временем, пока HTC воюет с хорошими ресурсами, мы продолжим изучать и улучшать прошивку.
В предыдущей части, хоть мы и создали прошивку, которая загружается и работает как часы, мы бы хотели расширить базовый функционал оной. Одним из самых востребованных расширений является поддержка работы с правами суперпользователя (root). Также сюда можно отнести интегрирование busybox. Кроме того, мы научимся запускать произвольные скрипты при старте системы и адаптируем ramdisk под свои нужды.
Busybox
busybox — это набор консольных unix утилит, ориентированный на малый размер и производительность, что так актуально для мобильных систем. Вместе с системой android поставляется свой набор утилит — toolbox, который предоставляет минимально необходимых функционал для системы, и как следствие более простой в количественном и функциональном плане. Наличие busybox в системе, с одной стороны, позволит нам, как разработчикам, чувствовать себя более комфортно при удаленной работе на устройстве, с другой, позволит писать сложные скрипты, и, например, реализовать механизм запуска собственных скриптов при загрузке, используя run-parts. Также стоит учитывать, что для некоторых android приложений (особенно те, которые используют root) наличие busybox — обязательно.
Модификация ramdisk
Скрипты инициализации
Права суперпользователя. Root.
Для того, чтобы добавить в нашу прошивку указанный функционал — добавим модули в соответствующие разделы системы,
Источник
Что такое кастомная прошивка для смартфона? Какие популярны сегодня?
Кастомные прошивки — это не всегда просто и понятно сходу. Выясняем, какие сегодня наиболее популярны, да и вообще, зачем может понадобиться перепрошивка смартфона. Кому такое в голову в принципе может прийти.

На каждом Android-смартфоне, которым мы пользуемся, установлена какая-то прошивка. Чаще всего прошивки разрабатываются производителем устройства. Но бывают случаи, когда прошивку хочется сменить. Тем более, что у Android огромное сообщество, которые постоянно предлагает свои варианты — выбор огромен.
А вот Android – это «проект» с открытым исходным кодом, в связи с чем любой разработчик вправе взять код и отредактировать его в соответствии со своими предпочтениями. То есть расширить функционал путем внесения множества других настроек и улучшений. Затем перекомпилировать его и повторно выпустить для широкого спектра устройств.
Пользователи могут устанавливатьпрошивку, чтобы изменить функционал и «поведение» устройства. Прошивка (ROM) разрабатываются сообществом Android и группой разработчиков, которые делают это исключительно из-за страсти к моддингу. Это значит, что большинство продуктов абсолютно бесплатны и доступны для смартфонов, планшетов и любых других устройств, работающих на базе Android.
Исходя из собственного опыта, могу сказать, что пользовательские прошивки часто настолько же стабильны, как и поставляемые вендором. Хотя риск наткнуться на незначительную ошибку сохраняется.
У вас точно не будет полной власти над собственным смартфоном, пока не установите кастомную прошивку или не получите root-права.
Следующие кастомные прошивки очень популярны для устройств Android:
Давайте конкретнее?
1. AOSP
AOSP – это проект с открытым исходным кодом от Google. Это прошивка без сторонних ланчеров или многих других модификаций и кастомизаций, что вносятся в Sense, TouchWiz, MIUI, EMUI… Интерфейс постоянно меняется от одной версии Аndroid к другой.
2. LineageOS
LineageOS – это бесплатный модифицированный дистрибутив Android, созданный сообществом и предназначенный для повышения производительности и надежности по сравнению со стандартной системой.
В LineageOS есть множественные дополнительные настройки такие, как положение часов или стиль значка батареи. Также доступны настройки кнопок управления, благодаря им легко меняется действие клавиш. LineageOS основана на Android Open Source Project с большущим вкладом многих людей из сообщества Android.
3. Pixel Experience
Pixel ROM создали на основе всех возможностей Google, включая все приложения с превосходной загрузочной анимацией и множеством дополнительных настроек. Отличительная особенность – 3D Touch (можно получить некоторые опции для приложений, если долго зажимать иконку в течение 1-2 секунд). Например, вместо того, чтобы открывать приложение контакта и создавать контакт, мы можем долго нажимать на приложение контакта, и сразу получать опцию создания нового контакта. Еще одна удивительная и фантастическая функция – это помощник Google. Пользователь без касаний способен спросить все, что хочет. Помощник Google дает ответы, а человек задает те или иные команды (звонок абоненту, установка будильника и многое другое).
4. Resurrection Remix
Resurrection Remix ROM в конечном счете является продуктом «полнофункциональным», стабильным и с открытым исходным кодом. В нем можно найти множество оригинальных дополнений, а также попытки улучшить производительность, дать
более гибкие настройки, мощность и новейшие функции. Несмотря на то, что в данном ROM так много настроек, прошивка крайне экономно расходует заряд батареи.
5. Mokee
MoKee OpenSource тоже основан на Google AOSP. Небольшая группа заинтересованных в Android людей со всего мира запустила данный проект в 2012 году; и все они стремятся сделать этот ROM лучше. Как и большинство участников проектов с открытым исходным кодом (Omini, LineageOs, Slim AOSPA и т. Д.), разработчики занимаются модификациями в свободное время, будто это хобби. Что получает пользователь? Некоторые базовые настройки и ежедневные ночные обновления для устройств.
Каковы же преимущества кастомных прошивок?
А что по недостаткам кастомов?
Ответы на актуальные вопросы
1. Стоит ли устанавливать кастомное ПЗУ или оставаться на официальном?
Ответ: если вы готовы рисковать нынешней производительностью вашего смартфона в погоне за чем-то лучшим и интересным, то почему бы и нет? Часто можете выиграть. Нужно пробовать.
2. Как правильно выбрать прошивку?
Я бы посоветовал прочитать отзывы пользователей на одну и ту же прошивку для одного и того же устройства. Часто бывает, что прошивка может «летать» на конкретном устройстве, но огорчить пользователя другого аппарата. Хорошенько ознакомьтесь с функциями и решите сами.
Тогда можно поддержать её лайком в соцсетях. На новости сайта вы ведь уже подписались? 😉
Или закинуть денег на зарплату авторам.
Или хотя бы оставить довольный комментарий, чтобы мы знали, какие темы наиболее интересны читателям. Кроме того, нас это вдохновляет. Форма комментариев ниже.
Что с ней так? Своё негодование вы можете высказать на zelebb@gmail.com или в комментариях. Мы постараемся учесть ваше пожелание в будущем, чтобы улучшить качество материалов сайта. А сейчас проведём воспитательную работу с автором.
Если вам интересны новости мира ИТ также сильно, как нам, подписывайтесь на наш Telegram-канал. Там все материалы появляются максимально оперативно. Или, может быть, вам удобнее «Вконтакте» или Twitter? Мы есть также в Facebook.
Источник
Модификация стоковых прошивок для 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.
9. Страшно, не правда ли? Ничего же не понятно. Но, это дело поправимое. Создав несколько своих патчей и набив тем самым руку, вы легко сможете модифицировать код без сторонних средств. В нашем случае, в этом коде
происходит присваивание переменной v0 значение 1, то есть TRUE. Далее идут всякие проверки, и если телефон не китайский, то значение переменной изменяется:
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 файла
Замена оригинального файла на патченный
Обычно, для рядовых пользователей создаются специальные скрипты, которые через recovery заменяются. Но нам такое не интересно. Во-первых долго и нудно, во-вторых мы же опытные пользователи и можем себе позволить некоторые тонкости.
1. Заменить текущий рабочий файл можно следующими командами, если у вас уже стоит DEODEX прошивка и имеется root доступ:
1-ая команда закидывает патченный файл на флешку
2-ая команда открывает shell
3-ая команда дает root доступ
4-ая команда монтирует систему в режим чтения/записи
5-ая команда делает резервную копию файла
6-ая команда перезаписывает существующий файл новым патченным.
7-ая команда настраивает разрешения
8-ая команда удаляет кэш
9-ая команда делает перезагрузку устройства.
2. Спасибо что дочитали до этого пункта, осталось немного.
3. После перезагрузки ваш новый патченный код вступит в силу.
4. Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.
Эпилог
Да, кому-то показалось данная статья слишком специфичной, кому-то мало-понятной, а кому-то бесполезной. Я специально обошелся без углубленной детализации и иллюстраций как это все выглядит в живую и на практике. Во-первых, данный труд будет неблагодарный и только породить еще больше вопросов. Во-вторых, не хочу видеть армию пользователей на форумах, которые жалуются, что убили свой телефон.
К следующей статье я расскажу как делать Твики. Будет пример использования автоматической записи телефонных звонков родными средствами телефона. Спасибо за ваше внимание.
Источник












