Что такое deodex прошивка
Перейти к содержимому

Что такое deodex прошивка

  • автор:

Что такое odex и deodex в Android

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

Сегодня вы узнаете, что же такое odex и deodex, и зачем оно нужно.

Если вы заглянете в папку с системными приложениями system/app на вашем планшете или телефоне со стоковой (заводской) прошивкой, то непременно заметите, что все приложения имеют кроме apk-файла, его двойник, odex-файл. Например, файлу applikatoin.apk соответствует файл applikatoin.odex.

Для чего же нужен этот odex-файл? Если коротко и просто, то каждое приложение состоит из набора тех или иных инструкций, благодаря которым оно и работает, и вспомогательных данных, например, картинок, которые отображаются на экране. Вот именно, в файле odex и хранится сам код приложения.
Все программы в системе Android написаны (закодированы) на языке Java и для того, чтобы процессор устройства – его мозг, сумел выполнить этот Java код, он переводится на понятный для процессора язык виртуальной Java-машиной "Dalvik" .

В деодексированной прошивке код находится внутри файла apk. Apk файлы упакованы так же, как и обычный zip файлы,и поэтому деодексированная прошивка всегда имеет меньший размер. Но код, который содержится в файле odex оптимизирован для конкретного устройства, а код который хранится в apk файле может выполняться на любом устройстве. Вы скорее всего и сами поняли, в чем плюсы odexed прошивки. Ее системные приложения уже оптимизированы для работы на конкретном оборудовании.
Зато код, который находится в деодексированном приложении, может запускаться практически на любом android устройстве и эти программы проще модифицировать. Например, чтобы поменять в нем изображения, достаточно просто распаковать apk файл, как обычный zip архив, заменить картинки и снова упаковать приложение. С odexed приложениями такой трюк не пройдет – после подобных изменений программа перестанет запускаться вообще.

Система Андроид при первоначальном запуске системных приложений deodexed прошивки, извлекает из них код, перекомпилирует и сохраняет в специальном месте: в папке dalvik-cache и потом берет уже готовый код для нужного apk-файла из этой папки. Вот поэтому и рекомендуется при перепрошивке телефона или планшета делать очистку dalvik-cache (clear dalvik-cache) – программа в новой прошивке может измениться, а система будет при ее запуске использовать старый код. Именно поэтому так долго запускаются deodexed прошивки первый раз после их установки на android устройство и очистки dalvik-cache.
Кроме того, считается, что odexed прошивки работают быстрее, чем аналогичные но, деодексированные.

Odex : Для ускорения загрузки Dalvik VM исполняемый код (classes.dex) может быть вынесен из программ (файлов .apk) в отдельные файлы с расширением .odex. Как правило, в таком виде установлены заводские (официальные) прошивки. Недостаток такого решения — невозможность кастомизации интерфейса.
Deodex : преобразование исполняемого кода из файлов .odex обратно внутрь файлов программ (.apk). Для установки Deodex’ed прошивки как правило нужен Root и CWM Recovery .

Как узнать Odex прошивка или Deodex.

Если в папке system/app находятся только файлы с расширением APK, значит прошивка deodex, если есть файлы и с расширением odex, значит прошивка odex. Все официальные прошивки odex. Почти все модифицированные прошивки deodex, но среди модифицированных встречаются также и odex прошивки.

Деодексирование и одексирование прошивок Android. Что такое odex и deodex в Android Что такое деодексированная прошивка

Рано или поздно столкнётся с таким понятием, как Одекс и Деодекс. Особенно важно знать о них в тот момент, когда юзер решит поменять прошивку. Не все могут правильно объяснить, Odex и Deodex — что это? Иногда это мешает выбрать и установить правильное программное обеспечение на мобильное устройство. В итоге работа смартфона или планшета не оправдывает ожидания юзера. Дело в том, что всех пользователей условно можно разделить на две категории. Первая ценит стабильную, быструю и надёжную работу. Такие юзеры редко используют кастомные прошивки и на устройствах. Вторая категория, напротив, предпочитает полностью настраивать гаджет, исходя из индивидуальных потребностей. Такие пользователи часто используют кастомные прошивки, получают права root и не боятся на свой страх и риск изменять важные параметры, влияющие на работу операционной системы планшета либо смартфона. В любом случае информация о том, в чём же состоит разница между Deodex и Odex, будет полезной для всех категорий юзеров, независимо от их потребностей в использовании мобильных гаджетов и отношения к смене важных настроек.

