Odex и Deodex — что это и в чем разница? Деодексирование и одексирование прошивок Android Deodex прошивки с помощью Jbart.

В этой небольшой заметке мы расскажем нашим читателям о деодексировании прошивок для 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 и нескольких несложных операций - мы научились получать из одексированной прошивки деодексированную, т.е. "пользовательскую". Файлы в которой каждый может модифицировать в соответствии со своими желаниями и потребностями.

Многие владельцы телефонов и планшетов на 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 прошивки как правило нужен

Что такое 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.

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

Что такое Deodex?

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

Зачастую производитель в официальных прошивках выносит этот файл за пределы прошивки, для ускорения работы и уменьшения занимаемого прошивкой объема памяти. Переход на Android 5.0 с исполняющей средой ART существенно изменил процесс запуска и установки приложений, однако само понятие odex и deodex было сохранено.

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


- Более сложный процесс модификации прошивки
+ Небольшой прирост производительности прошивки
+ Экономия места при установке программ


+ Упрощенная кастомизация прошивки
- Необходимо больше места для установки приложений

Как получить Deodex прошивку?

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

/app
/priv-app
/framework


Deodex при помощи JoelDroid Batch Deodexer

Данная утилита будет работать только с девайсами на базе Android 5.0 и новее. Также необходимо установить и скачать само приложение .


  • Распакуйте архив с утилитой ]JoelDroid Lollipop Batch Deodexer V 2.5.

  • Сохраненные ранее папки app, priv-app, framework

  • Запустите утилиту JoelDroid Lollipop Batch Deodexer, нажмите на кнопку "Browse" и укажите каталог на вашем компьютере, куда вы скопировали app, priv-app, framework

  • Нажмите на кнопку "Start Process"

Deodex при помощи Deodexer for Android Runtime

Первым делом скачайте архив и распакуйте его. Далее процесс ничем не отличается от предыдущей утилиты:


  • Сохраненные ранее папки app, priv-app, framework необходимо поместить отдельный каталог на вашем компьютере.

  • Запустите утилиту Deodexer for Android Runtime, укажите каталог на вашем компьютере, куда вы скопировали app, priv-app, framework

  • Нажмите на кнопку "Execute" и дождитесь окончания процесса деодексации.

Deodex при помощи Jbart

В отличие от предыдущих утилит, которые способны работать только с устройствами на базе Android 5.0 и выше, данная утилит не имеет привязки к ОС. Вы может сделать Deodex для любого устройства начиная с Android 2.3.x Ginerbread, заканчивая Android 6.0 Marshmallow.





Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.