Конвертирование java файлов в.jar и создание.dex

Я пытаюсь отредактировать файл.apk, изменив некоторые переменные или добавив в него некоторые функции в java-файлах.

Итак, во-первых, я использовал apktool для декомпиляции.apk. Затем я использовал dex2jar для создания classes.dex для classes.jar и использовал jd-gui для чтения файла. Как вы знаете, все файлы в.jar были файлами.class, которые являются двоичными файлами и не могут быть прочитаны, поэтому я попытался преобразовать.jar в файлы java, используя

'Save all sources' 

в jd-gui, и это дает мне java-файлы, которые читаются и редактируются, что хорошо для меня. Затем я отредактировал java-файлы и превратил их в.jar-файл, используя

'jar cf newjar.jar javafiles'

Однако проблема в том,

Команда jar2dex с новым файлом.jar, отредактированный файл всегда не удался, и причина в том, что "не указаны файлы классов".

Я думаю, это потому, что я сделал это из файлов.java, а не.class. И что же мне делать? Должен ли я превратить все файлы Java в файлы.class с помощью команды javac? Или есть идеи?

2 ответа

Решение

Исходный код Java, полученный из dex2jar и jd-gui, предназначен только для справки, он неполный и / или неправильный все время. Кроме того, если бы он был абсолютно надежным, не было бы реальной необходимости в Open Source.

Как сказал @Robert Williams, вы должны изучить smali, если вы серьезно относитесь к модификации apk. Если вы это сделаете, вот несколько ссылок, чтобы вы начали

http://smali.net16.net/

http://androidcracking.blogspot.in/search/label/smali

Если у вас есть файлы Java и извлеченные ресурсы, вы сможете импортировать их в обычный проект Android и выполнять сборку с использованием стандартных инструментов сборки. Обратите внимание, что декомпиляторы не идеальны, поэтому сгенерированные файлы Java могут даже не скомпилироваться.

Если вы серьезно относитесь к модификации APK, я настоятельно рекомендую вам взглянуть на smali, который представляет собой гораздо более прямое представление кода и может быть скомпилирован непосредственно в формат d ex.

Другие вопросы по тегам