Разница между Odex и Deodex прошивками, а также их преимущества и недостатки

Что такое Odex и Deodex?

Odex — это общее понятие, которое подразумевает заводскую прошивку мобильного гаджета, функционирующего на операционной системе Андроид. Иногда их называют одексированными. Deodex — это кастомная версия прошивки либо, как говорят некоторые, — деодексированная.

Каждая программа имеет исполнительный раздел. В кастомной операционной системе, Андроид находится в файле classes.DEX, при этом оригинальная версия содержит исполнительный раздел в виртуальной машине Dalvik Virtual Machine, что операционной системы. Odex расшифровывается как «Optimized Dalvik Executable File». Принцип работы файла Odex состоит в том, что он позволяет получать операционной системе данные напрямую, не осуществляя поиска и разархивирования информации из файлов с расширением apk.

Что такое Deodex прошивки? Это вариант программного обеспечения, при котором исполняемый раздел приложения перепакован в файл classes.dex, после чего вновь перемещён в файл apk. Это позволяет хранить все элементы программы в одном разделе, при этом снижается риск внести сбой в работу приложения во время изменения пользовательских настроек.

Узнать о том, Odex или Deodex прошивка установлена на вашем мобильном устройстве, очень просто. Для этого пользователю необходимо использовать файловый менеджер. Юзеру необходимо зайти в папку /system/app. В зависимости от того, какое расширение будет у файлов, содержащихся в папке, можно определить тип системы. Расширение odex говорит об одексированном варианте. Если вы не находите файл в системной папке, то это значит, что на мобильном устройстве установлена деодексированная прошивка.

Преимущества и недостатки

Нельзя казать однозначно, что лучше — Odex или Deodex? Оба варианта имеют свои преимущества и недостатки. Плюсы одексированной версии состоят в том, что запуск приложений осуществляется гораздо быстрее. Это становится возможным благодаря предварительной загрузке информации системой. При этом для файлов с расширением apk требуется меньше памяти устройства.

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

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

Как сделать Deodex-версию?

Существует простой способ, благодаря которому можно сделать Deodex-прошивку из одексированной. Для этого необходимо скачать и установить утилиту xUltimate. Затем нужно выполнить несколько простых действий.

Что такое Odex и Deodex?

В папке system/app Имеются файлы APK и Odex. Deodex — означает, что все файлы odex включены в APK и их в папке system/app нет. Deodex система удобна для редактирования, но считается, что она нестабильнее и медленнее, но на практике, лично у меня с ней всё в порядке. Файлы odex это упакованные модули кода dex, которые обычно лежат внутри apk. Используются Dalvic VM для ускорения запуска приложения.

Для ускорения загрузки Dalvik VM исполняемый код (classes.dex) может быть вынесен из программ (файлов.apk) в отдельные файлы с расширением.odex. Как правило, в таком виде установлены заводские (официальные) прошивки. Недостаток такого решения — невозможность кастомизации интерфейса.

преобразование исполняемого кода из файлов.odex обратно внутрь файлов программ (.apk).
Для установки Deodex"ed прошивки как правило нужен Root и CWM Recovery или другой модифицированный рекавери (TWPR, Philz Touch и т.д).

Узнать Odex прошивка или Deodex можно следующим образом.
Если в папке system/app находятся только файлы с расширением APK, значит прошивка deodex, если есть файлы и с расширением odex, значит прошивка odex. Все официальные прошивки odex. Почти все модифицированные прошивки deodex, но среди модифицированных встречаются также и odex прошивки.

Что значит поставить Deodex?
Допустим вы уже для своей прошивки, либо сделали, либо нашли те самые deodex файлы. Теперь вам нужно залить их в папку system/app, но просто через проводник их заменить нельзя, так как система в данных момент может их использовать. Для этого есть готовые файлы. Они(файлы) помещаются в специальный ZIP архив со скриптом для mod recovery(этот скрипт можно написать самому), и вам остаётся через любой модифоцированный рекавери поставить этот архив по инструкции по установке zip файлов

Этот ZIP архив представляет собой архив с файлами deodexed, и с инструкцией по установке через мод. рекавери. Если у вас стоит русификатор, то после установки deodexed слетит русский, ничего страшного, русский просто нужно будет поставить заново. Так происходит потому что в андроиде язык интерфейса описывается XML файлом, который содержится в apk. Русификация происходит добавлением русских xml в apk, а при установке русификатора в вашей системе просто заменяются старые апк на новые русифицированные. Установка русификатора осуществляется таким же ZIP для мод. рекавери как и deodexed. Русифицированные файлы уже deodexed, потому что odex файлы мы не можем редактировать. Архивы deodexed, которые у нас имеются, берутся с иностранных сайтов, поэтому русского в них нет, поэтому после их установки приходится заново устанавливать русификатор.

После установки deodexed, восстанавливаются и заменяются все системные приложения, всё по той же причине описанной выше. Поэтому удаление системных файлов нужно осуществлять после установки deodexed.

Каждый из вас не раз слышал слова «deodex» или «odex». Обычно, они встречается там, где выкладываются различные прошивки для вашего устройства, например, на XDA-Developers или 4pda. Так что же значит, это DEODEX или ODEX? В чем же их отличия? Как сделать DEODEX? Ответы на эти и другие вопросы вы найдете в очередном выпуске дайджеста «Что такое. ».
Odex (Optimized Dalvik Executable File) — это файл, находящийся в одной папке с системными приложениями, который хранит в себе код самой программы. Как известно, каждой программе необходима инструкция, благодаря которой, она (программа) будет выполнять ту или иную функцию, работу. Именно это и есть код программы, о котором я рассказал ранее. При желании модификации какого-либо системного файла вам нужно будет при odex-прошивке «копаться» и в самом odex-файле, и в.apk. Отсюда становится ясно, что процесс этот будет весьма не легким. Именно по этой причине была реализована возможность deodex-прошивки.

Как вам уже известно, в при odex прошивке файлы хранятся «вразброс». Однако при deodex такого беспорядка, так сказать, нет. Все файлы в deodex хранятся подобно.zip архиву, но в нашем случае «запакованы» в.apk. По этой причине разбирать приложение для дальнейших модификаций становится легче, и из-за того, что все запаковано в одном месте, deodex-прошивка, может быть, будет занимать меньше места.

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

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

Наверное, при таком раскладе смысл терминов ясен. И готов поспорить, что некоторым уже захотелось попробовать deodex. Инструкций по deodex прошивки в Мировой Паутине огромное количество. Однако отправлять вас искать в Google их я не посмею, а просто молча напишу весь этот процесс, стараясь выделить все мелочи.

Инструкции под разные версии Android не одинаковые. По причине того, что на моем девайсе установлена версия Android 5.0 Lollipop, я напишу инструкцию по deodex именно для этой версии.

  1. Для начала нам нужно скачать на свой ПК специальную утилиту JoelDroid Lollipop Batch Deodexer. Для работы данной утилиты необходима программа Java . Отмечу, что в частых случаях, приложение Java неправильно и некорректно прописывает себе путь. По этой причине, вам необходимо собственно ручно прописать этот путь по этой инструкции .


Вполне считаю, что самое основное про термины ODEX и DEODEX я рассказал, и на этом статью можно закончить. Всех благодарю за внимание, прошу оценить статью, всем удачного дня и удачного ЛЕТА!

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

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

1 . Сперва нам надо взять оригинальный DEODEX JAR файл, который отвечает за нужную нам часть кода. В нашем случае HTCExtension.jar .
2 . Открыть любым архиватором и вытащить от туда classes.dex
3 . С помощью конвертера dex2jar преобразовать его в JAR файл. Команда: dex2jar.bat classes.dex
4 . Открыть полученный classes_dex2jar.jar файл в JD-GUI.
5 . Да, чаще всего JD-GUI декомпилирует код не так как он выглядит в оригинале, оно и понятно, но читать вполне можно. В исходнике мы видим, что подпрограмма проверяет параметры проекта и языковой флаг прошивки. В нашем прискорбном случае возвращается значение TRUE.
public static boolean isChina() < if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return true; return false; >
6 . Чтобы сделать патч, нам надо дизассемблировать сам Dalvik код. Для этого используем baksmali. Удобнее всего создать отдельную папку и положить туда три файла вместе: HTCExtension.jar , smali.jar и baksmali.jar . Даем команду java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

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

