Как деодексировать приложение apk
> tools\bin\sdkmanager.bat --list
build-tools;25.0.2 | 25.0.2 | Android SDK Build-Tools 25.0.2
build-tools;25.0.3 | 25.0.3 | Android SDK Build-Tools 25.0.3
cmake;3.6.3155560 | 3.6.3155560 | CMake 3.6.3155560
> tools\bin\sdkmanager.bat "build-tools;25.0.3" "platform-tools"
Далее получаем на руки apk-шку, которую будем препарировать. Название пакета можно взять из адресной строки браузера, открыв страницу с программой на Play Market. Далее ищем и вытаскиваем архив через adb (root не требуется).
Пусть например, для программы "Sample Foobar" имя пакета будет com.example.foobar
> adb devices
List of devices attached
> adb shell "pm list packages -f -3 | grep com.example.foobar"
> adb pull /data/app/com.example.foobar-1.apk
/data/app/com.example.foobar-1.apk: 1 file pulled. 3.0 MB/s (39955506 bytes in 12.719s)
> java -jar apktool_2.2.2.jar d -o foobar_src com.example.foobar-1.apk
> dex2jar-2.0\d2j-dex2jar -os -ts -r com.example.foobar-1.apk
На выходе имеем com.example.foobar-1-dex2jar.jar. Запускаем jd-gui и открываем в нем этот jar:
> java -jar jd-gui-1.4.0.jar
Можно изучать код прямо в jd-gui, а можно экспортировать весь Java-код через меню File -> Save all sources.
После того, как поизучали, добавили нужное и удалили ненужное, собираем обратно smali в apk:
> java -jar apktool_2.2.2.jar b -o foobar_unaligned.apk foobar_src
Выравниваем запакованные файлы по 4-байтовой границе:
> build-tools\25.0.3\zipalign 4 foobar_unaligned.apk foobar_fixed.apk
> keytool -keystore android_keystore.jks -genkey -alias recompile
Далее подписываем apk, используя сертификат из своего keystore. Указываем такое же значение min-sdk-version, как указано в исходнике foobar_src\apktool.yml, в параметре minSdkVersion:
> build-tools\25.0.3\apksigner sign --ks android_keystore.jks --min-sdk-version 14 foobar_fixed.apk
Перед тем, как ставить обновленную apk, надо вручную удалить оригинальную программу, если она установлена, так как оригинал и переделанная версия подписаны разными ключами.
А мне было полезно, плюсану
думаю тут будет актуален тег "реверс-инжиниринг".
на 4пда, этих памяток .
ТС, Пикабу вообще то не личная записная книжка если что.Яндекс погода
Никогда особо не парился по поводу памяти в телефоне, но тут решил посмотреть список приложений с фильтрацией по размеру.
Спотифай - ладно, слушаем с женой музыку, сохраняем, один общий плейлист в машине.
2ГИС - многовато для приложения, использующего векторную графику для построения карт без фото-подложки как у Яндекс карт к примеру, но тоже ладно, москва+глобальная карта в любом случае сейчас+еще пара регионов и по ним путеводители с фоточками имеются, так что простительно.
Вконтакте - тоже все понятно, это уже целый комбайн с мини приложениями, огромным функционалом, музыкой и тонной контента.
Но вот Яндекс погода? Какого хрена? Единственное назначение этого приложения - это небольшой виджет на экране который дает мне немного информации. Ладно там есть еще карта осадков на макетной подложке. И всё.
Лучше один раз увидеть
Протестировал, проверил вроде всё что можно. ))
Сегодня пишет пользователь - "при вводе данных - приложение выбрасывает".
Ок, опять тестирую, проверяю на разных телефонах - работает.
По логам - чисто.
Присылают видео - действительно выбрасывает.
И тут, пригляделся внимательнее.
Пользователь вводит число заканчивающееся на ноль, промахивается и нажимает на кнопку сворачивающее приложение.
Уфффф. Расследование окончено. :)
Автономность
Нужен ещё параметр для учёта температуры на улице
Войти в айти. Часть 5
Привет, Пикабу! Да, да.. это очередной пикабушник с кризисом среднего возраста, который вдруг осознал и понял, что с детства мечтал быть программистом. Давненько не было отчёта о моём пути в профессиональный мир разработки. Если вдруг Вам интересен мой опыт, то предыдущие срезы тут:
Вкратце, с чего всё начиналось:
0) Увольнение с военной службы по контракту
2) Высшее образование (заочное) по направлению "Информатика и вычислительная техника"
3) Выучил Java, сейчас изучаю Kotlin и Swift
4) Есть несколько карманных проектов в Play Market, всё довольно простенькое, но стараюсь развивать
5) Женат, детей нет, кот есть
6) В it не работал
Цель - к декабрю 2020 набрать в сумме 1.000.000 загрузок на Android, выучить Swift и выпустить приложение на ios.
Первый пост был написан 10 месяцев назад, в котором я ставил себе рубеж - декабрь 2020. Но не дотянув 2 месяца я схожу с дистанции. Причина этому довольно меркантильная, но приятная - пора устроиться на работу, нужны деньги так как ждём пополнения.
Давайте подведу итоги того, что я имею на данный момент:
- Выучен язык программирования и технологии, позволяющие писать под Android всё, что приходит в голову. Ограничен только временем. На любой вопрос уже есть ответ, стоит только почитать, поэкспериментировать, вникнуть.
- На создании собственных приложений жить можно. Деньги не большие, но на жкх и холодильник хватает. Доход постоянно растёт, если не останавливаться, создавать что-то новое и поддерживать старое.
- Физкультура важна не менее умных книг. Мало движения - тает мотивация, появляется прокрастинация.
- 1.000.000 загрузок набрать не удалось. Цифры гораздо скромнее. На данный момент в сумме загрузок около 240.000, активных пользователей в сумме по приложениям около 83.000
- если из 100 скачавших приложение человек 30 не удаляют его, то это вполне хороший показатель, значит его можно и нужно развивать!
- гайды создания интерфейсов не всегда работают. Порой плюнув на рекомендации корпораций можно сделать что-то, что "зайдёт" людям.
- после 30 на работу в it устроиться можно!
В последнем своём приложении я собрал весь накопленный опыт и понял, что теперь не стыдно рискнуть пройти собеседование. Казалось бы, всего лишь блокнот. Но мне так понравилось работать над деталями, и пробовать новые технологии при работе над ним, что я могу говорить теперь об этом часами. Оказывается, что к созданной тобой программе можно испытывать чувства привязанности и симпатии, что-то вроде любви к своему питомцу. Странно это=)
Результаты по Android меня вполне удовлетворили, чего не сказать о ios. Времени и сил не хватило на всё, буду заниматься им в рамках общего развития. Надеюсь что к весне смогу сделать что-то простенькое.
Если мечтаете сменить род деятельности, выделите время, составьте план, определите сроки и вперёд! Другой жизни не будет, а занятие любимым делом профессионально - это очень, очень круто!
Русская азбука Mорзе для Андроид
Впечатлившись произведениями Павла Кучера решил изучить морзянку.
Да и вообще морзянка всегда может пригодиться, например можно гудком автомобиля сказать пешеходу, что про него думаешь. Или подсказать кому то правильный ответ морганием глаз или пожатием руки или покашливанием.
Нашёл неплохие программы по изучению для PC. Но за компьютер лишний раз сесть некогда и стал искать, что есть под андроид для обучения русской азбуке морзе. Выяснилось, что нет ничего. Т.е. что-то якобы есть, но по факту это оказывались или трейнеры для отработки того, что уже умеешь или справочники или что то типа превратим ваш текст в морзянку.
Я не программист, но пробовал как то писать на Яве под андроид программку для своих детей для обучения математике и игре в математику. И вроде получилось. Ну думаю попробую и тут написать, дело то нехитрое. Оказалось, что дело очень даже хитрое, ибо эта Ява под андроид не умела даже то, что делал мой ZX Spectrum в прошлом веке. Там можно было задать частоту звука и его длительность и наслаждаться прослушиванием. Тут же для получения нужного звука приходилось программировать по точкам синусоиду с которой будет колебаться динамик устройства.
В общем думал справлюсь за несколько вечеров, но шли дни, недели, месяцы. Программа рождалась в муках, справочного материала на Яве под Андроид на русском ничтожно мало, на форумах помогают плохо. И повторюсь, что я вообще не программист. В итоге, когда доделал, то понял, что программке пропадать грех, ибо аналогов то нет. Решил уж потратить ещё несколько вечеров на оформление и выкладывание для всеобщего использования на Google Play и 4PDA.
Программа полностью бесплатна и не содержит рекламы.
Поэтапное изучение знаков азбуки Морзе на приём и на передачу по методике близкой к методике ДОСААФ СССР. Приложение можно использовать и в качестве игры из двадцати уровней с увеличивающейся сложностью.
После прохождения десяти уроков останется не только удовлетворение от пройденного, но и базовый опыт приёма и передачи букв и цифр посредством азбуки Морзе. Воспользовавшись режимом тренировка можно будет отработать приём и передачу отдельных символов до автоматизма.
Изучать морзянку с использованием компьютера обычно некогда, а телефон или планшет всегда под рукой, желательно только иметь наушники, чтобы не мешать окружающим.
Приложение активно скачивается, почти 65 тысяч установок. В основном людям нравится. Правде не все андроид устройства одинаково полезны. На некоторых есть проблемы на "приём", у Явы есть особенности проигрывания звуков. Так, что у кого не пойдёт - не обижайтесь. Буду не против, если кто-то возьмёт за основу и перепишет программу профессионально.
Batch ApkTool
версия: 3.7.5
Последнее обновление программы в шапке: 23.12.2020
Краткое описание:
Утилита для правильной перекомпиляции APK-файлов.
Описание:
Представляю вниманию коллег свою утилиту для работы с файлами APK. Несмотря на свой скромный интерфейс, утилита превосходит большинство аналогичных приложений по качеству работы и удобству использования, поскольку она разрабатывается в тесном сотрудничестве с профессионалами по модификации Android-приложений, а также с головой и руками.
РЕКОМЕНДАЦИИ:
Перед использованием ВНИМАТЕЛЬНО прочитайте readme.txt в архиве с утилитой.
ВСЕГДА используйте последнюю версию утилиты.
Если файл не разбирается\не собирается, попробуете выбрать более старую, или наоборот, более новую версию apktool. Помните, что собирать нужно той же версией apktool, которой разбирали. Также убедитесь, что это не ваш случай.
ВСЕГДА прикладывайте лог (полностью весь, а не только кусочек с ошибкой) и сам файл (с фреймами) - тогда вам ответят быстрее и точнее.
Также вполне вероятно, что решение вашей ошибки уже найдено и описано в посте Решение ошибок из лога BatchApkTool (apktool) .
Прогресс разработки apktool можно отслеживать здесь
Предыдущие версии apktool находятся здесь
от Mr Ikso
от edit_check
от Mr Ikso
от tilks
от tilks
от Sankakotik228
от tilks
от tilks
от tilks
от Mr Ikso
от tilks
от tilks
от tilks
от tilks
от tilks
от unix3d
от Mr Ikso (предыдущие версии v1-v6c от Anteiku)
от Andycar
от Andycar
от Alex.Strannik
от nopbreak
от nopbreak
от Alex.Strannik
от Alex.Strannik
от Alex.Strannik
от GodKiller_222
от GodKiller_222
от LEXA0857
от 799
от Lordhmen
от 799
от 799
от nopbreak
от 799
v3.7.9 DONATE
- Обновлен apktool (2.5.1_20201211), smali (2.4.0_20200330), jadx (1.2.0-b1456), Python (3.7.9), Java (11.0.9).
- Добавлена деодексация Android 10.
- Обновлен плагин BuildApkTool 1.1: добавлена компиляция smali и baksmali.
- Обновлен плагин UnpackerFirmware 1.7.0 RC: добавлена поддержка "Super partitions image".
- Обновлен плагин UnicodeEscape2UTF8 v1.0.4.
- В настройки добавлена опция выбора версии AAPT (AAPT1, AAPT2 или AUTO).
- В расширенные настройки добавлена опция "Добавлять порядковый номер к имени выходного файла, вместо перезаписи"
- Удалён декомпилятор luyten, для просмотра java-кода рекомендую плагин BytecodeViewer.
- Различные исправления и доработки.
v3.7.8 DONATE
- Обновлен apktool (2.4.1), smali (2.3.4), jadx (1.0.0-b1166), luyten 0.5.4 (procyon 0.5.36), dex2jar (2.1_20190905), Java (11.0.5), Python (3.7.5).
- Добавлен плагин BuildApkTool 1.0: скачивание и компиляция последних версий ApkTool из исходников.
- Обновлен плагин remove_classes_dex 1.5.1: добавлено логирование выполняемых операций.
- Во всех операциях с JAR-файлами теперь применяется выравнивание. Может помочь, если после деодексации или редактирования JAR-файлов прошивка не стартует.
- При использовании проектов не работает деодексация Android 9. Исправлено!
- Добавлен венгерский язык от gidano. Спасибо!
v3.7.7 DONATE
- Обновлен apktool (2.4.1_0303), smali (2.2.6), jadx (0.9.0-b656), vdexExtractor (0.5.3_1108), luyten 0.5.4 (procyon 0.5.33), Python (3.7.2), Java (8u201).
- Обновлен плагин ColorPicker 1.1: добавлена регулировка прозрачности интерфейса.
- Исправлены некоторые ошибки.
v3.7.6 DONATE
- Добавлена возможность быстрого выбора подпунктов меню, т.е. вместо 7 -> 1 можно набрать 71.
- В расширенные настройки добавлена опция выбора схемы подписи APK (v1 или auto).
- Обновлен smali (2.2.5_1008), zipalign.
- Исправлена деодексация Android 9.0 на компьютерах со старыми процессорами, в которых отсутствуют инструкции SSE4.2.
- Исправлены некоторые ошибки.
v3.7.5
- Обновлен apktool (2.5.1_20201211), smali (2.4.0_20200330), jadx (1.2.0-b1456), Python (3.7.9), Java (11.0.9).
- Добавлена деодексация Android 9.0 - 10.0
- Обновлен плагин UnpackerFirmware 1.7.0 RC: добавлена поддержка "Super partitions image".
- Обновлен плагин remove_classes_dex 1.5.1, UnicodeEscape2UTF8 v1.0.4.
- Для подписи теперь используется apksigner.jar: добавлена поддержка APK Signature Scheme v2-v3.
- В настройки добавлена опция выбора версии AAPT (AAPT1, AAPT2 или AUTO).
- В расширенные настройки добавлена опция "Добавлять порядковый номер к имени выходного файла, вместо перезаписи"
- Удалён декомпилятор luyten, для просмотра java-кода рекомендую плагин BytecodeViewer.
- Различные исправления и доработки.
v3.7.4
- Обновлен apktool (2.4.1), smali (2.3.4), jadx (1.0.0-b1166), luyten 0.5.4 (procyon 0.5.36), dex2jar (2.1_20190905), Java (11.0.5), Python (3.7.5).
- Во всех операциях с JAR-файлами теперь применяется выравнивание. Может помочь, если после деодексации или редактирования JAR-файлов прошивка не стартует.
- Транслятор байт-кода Dalvik в байт-код JVM enjarify заменен на dex2jar.
- Исправлены некоторые ошибки.
v3.7.1
- Обновлен apktool (2.3.4_0503), oat2dex (0.90_0420), jadx (0.7.2 build 429), UnpackerFirmware 1.4.4, Java (8u171).
- Ускорено отображение и сохранение логов Logcat (примерно в 3 раза).
- Добавлено сохранение лога от предыдущей перезагрузки (last).
- В расширенные настройки снова добавлена опция деодексации Android 6 и выше через oat2dex (быстрее, чем через baksmali, но возможны ошибки).
- Опция в расширенных настройках "Сохранять оригинальный AndroidManifest.xml" по умолчанию теперь имеет значение НЕТ.
- Исправлены некоторые ошибки.
v3.7.0
- Batch ApkTool теперь 64-х битный! Для 32-х битных Windows (и Windows XP) будет выкладываться отдельная версия.
- Обновлен apktool (2.3.3_0413), jadx (0.7.2 build 427), oat2dex (0.90), python (3.6.5), adb, zipalign.
- Добавлена деодексация Android 8.1 (при помощи утилиты vdexExtractor).
- Добавлен плагин UnpackerFirmware от unix3d для распаковки образов прошивок (взамен устаревшего SDATunpacker).
- Все пункты "ОТМЕНА" в меню Batch ApkTool теперь выбираются цифрой 0.
v3.6.9
- Обновлен apktool (2.3.2), smali (2.2.3), enjarify (0329), jadx (0.7.2 build 413), Java (8u161).
- В расширенные настройки добавлена опция включения экспериментальной поддержки aapt2 (только для apktool 2.3.2 и выше).
- Исправлены некоторые ошибки.
v3.6.8
- Обновлен apktool (2.3.1), smali (2.2.2), Java (8u151).
- Добавлено отображение времени, затраченного на декомпиляцию / рекомпиляцию.
- Исправлено определение версии Java 9.
- Из дистрибутива удалён apktool 1.5.2.
v3.6.6
- Обновлен apktool (2.2.3), smali (2.2.1), luyten 0.5.3, sdat2img (2017-01-04), Java (8u131).
- Добавлена деодексация Android O.
- Удалена возможность деодексации Android 6 и выше через oat2dex.
v3.6.4
- Обновлен apktool (2.2.2), smali (2.2_0108), enjarify (0122), luyten 0.5.0 (procyon 0.5.32), sdat2img (2016-11-23), Java (8u121).
- В дистрибутив добавлен плагин FindFramework.
- Исправлено извлечение из архивов sqsh файлов с одинаковыми именами, но в разном регистре, во время деодексации.
v3.6.3
- Обновлен apktool (2.2.2_1023), smali (2.2_1024).
- Добавлена поддержка API Level 25 (Android 7.1 Nougat Preview).
- Исправлена подпись некоторых APK-файлов.
v3.6.1
- Обновлен apktool (2.2.1_0819), enjarify (0831), luyten 0.4.9 (procyon 0.5.32), плагин SDATunpacker (1.0.1).
- Оптимизирован алгоритм деодексации API level >= 23 через baksmali.
- Добавлена поддержка деодексации файлов odex*.sqsh.
- Существенно ускорен и улучшен алгоритм поиска симлинков (поддерживаются симлинки после распаковки образов программой Rom Helper).
- Добавлена опция включения/выключения удаления симлинков после деодексации (в расширенных настройках).
v3.6.0
- Обновлен apktool (2.2.0), luyten 0.4.8 (procyon 0.5.32), Java (8u101).
- Добавлена папка _system для деодексации прошивок.
- Добавлено автоматическое определение API Level, если в папке _system есть файл build.prop.
- Лог деодексации вынесен в отдельный файл log_deodex.txt
- Файлы симлинков теперь удаляются после деодексации (код симлинков для updater-script сохраняется в конце лога деодексации).
- Ускорена рекомпиляция в экспертном режиме при большом количестве изменений в декомпелированном файле.
- В дистрибутив добавлен плагин SDATunpacker.
- Удалены старые версии oat2dex.
- Различные улучшения и исправления.
v3.4.5
- Обновлен apktool (2.1.1), smali (2.1.2_0424), oat2dex (0.87_0426), luyten 0.4.7 (procyon 0.5.32), Java (8u91).
- Изменен метод деодексации Android 6.0.
- В дистрибутив добавлен плагин CopyBack.
v3.4.4
- Обновлен apktool (2.1.0), oat2dex (0.86_0316), Java (8u77).
- Добавлена деодексация Android N.
- Ошибка деодексации boot.oat теперь не прерывает процесс деодексации.
v3.4.3
- Обновлен apktool (2.1.0_0229), oat2dex (0.86_0226), smali (2.1.2_0228), Java (8u73).
- Добавлено копирование папок /system/app, /system/priv-app, /system/framework из устройства в папки утилиты (п. 13 -> 4).
- Исправлена обработка некоторых файлов с нестандартными zip-заголовками (при деодексации и сборке в экспертном режиме).
- Обновлены бинарники adb, zipalign.
v3.4.2
- Обновлен apktool (2.1.0_0106), oat2dex (0.86_0107), smali (2.1.1), luyten 0.4.6 (procyon 0.5.32).
- Ускорена деодексация файлов Android 6.0.
- Исправлена деодексация файлов с несколькими classes.dex (Android 6.0).
- Добавлено копирование файлов из _OUT_APK в /system/framework.
- Добавлен украинский язык (спасибо Volodiimr).
v3.4.1
- Обновлен apktool (2.0.3_1024), smali (2.1.0_1018), oat2dex (0.85_1013), jadx (0.6.1 build 221), Java (8u65).
v3.4.0
- Добавлена деодексация Android 6.0
- Обновлен apktool (2.0.2_0930_), smali (2.1.0_1002), oat2dex (0.83_0930), jadx (0.6.1 build 220).
v3.3.4
- Обновлен apktool (2.0.2_0912_fix), jadx (0.6.1 build 218).
v3.3.3
- Обновлен apktool (2.0.2_0821), smali (2.0.7_0906), oat2dex (0.83_0909), luyten 0.4.4 (procyon 0.5.30), jadx (0.6.1 build 215), Java (8u60).
- Обновлены бинарники adb.
- Исправлено чтение скрытых символьных ссылок.
v3.3.2
- Добавлена деодексация .odex.gz-файлов.
- Исправлена подпись zip-файлов для рекавери.
- Мелкие исправления.
- Обновлен apktool (2.0.2_0811), jadx (0.6.1 build 210), oat2dex (0.83_0806).
v3.3.1
- Добавлена деодексация .apk-файлов в папке _framework.
- Функция копирования файлов в устройство (пункт 14) теперь копирует файлы рекурсивно вместе с подкаталогами.
- Добавлено копирование деодексированных APK и JAR-файлов в папки _INPUT_APK и _INPUT_JAR.
- Обновлен apktool (2.0.1), jadx (0.6.1 build 206), Java (8u45).
v3.3.0
- Добавлены испанский, китайский, немецкий, турецкий и французский языки.
- Изменена логика деодексации файлов: теперь файлы деодексируются непосредственно в папках _app, _priv-app и _framework.
- Улучшены алгоритмы деодексации: теперь деодексируются файлы всех архитектур за один проход.
- В лог деодексации добавлен вывод символьных ссылок (для updater-script).
- Исправлена деодексация файлов с несколькими classes.dex.
- Обновлен apktool (2.0.1_0629), smali (2.0.7_0619), jadx (0.6.1 build 203), oat2dex (0.83).
v3.2.1
- Добавлен беларуский язык
- Логи теперь сохраняются в UTF-8 с BOM
- Увеличен размер Java heap для oat2dex.jar
v3.2.0
- Добавлена поддержка файлов локализаций. В дистрибутив добавлен русский и английский языки.
- Добавлена начальная поддержка плагинов. Функции замены ресурсов без перекомпиляции и преобразования unicode-последовательностей в UTF-8 перенесены в плагины.
- Добавлен плагин настройки цвета основных элементов интерфейса.
- Декомпилятор исходного Java-кода jd-gui заменен на luyten 0.4.4 (procyon 0.5.28).
- Добавлен вывод цветного форматированного текста в logcat. Логи теперь сохраняются в реальном времени во время просмотра.
- Исправлено игнорирование изменений в папке libs.
- Обновлен apktool (2.0.1_0524), smali (2.0.6_0523), jadx (0.6.1 build 198), oat2dex (0.81).
- Различные улучшения и исправления.
v3.0.1
- Добавлен счетчик обрабатываемых файлов.
- Фреймы теперь устанавливаются из папки _framework и всех ее подпапок.
- Обновлен apktool (2.0.0), smali (2.0.5_0410), jadx (0.6.0), jd-gui (1.0.0-RC4), dex2jar (2.0).
- Обновлена Java 8u45 (в standalone-версии BAT).
v2.9.9
- Исправлена функция рекомпиляции, если в папке C:\Windows присутствует файл aapt.exe
- Обновлен jadx (0.5.5 build 171).
v2.9.8
- Улучшено определение Java
- apktool 2.x теперь использует внешний aapt.
- Обновлен apktool (2.0.0 RC4), jadx (0.5.5 build 166).
v2.9.6
- Пункты 04-07 теперь декомпелируют все dex-файлы, а не только classes.dex.
- Обновлен apktool (2.0.0 rc3 от 21.01.2015), smali (2.0.5), jadx (0.5.5 build 164).
- Обновлена Java 8u31 (в standalone-версии BAT).
v2.9.5
- Исправлено игнорирование изменений, внесенных в папки assets и lib при использовании apktool 1.x (дефект появился в BAT289)
- Возвращена совместимость с beta-версиями apktool 2.x
v2.9.4
- Добавлена деодексация файлов *.odex.xz в папке _framework
- Оптимизация кода
v2.9.3
- Добавлена деодексация файлов *.odex.xz (Android 5.0)
- Обновлен jadx (0.5.5 build 163).
v2.9.2
- Добавлена возможность деодексации приложений Android 5.0
- Исправлена некорректная декомпиляция приложений, если в именах файлов их smali-кода содержались недопустимые символы
- Обновлен jadx (0.5.5 build 162).
v2.9.1
- Доработана функция деодексации.
- Обновлен apktool (2.0.0 rc3 от 30.12.2014),smali (2.0.3 от 29.12.2014), jadx (0.5.5 build 157).
- Обновлен aapt.exe для apktool 1.5.2
v2.9
- В логи добавлена информация о версиях используемых компонентов.
- Фреймы при использовании apktool_2.x теперь устанавливаются в папку утилиты.
- Обновлен apktool (2.0.0 rc3 от 26.12.2014), jadx (0.5.5 build 155).
v2.8.9
- Исправлено сохранение версии приложения и версии SDK, измененных через apktool.yml.
- Обновлен apktool (2.0.0 rc2 от 02.11.2014), smali (2.0.3 от 06.11.2014), jd-gui (0.3.7 RC1), jadx (0.5.5 build 142).
v2.8.8
- Возвращено создание резервной копии в папке _backup.
- Standalone-версия Batch ApkTool теперь использует Java 8.
- Обновлен apktool (2.0.0 rc2 от 20.10.2014), jadx (0.5.3 build 131).
- Улучшения и исправления.
v2.8.7
- При копировании файлов в системные папки им теперь выставляются права 644
- Обновлен алгоритм сборки APK через apktool 2.x
- Логи теперь откываются в редакторе, ассоциированном в системе с файлами txt
- Обновлен apktool (2.0.0 rc2 от 05.10.2014), jadx (0.5.3 build 126).
v2.8.6
- Добавлено определение версии Java при запуске утилиты
- Обновлен aapt.exe для apktool 1.5.2
- Обновлен apktool (2.0.0 rc1 от 24.09.2014), jadx (0.5.3 build 126).
v2.8.4
- Добавлена поддержка apk, содержащих несколько dex-файлов
- Обновлен apktool (2.0.0 rc1 от 16.08.2014), jadx (0.5.2).
v2.8.3
- Исправлена ситуация у некоторых пользователей, когда после декомпиляции папка разобранного приложения оказывалась пустой
- Обновлен jadx (0.5.2 build 102).
v2.8.2
- Добавлены операции пакетной установки приложений (в т.ч. на SD-карту) и копирования файлов в устройство
- Запрещен запуск нескольких копий утилиты
- Изменен метод вывода цветного текста (для переводчиков утилиты на русский и другие языки)
- Обновлен jadx (0.5.2 build 96).
v2.8
- Добавлено копирование (pull) папок /system/app, /system/priv-app и /system/framework из устройства
- Добавлена возможность сохранить полный багрепорт устройства (logs > bugreport)
- Формат окончания строк в файлах логов и багрепорта теперь стандартный для Windows - CR+LF
- Обновлен jadx (0.5.2 build 88)
v2.7
- Добавлено конвертирование unicode escapes в UTF-8 (smali).
- Добавлены цвета)
- Оптимизирован алгоритм детекта внесенных изменений, увеличена скорость рекомпиляции (до 2-х раз)
- Добавлены smali-baksmali версии 1.4.2.
- Обновлены бинарники aapt, adb и zipalign.
- Обновлен jadx (0.5.1 build 80).
- Исправлена некорректная дата в имени логов и скриншотов, если формат региональных стандартов отличен от русского.
v2.6
- Увеличена скорость рекомпиляции (в зависимости от исходного файла и внесенных изменений - до 3-х раз)
- Изменение логики открытия лога, снова)): два режима - MANUAL и ON.
- Обновлен apktool (2.0.0 rc1 от 18.06.2014), jadx (0.5.1 build 78).
v2.4.1
- Возвращен прежний алгоритм определения изменений в AndroidManifest.xml, без учета apktool.yml.
- Исправлено падение при работе с файлами, содержащими в имени скобки (), а также при вводе некоторых спецсимволов вместо номера пункта меню.
- Обновлен jadx (0.5.1 build 68).
v2.4
- Добавлена возможность выбрать для обработки один файл.
- Обновлен apktool (2.0.0 rc1), jadx (0.5.1 build 63).
- Исправлено сохранение изменений в apktool.yml.
- Мелкие улучшения.
v2.1
- Добавлена возможность создания и загрузки проектов.
- Пункты рекомпиляции и сборки результирующего APK объединены в один пункт.
- Опция подписи стала глобальной и теперь применяется ко всем выходным APK.
- Опция подписи включена по умолчанию
- Код smali при разборе через smali теперь соответствует коду smali при разборе через apktool.
- Исполняемые файлы программы перенесены в папку bin
Русский интерфейс: Да
Разработчик: BurSoft
Домашняя страница: BurSoft Portable - Batch ApkTool
В данной статье я расскажу вам о том что такое деодекс и для чего он нужен.
Введение:
Думаю все пользователи Android смартфонов прошивали свои аппараты и сталкивались с такими терминами как одексированная прошивка и деодексированная. Как правило во всех официальных прошивках системные .apk файлы сопровождаются аналогичным по названию файлом .odex, в котором хранится часть ресурсов .apk файла. Данное обстоятельство сводит к минимуму возможность редактирования системных файлов прошивки в плане графики и не только. То есть изменив системный .apk (либо через терминал, либо при помощи обычного архиватора), и поместив его в с систему обратно в 99% вы получите падение системы и все выходящие из этого проблемы.
В отличии от одекс прошивки, в деодексированной версии вы сможете без болезненно и отредактировать любой системный файл (с умом естественно) и не получить крах системы и прочие вытекающие проблемы. То есть это даёт нам большие возможности в изменении интерфейса системы.
Как деодексировать прошивку:
Способ №1
- из папки 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
На этом деодексирование закончено. Теперь можете либо переместить готовые файлы в телефон либо в zip архив с прошивкой удалив при этом все напоминания о .odeх файлах.
Большинство пользователей Android-устройств, которые прошивали свой телефон или планшет, скорее всего, сталкивались с понятием «одексированная» или «деодексированная» прошивка.
В данном материале мы подробнее разберемся, что же означают эти понятия, а также как проводить сам процесс деодексирования или обратного одексирования.
Большая часть официальных обновлений программного обеспечения от производителей Android-девайсов – это одексированные прошивки. В них системные .apk-файлы сопровождаются аналогичными по названию файлами с расширением .odex. В последних хранится часть ресурсов .apk-файлов, таким образом сводится к минимуму возможность редактирования любых системных ресурсов, причем это касается всех аспектов, в том числе и изменения внешнего вида пользовательского интерфейса и так далее. Изменив любой системный .apk, через простой архиватор или же через терминал, и поместив его обратно на своё место, практически в ста процентах случаев получаем полную неработоспособность системы. Деодексированная версия прошивки отличается тем, что в ней можно «ковыряться» в системных файлах без фатальных последствий и падения операционной системы (естественно, если делать это правильно и с умом). Таким образом, деодексируя прошивку, пользователь получает больше возможностей по модификации системного программного обеспечения.
Существует несколько способов по деодексированию прошивки, в данном материале мы разберем самые удобные из них с точки зрения простого пользователя.
Первый способ. Итак, что нам для этого потребуется:
1. Установить Java SDK.
2. Установить Android SDK.
После этого выполняем поочередно следующие действия:
1. Копируем папку system/app с Android-устройства на персональный компьютер.
2. Копируем папку system/framework с Android-устройства на персональный компьютер.
3. Копируем следующие файлы:
4. Запускаем исполняемый файл deodex-app.bat, это запустит процесс деодексирования всех файлов в папке origi_app
5. После завершения предыдущего процесса, запускаем исполняемый файл deodex_frame.bat, это запустит процесс деодексирования всех файлов в папке origi_frame
6. После выполнения деодексирования запускаем исполняемый файл zip_em_app.bat, который выполнит упаковку файлов app в папке done_app
7. После завершения, запускаем исполняемый файл zip_em_frame.bat, который выполнит упаковку файлов app в папке done_frame
8. После успешной упаковки копируем все файлы из директории done_app в comp_app, а из done_frame в comp_frame
9. Теперь удаляем все файлы, которые имеют расширение .odex из папок comp_app и comp_frame.
Пошагово выполняем следующие действия:
1. Распаковываем папку Deodex из скачанного архива в корень диска C:
2. Копируем папку system/app с Android-гаджета на компьютер в директорию C:Deodex
3. Копируем папку system/framework с Android-гаджета на компьютер в директорию C:Deodex
6. Забираем деодексированные приложения с расширением .apk из указанных выше директорий. Файлы с расширением .odex не трогаем – они теперь не нужны.
Процесс деодексирования завершен. Теперь достаточно скопировать готовые деодексированные .apk-приложения напрямую в смартфон или планшет, или поместить их в .zip-файл с прошивкой, удалив любые упоминания о файлах .odex.
Если по какой-либо причине необходимо одексировать системные приложения, например, если прошивка была деодексирована, то сделать это еще проще. Необходимо установить на Android-устройство приложение Titanium Backup (напомним, что для его корректной работы нужны Root-права). Для того, чтобы одексировать Android-приложение, перемещаем его в папку /system/app. Открываем Titanium Backup и нажимаем пункт в дополнительном меню «Интегрировать sysDalvik».
Теперь можно снова перейти в папку /system/app, забрать оттуда одексированное .apk-приложение. Теперь его можно интегрировать в собственные или сторонние прошивки.
Теперь вы можете легко деодексировать приложения на Android 5.0 Lollipop, чтобы получить больше свободного места и упростить создание тем. Если вы были в сообществе Android достаточно долго, чтобы узнать о пользовательских ПЗУ и руте, то вы знаете, что существует два типа прошивок и приложений: декодированные и деодексированные.
Каждое ПЗУ, которое предустановлено на телефоне, одексировано, но разработчики деодексируют их по нескольким причинам. Деодексированные приложения легче настроить и оформить. Если вам нравятся темы и вы действительно любите настраивать свой телефон, то деодексированные приложения просто необходимы.
Деодексированные приложения также занимают меньше места. Все части приложения собраны вместе, поэтому они не разбросаны по телефону. Таким образом, одни и те же файлы находятся внутри пакета, чтобы предотвратить конфликт с другими приложениями.
К счастью, был запущен инструмент, который позволяет легко деодексировать все приложения Android 5.0 Lollipop.
В наличии Android Lollipop framework, папка priv-app, у нас есть файлы .apk и .jar. Когда вы смотрите на подпапку, называемую файлами .odex, у них есть специальная папка для среды выполнения ART, которая сжимает оба режима.
- .odex.art.xz -> Художественный режим в собственный файл.
- .odex.xz -> 7zip * .odex появляется при распаковке файла.
- .odex.xz распаковывает сжатый файл, использует файл * .odex.
Деодексирование приложений на Android 5.0 Lollipop
Препараты
Прежде чем приступить к работе с руководством, вам нужно сделать несколько вещей. Вы должны загрузить инструмент deodex, а также вытащить APK и файл odex.xz приложения.
Вы успешно деодексировали приложение Android 5.0 Lollipop. Вы можете проделать тот же процесс для всех других приложений.
Читайте также: