- Что такое кастомные прошивки Андроид
- Что такое кастомная прошивка Android
- Кастомные прошивки, построенные на базе официальной прошивки от производителя
- Кастомные прошивки, построенные на оригинальном Android
- Что такое Модифицированные прошивки или Кастомные?
- Что такое Модифицированные прошивки или Кастомные или Стоковые?
- Плюсы Модифицированных прошивок
- Минусы Модифицированных прошивок
- Что стоит попробовать из Модифицированных прошивок
- Видео обзор AOKP
- Видео обзор CyanogenMod
- Как установить?
- Модификация стоковых прошивок для Android. Часть 1
- Преамбула
- Подготовка среды
- Преобразование прошивки
- Непосредственно модификации
- Эпилог
Что такое кастомные прошивки Андроид
вкл. 10 Октябрь 2013 . Опубликовано в Статьи
Что такое кастомные прошивки Андроид? Кастомные прошивки представляют собой видоизмененные, модифицированные прошивки одним пользователем или же группой пользователей, например ( CyanogenMod и Miui ), это прошивка которая создана не официальным производителем.
Возникает вопрос для чего и кому нужна кастомная прошивка? Начнем с того, что Андроид ОС — это операционная система содержащая в себе ядро Linux, оно предоставляет вам очень большие возможности к работе, многофункциональности и творчеству, именно этот фактор дает огромнейший плюс, если сравнивать Андроид с другими мобильными OS. В большинстве случаев производители закладывают только базовый функционал в устройство (телефон, смартфон, планшет), чтобы в будущем подстегнуть покупателя на новую покупку, подчеркивая то что в прошлой модели этого нет а в новой модели есть.
Что представляет собой кастомная прошивка? Изготовив и установив кастомную прошивку можно добиться следующего:
- Сделать себя superuser (суперпользователем), т.е. изначально встроить Root (рут).
- Если у вас будет рут, то вы сможете встроить туда firewall (файрвол), он нужен для блокировки выбранных программ к доступу в интернет, следовательно в сэкономите трафик и ресурс электроэнергии батареи.
- У вас будет возможность выбрать и установить свои шрифты.
- Сможете значительно улучшить чувствительность GPS (для быстрого нахождения спутников).
- Сможете удалить и встроить Лончер (графическую оболочку).
- Так же можно будет изменить графические элементы интерфейса и оповещения, например сделать так чтобы Android телефон стал похож на Windows Phone или Iphone.
- Сможете встроить скрипты для того чтобы воспроизводилось HD Video и телефон бы при этом потреблял энергии по минимуму.
- Сможете встроить свое ядро, для повышения производительности телефона, чтобы все работало как можно быстрее и вам не приходилось ждать или же можете понизить частоту процессора для экономии заряда батареи, либо вообще комбинировать эти два режима для того чтобы получить производительный и в тоже время экономичный девайс. Эти операции позволят вам за одинаковый отрезок времени выполнить гораздо больше действий чем на старой прошивке.
- Появляется возможность установить или удалить системные приложения, ведь у многих очень дорогой интернет трафик, либо мало встроенной памяти для установки сторонних приложений. Удалив заведомо то, что нам не нужно в нашем телефоне мы делаем себе огромную пользу, тем что экономим драгоценное место встроенной памяти и освобождаем ресурсы, так как очень многие программы имеют процессы висящие в фоне и отъедающие энергию и оперативку. Например вам совсем не нравится встроенный браузер и калькулятор вы можете их удалить и установить тот браузер и калькулятор который вам подходит, содержать на своем девайсе по нескольку схожих по функционалу программы это не экономично.
- Появляется возможность изначально задать в файле build.prop значения чтобы девайс снимал фото и видео по максимому или чтобы 3G интернет работал быстрее, изменить язык на свой родной при установке прошивки, включить аппаратное ускорение.
- И самое интересное то, что на одном девайсе можно содержать две прошивки.
Изготавливая или устанавливая кастомную прошивку есть возможность что могут возникнуть проблемы, возможно что-то будет работать не совсем корректно или вообще откажется работать – это могут быть как программы так и некоторые функции устройства. Но обычно сообщество пользователей Android довольно быстро решает такие проблемы, возможно и саморучное допиливание кастомной прошивки. В самом плохом варианте если вам не подошла кастомная прошивка, можно восстановить свой смартфон с помощью CWM (ClockworkMod Recovery) она делает резервную копию прошивки вашего устройства со всеми установленными приложениями и настройками, а если прошивка подошла, то восстановить все программы и данные можно с помощью великолепного приложения Titanium Backup.
Устанавливая кастомную прошивку вы абсолютно ничего не теряете, наоборот вы получите огромную отдачу от своего любимого девайса.
Источник
Что такое кастомная прошивка Android
Практически все пользователи операционной системы Android слышали о кастомных прошивках. Но, далеко не все до конца понимают, что такое кастомная прошивка Андроид, для чего она нужна и чем она может быть лучше оригинальной прошивки от производителя.
Итак, кастомная прошивка это прошивка для Андроид устройства, разработанная одним или целой группой независимых разработчиков. Разработчики кастомной прошивки могут включать в прошивку дополнительные функции, которых нет в оригинально прошивке от производителя. Таким образом, устанавливая кастомную прошивку на свое Андроид устройство, пользователь получает возможность использовать те функции, которые не предусмотрены производителем устройства.
Рассмотрим основные преимущества кастомных прошивок:
- Дополнительные функции и приложения, которых нет в оригинальной прошивке;
- Отсутствие ненужных функций, которые перегружают интерфейс операционной системы;
- Отсутствие лишнего и не интересного пользователю программного обеспечения, которое включено в оригинальную прошивку;
- Возможность более тонкой настройки операционной системы Андроид и самого устройства;
- Отсутствие ошибок, которые были допущены разработчиками оригинальной прошивки;
- Более удобный и легкий интерфейс;
Кастомные прошивки делятся на несколько видов. Существуют костюмные прошивки построенные на базе официальной прошивки от производителя, а также кастомные прошивки построенные на «чистом» Андроиде от Google. И первые, и вторые имеют свои преимущества и недостатки.
Кастомные прошивки, построенные на базе официальной прошивки от производителя
Кастомные прошивки, построенные на базе официальной прошивки от производителя, отличаются высокой стабильностью работы. Большинство таких прошивок работают как часы и не вызывают у пользователя никаких неудобств. Это связано с тем, что для разработки таких прошивок была использована многократно проверенная официальная прошивка.
MummyDroid v3 кастомная прошивка для Xperia X10
Также нужно отметить, что подобные прошивки делятся на деодексированные и обыкновенные (одексированные). Существует множество споров о том, какие из этих прошивок работают быстрее. Но на практике разница между ними если и есть, то она просто мизерна, и обращать внимание на нее не стоит.
Одексированные прошивки это прошивки, в которых к каждой программе прилагается файл с расширением odex. В таких файлах содержится часть JAVA кода этой программы. Единственным недостатком, одексированных прошивок являются ограниченные возможности по замене системных файлов.
Деодексированные это прошивки, в которых программы уже включают в себя тот самый odex-файл. Это позволяет уменьшить размер прошивки и предоставляет больше возможностей по модификации программного обеспечения.
Как правило, прошивок, построенных на базе официальной прошивки от производителя, очень много и они появляются практически сразу после анонса самого Андроид устройства. Они отличаются высокой стабильностью, но при этом сохраняют многие недостатки оригинальной прошивки. Например, в таких прошивках используется та же версия Андроид, что и оригинальной прошивке
Кастомные прошивки, построенные на оригинальном Android
Кастомные прошивки, построенные на оригинальном Android или AOSP-ромы это прошивки, которые разрабатываются на базе «чистого» Андроид от компании Google. Подобные прошивки лишены всех ограничений, характерных для прошивок, построенных на базе оригинальной. Но, с другой стороны они не такие стабильные и надежные. Не редко подобные прошивки приходится доделывать самому, исправляя ошибки разработчиков.
AOSP-ромы могут иметь оригинальный интерфейс Андроид (Как на устройствах Nexus) или более продвинутый и уникальный интерфейс. Большой популярностью пользуются такие разработки как Cyanogenmod, Android Open Kang Project и MIUI. Они оснащаются продвинутым интерфейсом, совершенно не похожим на «чистый» Андроид.
В статье не хватает важной информации? Расскажите об этом в комментариях.
Источник
Что такое Модифицированные прошивки или Кастомные?
На различных форумах все чаще можно услышать «непонятные» слова как модифицированные прошивки или кастомные прошивки, что это такое и зачем узнайте в этой статье!
Что такое Модифицированные прошивки или Кастомные или Стоковые?
Стоковые прошивки — это прошивки которая была предустановлена на заводе производителе, другими словами официальная, которая не повергалась ни каким изменениям.
Модифицированная или Кастомная прошивка — это прошивка в которой есть или встроены в систему приложение и другие изменения которых нет в официальной.
Плюсы Модифицированных прошивок
- Как правило модифицированные прошивки уже имеют встроенные Root прав
- Содержат встроенный блокиратор рекламы,
- Модифицированные ядро, которое позволит разгонять процессор, что позволит увеличить быстродействие Android планшета или смартфона, либо на о борт снизить частоту что позволит дольше не заряжать устройства.
- Встроенные «полезные» и вырезанные «мусорные» приложения
- Установлены скрипты и твики влияющие на производительность или повышающие удобство использования устройства
- Как вариант измененный интерфейс
- Увеличенное количество внутренней памяти
- Возможность полного бекапа системы
Помимо плюсов есть и минусы и модифицированные прошивки не являются исключением.
Минусы Модифицированных прошивок
- Не рекомендуется новичкам или не опытным пользователям Android, в связи с более усложненным способом установки
- Различные глюки и подвивания системы (которые как правило быстро устраняются)
- Не работают какие либо приложения, функции или коммуникации (которые как правило быстро устраняются)
- Возможность «сломать» устройство из за несовместимой прошивки или спалить процессор, сильно его разогнав.
Все данные минусы не очень существенны и в основном возникают у новичков.
Что стоит попробовать из Модифицированных прошивок
Команда AOKP — данная команда выпускает прошивки максимально приближенные к Android который установлен в аппаратах Nexus (чистый, никаких либо изменений в системе)
Видео обзор AOKP
Команда CyanogenMod — данная команда выпускает прошивки с максимальной функциональностью на сколько позволяет это Android, рекомендуется всем кто любит, ни в чем в себе не отказывать!
Видео обзор CyanogenMod
Команда MIUI — данная команда выпускает самые красивые прошивки, если вы любитель красоты, эстет, минималист и очень нравится интерфейсы от APPLE
Как установить?
Если вы уверены в своих силах, знаете и понимаете Android! То пора перейти от теории к действию! Просто взять и установить модифицированную прошивку! Как? Читайте в статье — установить кастомные прошивки на Android.
У вас еще остались дополнительные вопросы? Задавайте их в комментариях, рассказывайте о том, что у вас получилось или наоборот!
Вот и все! Оставайтесь вместе с сайтом Android +1, дальше будет еще интересней! Больше статей и инструкций читайте в разделе Статьи и Хаки Android.
Источник
Модификация стоковых прошивок для 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.
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. Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.
Эпилог
Да, кому-то показалось данная статья слишком специфичной, кому-то мало-понятной, а кому-то бесполезной. Я специально обошелся без углубленной детализации и иллюстраций как это все выглядит в живую и на практике. Во-первых, данный труд будет неблагодарный и только породить еще больше вопросов. Во-вторых, не хочу видеть армию пользователей на форумах, которые жалуются, что убили свой телефон.
К следующей статье я расскажу как делать Твики. Будет пример использования автоматической записи телефонных звонков родными средствами телефона. Спасибо за ваше внимание.
Источник