Как сделать деодекс приложения
Как сделать деодекс приложения
Последнее обновление программы в шапке: 23.12.2020
Краткое описание:
Утилита для правильной перекомпиляции APK-файлов.
Описание:
Представляю вниманию коллег свою утилиту для работы с файлами APK. Несмотря на свой скромный интерфейс, утилита превосходит большинство аналогичных приложений по качеству работы и удобству использования, поскольку она разрабатывается в тесном сотрудничестве с профессионалами по модификации Android-приложений, а также с головой и руками.
Прогресс разработки apktool можно отслеживать здесь
Предыдущие версии apktool находятся здесь
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.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.3
— Обновлен 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).
— Обновлён турецкий язык от Hakan Güven.
— Добавлен литовский язык от Shimas5.
— Исправлено несколько ошибок.
v3.7.2
— Обновлен apktool (2.4.0_0918), smali (2.2.5), oat2dex (0.90_0918), vdexExtractor (0.5.2), jadx (0.8.0 build 547), плагин UnpackerFirmware (1.6.0), luyten 0.5.3 (procyon 0.5.33), Java (8u181), Python (3.6.6), adb, zipalign.
— В расширенные настройки добавлена опция выбора утилиты для деодексации Android 8.x и выше (baksmali или vdexExtractor).
— Множество улучшений алгоритмов деодексации.
— Добавлен плагин remove_classes_dex от Andycar для удаления classes.dex из APK/JAR-файлов.
— Добавлен турецкий язык от Hakan Güven.
— Исправлены некоторые ошибки.
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.7
— Обновлен apktool (2.2.5_0827), sdat2img (2017-28-08), Java (8u144).
— Добавлена проверка наличия необходимых для работы файлов.
— Исправлены мелкие ошибки.
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.5
— Обновлен enjarify (0301).
— Для выбора файлов теперь используется стандартный диалог Windows.
— В расширенные настройки добавлены опции «Сохранять оригинальный AndroidManifest.xml», «Предупреждать о перезаписи папки при декомпиляции» и «Звуковые оповещения».
— Добавлен вывод сообщений в трей.
— Исправлено зависание вывода на экран логов logcat.
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.2
— Обновлен apktool (2.2.1), smali (2.2_1018), enjarify (0928), sdat2img (0924), Java (8u111).
— Добавлен альтернативный способ копирования файлов в папку /system (пункт [14->2], используется бинарник su).
— Добавлена возможность выборочной установки APK из папки _OUT_APK.
— Теперь для деодексации Android 6 и выше по умолчанию используется baksmali (включить oat2dex можно в расширенных настройках [00]).
— Добавлен счетчик файлов при деодексации через baksmali.
— Улучшения и исправления.
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.5.0
— Обновлен apktool (2.2.0_0621), smali (2.2_WIP_0529).
— Различные улучшения алгоритма деодексации.
— Добавлены расширенные настройки (пункт меню [00]) с возможностью выбора метода деодексации API level >= 23.
— Теперь плагины могут использовать для работы интерпретатор Python 3.
— Транслятор байт-кода Dalvik в байт-код JVM dex2jar заменен на enjarify.
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.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.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).
v3.0
— Улучшен алгоритм работы экспертного режима.
— Добавлена деодексация приложений архитектуры x86 (Android 5.0).
— Добавлено сохранение таблицы inline-методов прошивки (пункт 18->8) (см. readme п. 3.10).
— Увеличена скорость декомпиляции.
— Обновлен apktool (2.0.0-RC4_0322), smali (2.0.5_0321), jadx (0.5.5 build 181), signapk.
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.7
— Добавлен экспертный режим для сборки APK (см readme п. 5.5).
— Добавлено логирование ошибок для пункта [6 Zipalign files].
— Доработана функция декомпиляции приложений на системах, где некорректно задана системная переменная PATH
— Обновлен jadx (0.5.5 build 165).
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.5
— Немного увеличена скорость деодексации и рекомпиляции (примерно на 10-20%)
— Добавлена опция [87 Don’t write out debug info]
— Добавлена возможность выбора ключа для подписи APK, ZIP, и JAR файлов
— Обновлен apktool (2.0.0 rc1 от 27.08.2014), smali (2.0.3 от 28.08.2014), jadx (0.5.3 build 120).
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.7
— Добавлено конвертирование unicode escapes в UTF-8 (smali).
— Добавлены цвета)
— Оптимизирован алгоритм детекта внесенных изменений, увеличена скорость рекомпиляции (до 2-х раз)
— Добавлены smali-baksmali версии 1.4.2.
— Обновлены бинарники aapt, adb и zipalign.
— Обновлен jadx (0.5.1 build 80).
— Исправлена некорректная дата в имени логов и скриншотов, если формат региональных стандартов отличен от русского.
v2.5
— Добавлена опция [86 Keep broken resources] для принудительной декомпиляции поврежденных ресурсов.
— Добавлена запись файлов а папку /system/priv-app.
— Теперь после каждой операции выводится предложение открыть лог.
— Обновлен apktool (2.0.0 rc1 от 25.05.2014), jadx (0.5.1 build 70).
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.3
— Добавлена возможность подключения ADB по Wi-Fi.
— Исправлена запись видео командой [17].
— Обновлены бинарники adb и aapt.
— Мелкие улучшения.
v2.2
— Добавлен просмотр исходного Java кода APK, JAR и DEX файлов.
— Добавлена запись видео с экрана через ADB (требуется android 4.4 или выше).
— Изменена логика работы пунктов меню [11], [13], [14] и [15].
— Исправлена ошибка рекомпиляции c использованием apktool 1.x, появившаяся в v2.1.
v2.1
— Добавлена возможность создания и загрузки проектов.
— Пункты рекомпиляции и сборки результирующего APK объединены в один пункт.
— Опция подписи стала глобальной и теперь применяется ко всем выходным APK.
— Опция подписи включена по умолчанию
— Код smali при разборе через smali теперь соответствует коду smali при разборе через apktool.
— Исполняемые файлы программы перенесены в папку bin
Скачать:
Batch ApkTool 3.7.5 для 64-х битных Windows:
BatchApkTool375.7z ( 142 МБ )
Batch ApkTool 3.7.5 для 32-х битных Windows (Windows XP не поддерживается):BatchApkTool375_32bit.7z ( 85,3 МБ )
Как сделать деодекс приложения
Последнее обновление программы в шапке: 15.10.2013
Краткое описание:
Деодексирует apk и jar.
Описание:
Деодексатор с xda у меня на компе работал плохо, пришлось навелосипедить.
Деодексирует apk и jar.
Можно деодексировать папку целиком.
Присутствует GUI (в виде диалога выбора файла).
1 Скачайте smali и baksmali и положите в ту же папку.
2 Скачайте SevenZipSharp и 7z.dll (можно использовать прикреплённый файл, там я чуток подфиксил баги).
3 Скачайте zipalign (входит в Android SDK, может где ещё есть, видел на xda).
0 Запустите deodexer.
Русский интерфейс: Нет
Скачать: версия: 0.9.1Deodexer.exe ( 22 КБ )
SevenZipSharp.dll ( 153,5 КБ )
Скачать: версия: 0.9Deodexer.exe ( 15 КБ )
SevenZipSharp.dll ( 153,5 КБ )
ну и вопрос, как типа реализёру программы, напишите если можно код открытия выбора приложений по команде?
я специально не запихал все в архив, чтобы не гимориться с лицензиями и прочей юридической грязью, а также для того, чтобы юзер скачал самые свежие версии заюзанных инструментов. в большинстве случаев они у него и так есть (я про андроид сдк).
севензипшарп приложил потому, что с тот, что с оффсайта, содержит баги.
Добавлено 17.09.2013, 01:15:
не совсем понял, что вы имеете в виду.
я специально не запихал все в архив, чтобы не гимориться с лицензиями и прочей юридической грязью, а также чтобы юзер скачал самые свежие версии заюзанных инструментов. в большинстве случаев они у него и так есть (я про андроид сдк).
севензипшарп приложил потому, что с тот, что с оффсайта содержит баги.
ну, я понимаю, вы можете мне код дать окна, я хочу такой же в свою программу вставить!
я вас не в чём не обвиняю, просто хочу, если можно чтобы вы мне его дали, хочу в программу вставить в свою)
Никак. Можешь написать программу, которая выполнит все свои аргументы, но обработает подстановки. На С# это легко пишется. На с++ тоже (мне бы следовало эту программу писать на с++, но почему-то написал на шарпе).
Выдало ошибку, что не так
Error occured while loading boot class path files. Aborting.
org.jf.util.ExceptionWithContext: Cannot locate boot class path file /system/framework/filterfw.odex
at org.jf.dexlib2.analysis.ClassPath.loadClassPathEntry(ClassPath.java:217)
at org.jf.dexlib2.analysis.ClassPath.fromClassPath(ClassPath.java:161)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:59)
at org.jf.baksmali.main.main(main.java:274)
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: Cannot find file or directory «D:\DODEX\out»
at org.jf.smali.main.main(main.java:174)
Unable to smali
deodexer>
это говорит нам о том, что либо файл бракованный, либо ошибка в бексмали, либо ты не слил папку framework с устройства, либо в той папке нет нужного файла
погугли
держи, это для дотнет 4
Файлы теперь в шапке
и убедись, что у тебя есть все зависимости
Отличная работа! Спасибо!
Правда, не успел загрузить файл с другой папки, говорить, что smali и baksmali недоступные. Наверно, ищеть их там где и файл для деодексирования. Но не важно. Поставил нужные jar и odex рядом и все пошло прекрасно.
И еще вопрос. Возможно ли будеть добавить что-то типа «Create from folder». Поменял что надо внутри и собрал тогда уже обратно.
обычно все нужные файлы лежат в папке framework.