В моем случае это была команда
java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar
7 . В нашей вновь созданной папке появилась папка HTCExtension, а в ней наши файлы с Dalvik кодом.
8 . Отыскиваем файл по пути \com\htc\util\contacts\BuildUtils$Customization.java и смотрим код:
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xd8 if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x17 if-ne v1, v2, :cond_14 .line 297:cond_13:goto_13 return v0 .line 283:cond_14 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-eq v1, v2, :cond_13 .line 291:cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 297 const/4 v0, 0x0 goto:goto_13 .end method
9 . Страшно, не правда ли? Ничего же не понятно. Но, это дело поправимое. Создав несколько своих патчей и набив тем самым руку, вы легко сможете модифицировать код без сторонних средств. В нашем случае, в этом коде
.prologue const/4 v0, 0x1 происходит присваивание переменной v0 значение 1, то есть TRUE. Далее идут всякие проверки, и если телефон не китайский, то значение переменной изменяется:
.line 297 const/4 v0, 0x0 goto:goto_13
10 . Самый простой способ спасти отца русской демократии, это изменить код на следующий:
.prologue const/4 v0, 0x0 , то есть поменять значение переменной с 1 на 0. То есть что бы ни было, всегда бы возвращалось значение FALSE и в JD-GUI код выглядел бы как public static boolean isChina() < if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag == 23)); while (((HtcBuildFlag.Htc_PROJECT_flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) return false; return false; >
11 . Да, метод,будет работать. Но мы же не ищем легких путей — это раз. Во-вторых не совсем красиво. Хочется кода что-то вроде
public static boolean isChina() < return false; >
12 . А как нам получить Dalvik код данного исходного кода? Для новичков мы сделаем небольшой трюк.

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

1 . Открываем Android SDK.
2 . Создаем новый проект, и в наш единственный тестовый класс пишем следующий код
package ru.habrahabr.test; public class test < public static boolean isChina() < return false; >>
3 . Компилируем наш проект и затем берем собранное приложение из рабочей области.
4 . Кладем собранное приложение в папку, где мы с вами потрошили JAR файл.
5 . Даем команду java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Мы дизассемблировали только что собранное приложение в Dalvik код.
7 . Открываем наш файлик test.smali и видим там код
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end method
8 . Все, код для патчинга готов.

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

1 . Dalvik код замусорен маркерами, указывающими строку кода в оригинальном исходном файле. Это нужно при выводе ошибок, если таковые имеются в вашей программе. Без указаний строк код также прекрасно работает.
2 . Удаляем строки с нумерацией строк, копируем и заменяем метод (подпрограмму) в нашем \com\htc\util\contacts\BuildUtils$Customization.java файле.
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end method
3 . Сохраняем файл. Да, забыл сказать, редактор нужен нормальный, например Notepad++ или EditPlus. Кому какой нравится.

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

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

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

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

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

Adb push HTCExtension.jar /sdcard/HTCExtension.jar adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard/HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@[email protected]@classes.dex reboot

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

2 . Спасибо что дочитали до этого пункта, осталось немного.
3 . После перезагрузки ваш новый патченный код вступит в силу.
4 . Если код не работает или выскакивает ошибка, то путем не хитрых комбинаций можно вернуть назад резервную копию.
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@[email protected]@classes.dex reboot

Эпилог

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

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

P.S. Если что-то не понятно или смущает, задавайте вопросы — всегда буду рад ответить и пояснить.

В этой небольшой заметке мы расскажем нашим читателям о деодексировании прошивок для Android с помощью jBart, а также о разнице между ODEX (одекс) и DEODEX (деодекс) прошивками. Для начала давайте разберемся что же понимается под терминами odex / deodex, обратившись для этого по следующим ссылкам:

На момент написания этой заметки актуальной версией была jBart v1.8.9 — "Программа предназначена для автоматизации процесса перевода прошивок на базе ОС Андроид. Поддерживаются версии Андроид от 2.х.х до 4.х.х (включая Андроид 4.4 KitKat). Ядро программы составляет модифицированный apktool. Кроме перевода прошивок присутствует возможность деодексирования прошивок, а также работа с одиночными apk и jar файлами из прошивок."

Не затягивая повествование надолго — перейдем к практическому примеру. "Тренироваться" мы будем на прошивке от МТС о котором мы писали не так давно. Первым шагом мы тем или иным образом должны скачать с планшета папки /system/app и /system/framework, а также файл build.prop. который можно найти в папке system. Для копирования некоторых из частей прошивки возможно потребуются права root (на Oysters T7V 3G их с легкостью можно получить при помощи приложения motochopper , которое вы без труда сможете найти в поисковиках). После того как мы скачали необходимые файлы и папки — размещаем их в каталоге system и запаковываем в архив — system.zip , таким образом, чтобы корень архива содержал папку system, а уже внутри нее были подпапки app, framework и папка bulid.prop:

Выбираем корректную версию ROM API (т.е. версию Android), в нашем случае — это 4.2.x, нажимаем кнопку Deodex и ждем. По завершении операции архив с деодексированной прошивкой будет лежать в jBART-master\output\deodexed_system.zip. Как видно, файлы прошивки уже не содержат файлов.odex, а только.apk. Теперь можно переходить к их модификации, переводу, редактированию и т.п. изменениям. Но это уже тема совершенно для другой заметки. Подводя итог, отметим, что с помощью jBart и нескольких несложных операций — мы научились получать из одексированной прошивки деодексированную, т.е. "пользовательскую". Файлы в которой каждый может модифицировать в соответствии со своими желаниями и потребностями.

Деодексирование андроид прошивок

ODEX

В данной статье я расскажу вам о том что такое деодекс и для чего он нужен.

Введение:

Думаю все пользователи Android смартфонов прошивали свои аппараты и сталкивались с такими терминами как одексированная прошивка и деодексированная. Как правило во всех официальных прошивках системные .apk файлы сопровождаются аналогичным по названию файлом .odex, в котором хранится часть ресурсов .apk файла. Данное обстоятельство сводит к минимуму возможность редактирования системных файлов прошивки в плане графики и не только. То есть изменив системный .apk (либо через терминал, либо при помощи обычного архиватора), и поместив его в с систему обратно в 99% вы получите падение системы и все выходящие из этого проблемы.
В отличии от одекс прошивки, в деодексированной версии вы сможете без болезненно и отредактировать любой системный файл (с умом естественно) и не получить крах системы и прочие вытекающие проблемы. То есть это даёт нам большие возможности в изменении интерфейса системы.

Как деодексировать прошивку:

Способ №1

1 в первую очередь необходимо установить Java SDK
2 Так же потребуется установленный Android SDK
3 Скачать прикреплённый ниже архив и распаковывать в корень диска С
4 Скопировать папку system/app с телефона на компьютер
5 Скопировать папку system/framework с телефона на компьютер
6 Затем скопировать файлы:

  • из папки system/app в папку распакованного Deodex origi_app
  • из папки system/app в папку распакованного Deodex comp_app
  • из папки framework в папку распакованного Deodex origi_frame
  • из папки framework в папку распакованного Deodex comp_frame

7 После того как всё было скопировано, запускаем deodex-app.bat (что приведёт к деодексированию файлов в папке origi_app)
8 После окончания процесса запускаем deodex_frame.bat (что приведёт к деодексированию файлов в папке origi_frame)
9 Затем запускаем zip_em_app.bat (Данная команда упакует файлы app в папке done_app)
10 После чего запускаем zip_em_frame.bat (Эта команда упакует framework в папку done_frame)
11 По завершению процесса копируем файлы из папки done_app в папку comp_app и все файлы из папки done_frame в папку comp_frame
12 После чего удаляем все файлы с расширением .odex в папках comp_app и comp_frame

Способ №2

1 Также необходимо установить Java SDK
2 И потребуется установленный Android SDK
3 Качаем ниже прикреплённый архив и распаковываем папку Deodex в корень диска С.
4 Скопировать папку system/app с телефона на компьютер по пути C:/Deodex
5 Скопировать папку system/framework с телефона на компьютер по пути C:/Deodex
Затем необходимо настроить саму программу для деодексирования.
1 Для этого переходим по пути C:/Deodex/jar и находим там файл frame_dep.txt, открываем его блокнотом и прописываем путь заранее перемещённой к папке Framework. И там же находим файл app-dep.txt в котором прописываем путь к папке app.
2 После чего поочерёдно запускаем файлы auto_app.exe и auto_frame.exe, естественно дожидаясь выполнения операций, и забираем свои деодексированные .apk из вышеупомянутых папок, при этом не трогая файлы с расширением .odex
Пример пути в .txt файлах:
C:/Deodex/Framework
C:/Deodex/app

Способ №3

Самый простой и надёжный, при помощи мощного комбайна, скачать который и ознакомиться с его функционалом можно здесь — > https://burgerz.pro

На этом деодексирование закончено. Теперь можете либо переместить готовые файлы в телефон либо в zip архив с прошивкой удалив при этом все напоминания о .odeх файлах.

Статьи по теме APK:

  • Что такое APK?
  • Необходимые инструменты для работы с APK
  • Как устанавливать приложения для Android с расширением apk
  • Как удалить приложения (программы, игры) на android?
  • Как скачивать и покупать приложения с Google Play
  • Что такое root в Android?
  • Структура APK файла
  • Разборка (декомпиляция) APK файла с помощью Apktool
  • Локализация файла APK
  • Упаковка APK приложения и подпись (компиляция и подпись)
  • Выбор места установки приложения APK
  • Редактирование и замена иконок в APK
  • Узнаем какие права у приложения APK
  • Как извлечь установочный файл с приложением (.apk) из системы
  • Как удалить рекламу из приложений APK
  • Как скачать приложение APK на компьютер с Google Play
  • Какие встроенные (системные) приложения Android можно удалить
  • Деодексирование системных приложений в Андроид
  • Как редактировать системные apk
  • Как получить исходный код приложения с расширением Apk
  • Одексирование Android приложений
СКАЧАТЬ:

deodex 2.zip (архив для 2-го способа) [Размер файла — 10,3 Mb] 2013-08-26 09:53
deodex 1.zip (архив для 1-го способа) [Размер файла — 10,1 Mb] 2013-08-26 09:47

Что такое прошивка? Определение и типы

BIOS

Обновлено 28.06.2019

Firmware , более известная как программное обеспечение для аппаратного обеспечения ’, представляет собой программу, встроенную в такое оборудование, как клавиатура, жесткий диск, BIOS или видеокарта. Он предназначен для предоставления постоянных инструкций для связи с другими устройствами в системе и выполнения таких функций, как основные задачи ввода/вывода.

Что такое прошивка

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

Типы прошивок

BIOS

Первое, что оживает после включения компьютера – это BIOS. Он может взаимодействовать с оборудованием и проверять наличие неизвестных ошибок. Затем он сигнализирует о другой программе, называемой загрузчиком, которая выполняет функцию пробуждения операционной системы, спящей внутри жесткого диска, и помещает ее в оперативную память. Таким образом, BIOS несет основную ответственность за обработку аппаратных компонентов вашего компьютера и обеспечение их правильной работы. Хотя низкоуровневое программное обеспечение хорошо, оно оставалось практически неизменным в течение последних двух десятилетий, и в связи с этим оно становится устаревшим и не поддерживает современные технологии. Например, BIOS по-прежнему использует 16-битный код, в то время как большинство ноутбуков и ПК используют 32- и 64-битный код.

EFI

EFI, сокращенная форма Extensible Firmware Interface, представляет собой спецификацию системного встроенного ПО нового поколения, которая предоставляет первые инструкции, используемые ЦПУ для запуска аппаратного обеспечения, и передает управление загрузчику. EFI, иногда также называемый Unified Extensible Firmware Interface (UEFI), имеет определенные преимущества перед BIOS. Например, это помогает гарантировать, что ваш компьютер загружается с использованием только программного обеспечения, которому доверяет производитель ПК, т. Е. Поддерживает функцию «Безопасная загрузка» для повышения безопасности.

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

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

Читать . Проверьте, использует ли ваш компьютер BIOS или UEFI.

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

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

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

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

Читать . Как обновить BIOS.

Разница между прошивкой и программным обеспечением

Часто слово «Прошивка» и «Программное обеспечение» используются взаимозаменяемо, то есть как отдельная или совокупность компьютерных программ, назначенных для какой-либо задачи на компьютере. Но в действительности именно работа определяет корни этих категорий (прошивки и программное обеспечение), в которые мы их помещаем.

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

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

Надеюсь, это объясняет, что означает прошивка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *