Odex и deodex в чем разница
Перейти к содержимому

Odex и deodex в чем разница

  • автор:

Изучаем Android. Что такое odex и deodex

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

Что такое odex и deodex

Сегодня я попытаюсь простыми словами объяснить, что же такое odex и deodex, и зачем оно нужно.

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

Зачем же нужен этот odex-файл? Если кратко (и упрощенно), то каждая программа состоит из набора инструкций, благодаря которым она работает, и вспомогательных данных, например, картинок, которые отображаются на экране. Так вот, в файле odex и хранится сам код программы.

Все приложения в системе Android написаны (закодированы) на языке Java и для того, чтобы мозг устройства – его процессор смог выполнить этот Java код, он переводится на понятный для процессора язык виртуальной Java-машиной «Dalvik».

В деодексированной прошивке код находится внутри apk файла. Apk файлы упакованы так же, как и обычный zip файлы, поэтому деодексированная прошивка обычно имеет меньший размер.

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

Вы уже, наверное, и сами поняли, в чем преимущество odexed прошивки. Ее системные приложения уже оптимизированы для работы на конкретном оборудовании.

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

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

Кроме того, считается, что odexed прошивки работают быстрее, чем аналогичные но, деодексированные.

Похожие материалы:

Чем отличаются Odex и Deodex прошивки ?

Одекс от деодекса отличается только структурой приложений. В одексе в каждом приложении исполняемый код вынесен отдельно в файл .odex, который валяется рядом с самим приложением. В деодексе этот код упакован внутрь апкшки приложения. Экономится пространство, это раз, ну и упрощаются модификации системных приложений, их можно проще менять. Минус деодекса, и то мифический имхо — то, что при первом включении аппарата после прошивки создаётся дальвик-кэш, поэтому аппарат долго грузится. Но это происходит один раз, и в дальнейшем всё работает одинаково. Ни на что больше это не влияет, ни на честный софт, ни на производительность. Просто если приспичит поставить модифицированное системное приложение (например, прикрутят русский поиск в номеронабирателе или исправят руссую полоску в контактах), то деодексированные приложения очень просто и удобно меняются под рутом без танцев с одекс-файлами.

UnlockClub .Ru

Odex and Deodex.

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

  • Что такое ODEX (одекс) и DEODEX (деодекс) прошивки?
  • Пользовательские прошивки: в чем разница между ODEX и DEODEX?

Те пользователи для которых Java — это не только название острова, наверняка сталкивались, когда помимо обычных *.apk среди файлов прошивки можно еще обнаружить файлы с расширением *.odex, например, в папке app — для приложения отвечающего за функции телефона есть два файла — Phone.apk и Phone.odex (собственно как и для любого другого приложения, входящего в прошивку). Аббревиатура Odex расшифровывается как »Optimized Dalvik Executable File». Такой файл необходим для организации системной структуры, которая содержит информацию о приложении и позволяет Android получать доступ к этой информации напрямую, без поиска и разархивации из .apk файлов. Файлы с расширением .odex часто загружаются напрямую в Dalvik-cache, где хранятся данные о часто запускаемых программах. Это значительно ускоряет работу системы.

В одексированных (odex) прошивках приложения запускаются быстрее, т.к. заранее загружаются операционной системой, однако и модифицировать их сложнее, т.к. фактически части приложения находятся в двух разных файлах. Итак, мы разобрались, что одексированными называют «родные», заводские прошивки Android (в них каждое приложение имеет несколько файлов, *.apk и *.odex), а деодексированными, соответственно, прошивки пользовательские — в которых код и ресурсы приложения находятся в одном *.apk (код приложения находится в *.apk — к слову, это обычный zip-архив. в файле — classes.dex).

Давайте теперь разберемся, как из одексированной прошивки — получить деодексированную. Зачем это может нам понадобиться? Например для модификации приложений под свои цели и задачи, например, замены ресурсов (картинок и т.п.), или же русификации. Актуальным средством деодексирования прошивок на данный момент является jBart .

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

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

system.zip - готовим прошивку к деодексированию.

После этого можно запускать jBart и в поле ROM файл указать путь к получившемуся у нас zip-архиву:

jBart - деодекс прошивки.

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

p.s. Администрация unlockclub.ru выражает благодарность пользователю ресурса 4pda.ru — ruslan_3_ за помощь оказанную при написании данной заметки.

FIXIT-CENTER

Главная » Статьи » Прошивки: ODEX и DEODEX. Часть 2 – DEODEX.

Прошивки: ODEX и DEODEX. Часть 2 – DEODEX.

Те, кто хоть немного знаком с устройством телефонов, а именно их программным обеспечением, знают, что прошивки могут быть «родные» и не очень. В случае с операционной системой речь пойдет о прошивках Odex (Одекс) и Deodex (Деодекс).

Odex – это заводская прошивка девайсов Android, в то время как deodex относится к пользовательским прошивкам. Остановимся на каждой из них поподробнее. Вчера мы говорили о прошивке odex, сегодня расскажем, что же такое deodex.

Итак, в пользовательских прошивках deodex вся информация о приложении содержится в файле с расширением .apk. Код, существующий в файлах с расширением .odex, появляется в apk под другим именем, а именно, classes.dex.

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

К недостаткам deodex можно отнести увеличенный интервал загрузки и запуска программ – в отличие от odex, информация заранее не загружается, и для получения информации apk постоянно обращается к системе. Тем не менее, этот достаток принимать во внимание не стоит – потому что, как уже говорилось, в Dalvik-cache содержится информация о самых используемых приложениях.

Итак, подведем итоги. Заводская прошивка пригодится тем, для кого важна скорость и стабильность. Пользовательская прошивка придется тем, кто любит «апгрейдить» систему в соответствии со своими потребностями и желаниями.

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

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