Есть ли способ получить исходный код из файла APK?

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

Есть ли способ извлечь мой исходный код из этого файла APK?

33 ответа

Решение

Простой способ: используйте онлайн-инструмент http://www.javadecompilers.com/apk, загрузите apk и получите исходный код.


Процедура декодирования.apk файлов, пошаговый метод:

Шаг 1:

  1. Создайте новую папку и скопируйте файл.apk, который вы хотите декодировать.

  2. Теперь переименуйте расширение этого файла.apk в.zip (например, переименуйте из filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т. Д. На этом этапе вы можете видеть графические объекты, но не файлы XML и Java, поэтому продолжайте.

Шаг 2:

  1. Теперь распакуйте этот ZIP-файл в ту же папку (или НОВУЮ ПАПКУ).

  2. Скачайте dex2jar и распакуйте его в ту же папку (или в NEW FOLDER).

  3. Переместите файл classes.dex в папку dex2jar.

  4. Теперь откройте командную строку и измените каталог на эту папку (или NEW FOLDER). Затем написать d2j-dex2jar classes.dex (для терминала Mac или Ubuntu напишите ./d2j-dex2jar.sh classes.dex) и нажмите ввод. Теперь у вас есть файл classes.dex.dex2jar в той же папке.

  5. Загрузите Java-декомпилятор, дважды щелкните по jd-gui, щелкните по открытому файлу и откройте файл classes.dex.dex2jar из этой папки: теперь вы получаете файлы классов.

  6. Сохраните все эти файлы классов (в jd-gui выберите Файл -> Сохранить все источники) под именем src. На этом этапе вы получаете исходный код Java, но XML-файлы по-прежнему не читаются, поэтому продолжайте.

Шаг 3:

Теперь откройте еще одну новую папку

  1. Поместите в файл.apk, который вы хотите декодировать

  2. Загрузите последнюю версию apktool и окно установки apktool (обе можно скачать по одной и той же ссылке) и поместите их в одну папку

  3. Откройте командное окно

  4. Теперь запустите команду как apktool if framework-res.apk и следующий

  5. apktool d myApp.apk (где myApp.apk обозначает имя файла, который вы хотите декодировать)

теперь вы получаете папку с файлами в этой папке и можете легко читать xml-файлы apk.

Шаг 4:

Это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае обе новые папки) в одну

и наслаждайтесь исходным кодом...

Это альтернативное описание - на случай, если кто-то застрянет с описанием выше. Следуйте шагам:

  1. скачать apktool.bat (или же apktool для Linux) и apktool_<version>.jar от http://ibotpeaches.github.io/Apktool/install/
  2. переименуйте файл jar сверху в apktool.jar и поместите оба файла в одну папку

  3. откройте дос дос (cmd.exe) и перейдите в эту папку; убедитесь, что установлена ​​среда Java (для Linux также проверьте примечания относительно необходимых библиотек)
  4. Начните: apktool decode [apk file]

    Промежуточный результат: файлы ресурсов, AndroidManifest.xml

  5. распакуйте APK файл с распаковщиком на ваш выбор

    Промежуточный результат: classes.dex

  6. скачать и извлечь dex2jar-0.0.9.15.zip со http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=
  7. перетащить classes.dex на dex2jar.bat (или введите <path_to>\dex2jar.bat classes.dex в коробке DOS; для использования Linux dex2jar.sh)

    Промежуточный результат: classes_dex2jar.jar

  8. распаковывать classes_dex2jar.jar (может быть необязательным в зависимости от используемого декомпилятора)
  9. декомпилируйте ваши файлы классов (например, с помощью JD-GUI или DJ Decompiler)

    Результат: исходный код

Примечание: нельзя декомпилировать сторонние пакеты; это руководство предназначено для восстановления личного исходного кода только из файла APK; наконец, результирующий код, скорее всего, будет запутан

Хотя вы можете декомпилировать APK файл, вы, вероятно, столкнетесь с одной большой проблемой:

он не вернет код, который вы написали. Вместо этого он будет возвращать все, что встроено компилятором, с переменными с произвольными именами, а с функциями с произвольными именами. Может потребоваться значительно больше времени, чтобы попытаться декомпилировать и восстановить его в код, который вы имели, чем это будет начинаться заново.

К сожалению, такие вещи убили много проектов.
В будущем я настоятельно рекомендую изучить систему контроля версий, такую ​​как CVS, SVN, git и т. Д.

и как это поддержать.

В Play Store также есть новое приложение, с помощью которого можно декомпилировать apk (системные приложения тоже) и просматривать исходный код прямо на вашем смартфоне. Он сохраняет файлы на вашей SD-карте, чтобы вы могли просматривать их и на своем компьютере. Не требует рута или чего-то еще.

Просто установите и получайте удовольствие. Я думаю, что это самый простой способ декомпилировать приложение.

apktool - лучшая вещь, которую вы можете попробовать. Я сохранил некоторые XML с ним, но, честно говоря, я не знаю, как это будет работать с кодом.java.

Я бы порекомендовал вам иметь хранилище кода, даже если вы единственный кодер. Я использую Project Locker для своих собственных проектов. Это дает вам бесплатные репозитории SVN и GIT.

Эти две статьи описывают, как сочетать использование apktool а также dex2jar взять APK файл и создать проект Eclipse, который может собрать и запустить его.

http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html

http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html

В основном вы:

  1. использование apktool получить файлы ресурсов из apk
  2. использование dex2jar чтобы получить файл jar, содержащий классы в формате, который понравится Eclipse.
  3. Создайте проект Eclipse, наведите его на файлы ресурсов и новый файл jar
  4. Откройте файл jar утилитой zip и удалите существующие ресурсы
  5. Откройте файл JAR с JDGui просмотреть исходный код
  6. Возьмите любой исходный код, который вам нужен JDGuiвставьте его в класс внутри Eclipse и измените его
  7. Удалите этот класс из файла jar (чтобы один и тот же класс не определялся несколько раз)
  8. Запустить его.

apktool будет работать. Вам даже не нужно знать хранилище ключей для извлечения исходного кода (что немного страшно). Основным недостатком является то, что источник представлен в формате Smali вместо Java. Другие файлы, такие как icon и main.xml, проходят отлично, хотя, возможно, стоит хотя бы восстановить их. В конечном итоге вам, скорее всего, придется переписывать код Java с нуля.

Вы можете найти apktool здесь. Просто скачайте apktool и соответствующий помощник (для Windows, Linux или Mac OS). Я рекомендую использовать такой инструмент, как 7-zip, чтобы распаковать их.

Есть несколько способов сделать это:

  1. Используйте функцию "Профиль или Отладка APK" в Android Studio 3.0.

    Это позволяет открывать и изучать APK в Android Studio. Классы декомпилированы в smali. Ресурсы не извлекаются, а такие вещи, как "Перейти к определению", "Найти все ссылки" и отладка, не работают без исходного кода (android studio 3.0 canary 9). Некоторые дополнительные функции smali могут работать с smallidea.

    Android-студия

    выберите файл

    код

  2. Используйте jadx.

    Jadx декомпилирует код в данном APK в исходные файлы Java.

    jdax-IMG

  3. Используйте apktool.

    Apktool - это инструмент командной строки, который извлекает ресурсы и декомпилирует код в smali для данного apk. Вы также можете перекомпилировать, используя apktool. Вот пример этого в действии:

    $ apktool d test.apk
    I: Using Apktool 2.2.4 on test.apk
    I: Loading resource table...
    I: Decoding AndroidManifest.xml with resources...
    I: Loading resource table from file: 1.apk
    I: Regular manifest package...
    I: Decoding file-resources...
    I: Decoding values */* XMLs...
    I: Baksmaling classes.dex...
    I: Copying assets and libs...
    I: Copying unknown files...
    I: Copying original files...
    $ apktool b test
    I: Using Apktool 2.2.4 on test
    I: Checking whether sources has changed...
    I: Smaling smali folder into classes.dex...
    I: Checking whether resources has changed...
    I: Building resources...
    I: Building apk file...
    I: Copying unknown files/dir...
    

Может быть, легко увидеть источник:

В Android Studio 2.3 Build -> Analyze APK -> Select the apk that you want to decompile,
Вы увидите его исходный код.

Линф для справки:
https://medium.com/google-developers/making-the-most-of-the-apk-analyzer-c066cb871ea2

Внизу онлайн- инструмент:

http://www.javadecompilers.com/apk

он делает ВСЕ одним кликом: декомпилированные файлы.java + ресурсы + xml (в одном файле.zip) с очень хорошим декомпилятором (jadx возвращает код Java в тех местах / функциях, где другие компиляторы возвращают комментарии внутри функции, например "невозможно декомпилировать" или некоторые другие). ассемблер андроид / машинный код)

Я лично рекомендую показать Java Android App, чтобы получить исходный код. Вы можете скачать его из игрового магазина или отсюда

Этот сайт https://www.apkdecompilers.com/ сделал это автоматически.

Сначала я попробовал сайт, упомянутый в принятом ответе, но у меня это не получилось.

Я покажу вам другой способ декомпиляции файлов .apk.

Вы можете выполнить первые 2 шага из "Пранкуль Гарг". Так что у вас есть другие возможности:

Шаг 3':

Загрузите "JD-GUI", это легко найти. Откройте файл .jar в "jd-gui.exe". (Файл> Открыть файл> "нашел ваш .jar файл"). После этой процедуры вы можете сохранить все ресурсы в файле .zip.

Так,

1-й - Вы должны переименовать файл .apk в .zip

2-й - Вы должны декодировать файл .dex (если хотите, декодируйте файл .apk в dex2jar, это возможно)

3-й - Вы должны декодировать файл .jar с помощью JD-GUI.

В зависимости от вашего состояния, если ваш Android APK:

Условие 1: НЕ затвердевать (от Tencent Legu/Qihoo 360/...)

Выбор1: с помощью онлайн-сервиса

такие как:

используя www.javadecompilers.com

идти к:

автоматически декодировать из АПК в исходный код Java

шаги:

upload apk file + click Run + подождите некоторое время + нажмите Download чтобы получить zip + unzip ->

sources/com/{yourCompanyName}/{yourProjectName}

ваш ожидаемый исходный код Java

Choice2: декомпилировать / взломать самостоятельно

Используйте соответствующий инструмент для декомпиляции / взлома самостоятельно:

использование jadx/jadx-gui перерабатывать apk в java sourcecode

скачайте jadx-0.9.0.zip, затем распакуйте, чтобы получить bin/jadx, затем:

  • режим командной строки:
    • в терминальном прогоне: jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
    • output_folder покажет расшифрованный sources а также resources
      • sources/com/{yourCompanyName}/{yourProjectName} ваше ожидание java sourcecode
  • Режим графического интерфейса
    • двойной щелчок для запуска jadx-0.9.0/bin/jadx-gui (В Linux jadx-gui.sh / Windows jadx-gui.bat)
    • открыть apk файл
    • это будет автоматическое декодирование -> увидеть ожидаемый исходный код Java
    • save all или же save as Gradle project

например:

Условие 2: закалка (Tencent Legu/Qihoo 360/...)

основной метод 3 steps:

  1. apk/app to dex
  2. dex to jar
  3. jar to java src

детальное объяснение:

Шаг 1: apk/app to dex

использовать инструмент (FDex2/DumpDex) dump / hook (один или несколько) dex файл из запущенного приложения

шаги:

подготовить среду

  • rootЭд андроид
  • установить ваш Android APK
    • на телефон или эмулятор
  • Установленный Xposed Installer
  • устанавливать FDex2/ DumpDex в XPposed и включить его
  • установить ваш Android APK на телефон / эмулятор

сбросить из dex из запущенного приложения

  • бежать FDex2 затем нажмите на свое имя apk, чтобы позже включить / захватить dex

  • (в телефоне / эмуляторе) запустите ваше приложение
  • найти и скопировать весь ресурс apk в /data/data/com/yourCompanyName/yourProjectName
    • в своей корневой папке обычно найдет несколько dex файл

Шаг 2: dex to jar

использовать инструмент (dex2jar) конвертировать (конкретную, содержащую логику приложения) dex подать в jar файл

скачать dex2jar получил dex-tools-2.1-SNAPSHOT.zip, распаковать получил dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh, затем

sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f your_dex_name.dex

например:

dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex
dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

Шаг 3: jar to java src

используйте один из инструментов:

перерабатывать jar в java src

для преобразования из jar в java src:

Jadx > Procyon > CRF >> JD-GUI

поэтому рекомендуем использовать: Jadx/jadx-gui

шаги:

  • двойной щелчок для запуска jadx-gui
  • открыть dex файл
  • File -> save all

например:

экспортированный источник Java:


Более подробное объяснение можно посмотреть в моей онлайн-книге китайского учебника:

apktool это путь. Онлайн сервис apktool также существует: http://www.javadecompilers.com/apktool

Очевидно, некоторые ограничения существуют из-за службы "онлайн-характера": вы можете извлекать и исследовать ресурсы и файл манифеста, но в настоящий момент невозможно перекомпилировать приложение.

Тем не менее, это простой способ "открыть" приложение для Android.

Apktool для реверс-инжиниринга сторонних, закрытых, бинарных приложений для Android.

Он может декодировать ресурсы почти до первоначальной формы и восстанавливать их после внесения некоторых изменений.

Это позволяет пошагово отлаживать код smali. Кроме того, это облегчает работу с приложением из-за файловой структуры проекта и автоматизации некоторых повторяющихся задач, таких как сборка apk и т. Д.

http://ibotpeaches.github.io/Apktool/

Решение в один клик (только для Windows)

после прочтения этого сообщения loooooonnnnngggg я решил создать автоматизированный процесс для декомпиляции APK в один клик,

я решил поделиться им на github:
https://github.com/shaybc/apk-decompiler

      simply unzip,
copy the apk you want to decompile into "apk-source" folder
and run "go.bat"
find the result in the: "apk-output" folder

вот и наслаждайся

Вы можете попробовать DexPatcher. Он даже интегрируется с Android Studio. Он использует Apktool и Dex2Jar внутри.
Вы можете использовать эти инструменты независимо друг от друга. Apktool декомпилирует apk и извлекает файлы.dex, которые затем можно конвертировать в jar с помощью Dex2Jar. Jar можно декомпилировать с помощью JD-GUI. Вы можете увидеть код Java с помощью этого инструмента. Хотя сходство декомпилированного кода с реальным кодом не может быть гарантировано. На рынке есть несколько продвинутых инструментов обфускации кода, которые портят код, затрудняя его декомпиляцию / понимание. например. Proguard

Студия Android предлагает вам проанализировать любой файл apk.

1 - В меню сборки выберите параметр анализировать apk и выберите файл apk. 2 - В результате вы получите файл classes.dex и другие файлы. 3 - Нажмите на classes.dex, который предоставит вам список папок, пакетов, библиотек и файлов. 4 - Из настроек android studio установите плагин под названием "Dex to Jar" 5 - нажмите на любой файл активности вашего извлеченного проекта и выберите "dex tojar" в меню сборки.

Это приведет к фактическому коду вашего Java-файла.

Приветствия.

Шаг 1: Создайте новую папку и скопируйте файл .apk, который хотите декодировать.

Теперь переименуйте расширение этого файла .apk в .zip (например, переименуйте из filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т. Д. На этом этапе вы можете видеть чертежи, но не файлы xml и java, так что продолжайте.

Шаг 2: Теперь извлеките этот файл .zip в ту же папку (или в НОВУЮ ПАПКУ).

Загрузите https://github.com/pxb1988/dex2jar/releases/tag/2.0 : dex2jar-2.0

Теперь откройте командную строку и смените каталог на эту папку (или НОВУЮ ПАПКУ). Затем выполните: d2j-dex2jar.bat classes.dex

Загрузите этот декомпилятор http://java-decompiler.github.io/ для декомпиляции классов-dex2jar.jar

Шаг 3: Теперь откройте еще одну новую папку

Вставьте файл .apk, который вы хотите декодировать

Загрузите последнюю версию окна установки apktool И apktool (https://ibotpeaches.github.io/Apktool/install/) (оба могут быть загружены по одной и той же ссылке) и поместите их в одну папку

Откройте командное окно

Теперь запустите такую ​​команду, как apktool, если framework-res.apk (если у вас ее нет, получите ее здесь), а затем

apktool d myApp.apk (где myApp.apk обозначает имя файла, которое вы хотите декодировать)

теперь у вас есть папка с файлами в этой папке, и вы можете легко читать xml-файлы apk.

Копирование содержимого обеих папок в одну папку

Выполнено !

Чтобы декомпилировать APK и получить из него код, у вас есть несколько онлайн-инструментов, и я обычно предпочитаю использовать .

Он очень прост в использовании, и в течение нескольких минут вы сможете скачать с него исходный код.

Если вы хотите скачать APK из playstore и Online APK Decompilerдекомпилировать . вы также можете легко загрузить его оттуда.

Да, это возможно.

Существует множество программ для обратного проектирования файлов.apk для Android.

Недавно я составил на своем сайте полный список из 47 лучших декомпиляторов APK. Я разделил их на 4 разных раздела.

  1. Декомпиляторы APK с открытым исходным кодом
  2. Онлайн-декомпиляторы APK
  3. Декомпилятор APK для Windows, Mac или Linux
  4. APK-декомпилятор приложений

Надеюсь, этот сборник будет вам полезен.

Ссылка: https://www.edopedia.com/blog/best-apk-decompilers/

Я разработал инструмент - Анализатор кода, он работает на iPhone/iPad/Mac, для анализа файлов Java/Android, https://decompile.io/

Самым простым способом является использование Apk OneClick Decompiler. Это пакет инструментов для декомпиляции и дизассемблирования APK (пакетов Android).

ФУНКЦИИ

  • Все функции интегрированы в контекстное меню Windows.
  • Декомпилируйте классы APK в исходные коды Java.
  • Разберите APK, чтобы смали код и расшифруйте его ресурсы.
  • Установите APK на телефон, щелкнув правой кнопкой мыши.
  • Перекомпилируйте APK после редактирования кода и / или ресурсов. Во время перекомпиляции:
  • Оптимизировать PNG изображения
  • Войти apks
  • Zipalign

ТРЕБОВАНИЯ

Java Runtime Environment (JRE) должна быть установлена.

Вы можете скачать его по этой ссылке Apk OneClick Decompiler

Наслаждайся этим.

Для этого есть приложение, которое обычно занимает всего несколько кликов, и все готово. https://github.com/Nuvolect/DeepDive-Android

  1. Выберите Приложения, в разделе "Установленные приложения" выберите свое приложение. Если его там нет, вы можете загрузить APK.
  2. Выберите "Извлечь APK"
  3. Выберите "Распаковать APK"
  4. Выберите "Декомпилировать с помощью Jadx". Это может занять несколько секунд или несколько минут в зависимости от скорости вашего устройства

После этого вы можете просмотреть исходный код, загрузить его на другой компьютер с elFinder или выполнить поиск по нему с помощью Lucene.

В дополнение к Jadx есть декомпиляторы CFR и Fernflower.

Я нашел следующее как самый простой метод:

  1. Переименуйте ваш app.apk в app.zip (измените расширение с apk на zip)
  2. Распакуйте zip-файл в папку
  3. Используйте инструмент JADX, чтобы прочитать исходный код, представленный в файле classes.dex.

На рынке существует множество приложений и методов для декомпиляции файла apk в класс java, но если приложение скомпилировано с использованием правила ProGuard, тогда у вас большие проблемы, потому что это правило сжимает все файлы dex до небольшого имени символа, а затем вы не можете отследить реализацию. см. https://developer.android.com/studio/build/shrink-code для уточнения режима.

Удачного кодирования...

1. Извлечение исходного кода из собственного Android-приложения.

Исходный код собственного Android-приложения получить несложно, но для этого требуются дополнительные инструменты, совместимые с Windows, Mac и Linux. Когда дело доходит до инструментов, мне больше всего нравятся dex2jar и JD-GUI.

Если вы не знакомы с этими инструментами, dex2jar прочитает исполняемые файлы Dalvik и преобразует их в стандартный формат JAR. JD-GUI будет читать файлы JAR и декомпилировать файлы классов, найденные в них.

Чтобы облегчить понимание процесса извлечения, давайте начнем с создания нового нативного проекта Android:

       android create project --target 19 --name TestProject --path . --activity TestProjectActivity --package com.nraboy.testproject

Приведенная выше команда оставит вам проект Android в текущем пути командной строки.

Поскольку в наш проект уже включен класс Activity, давайте сразу перейдем к процессу сборки. Вы можете целый день беспокоиться об использовании Ant вместо Gradle или Maven, но в этом уроке я буду придерживаться этого.

       ant debug

Приведенная выше команда создаст отладочную сборку, обычно находящуюся в bin / TestProject-debug.apk.

Используя свой любимый инструмент для распаковки, извлеките файл APK. 7-zip - популярный инструмент, но если вы используете Mac, вы можете просто запустить следующее из Терминала:

       unzip TestProject-debug.apk

В результате у нас останется куча файлов и папок, но одна из них важна для нас. Обратите внимание на classes.dex, потому что он содержит весь наш исходный код. Чтобы преобразовать его во что-то читаемое, нам нужно запустить на нем dex2jar. Вы можете использовать dex2jar на Mac, Linux и Windows, но я собираюсь объяснить это с точки зрения Mac.

С classes.dex файлом в вашем извлеченной dex2jar каталога, выполните следующую команду из терминала:

       ./dex2jar.sh classes.dex

Откройте приложение JD-GUI, которое вы скачали, потому что пришло время декодировать JAR и файлы упакованных классов. Откройте только что созданный файл classes_dex2jar.jar, и вы должны увидеть что-то вроде следующего:

Посмотрите, как легко было добраться до исходного кода вашего собственного Android APK? Что вы можете сделать, чтобы лучше защитить себя?

Android SDK поставляется с Proguard, который представляет собой модуль обфускации. Вы спросите, что такое обфускация?

Обфускация через Википедию:

Обфускация (или затемнение) - это сокрытие предполагаемого смысла в общении, что делает общение запутанным, умышленно двусмысленным и трудным для интерпретации.

Хотя обфускация не зашифрует ваш исходный код, ее будет сложнее понять. С настроенным Proguard запустите Ant в режиме выпуска, и ваш код должен быть обфусцирован при сборке.

2. Извлечение исходного кода из гибридного Android-приложения.

Исходный код гибридных приложений, безусловно, легче всего извлечь. Вам не нужно устанавливать дополнительное программное обеспечение на вашем компьютере, просто откройте файл APK.

Чтобы упростить понимание, давайте сначала создадим новый проект Apache Cordova, а затем извлечем его. Начните со следующего:

       cordova create TestProject com.example.testproject TestProject
cd TestProject
cordova platform add android

В процессе создания проекта у вас останутся стандартные шаблоны CSS, HTML и JavaScript Apache Cordova. В этом примере для нас это нормально. Давайте продолжим и соберем наш проект в распределенный файл APK:

       cordova build android

У вас останутся платформы /android/ant-build/CordovaApp-debug.apk или что-то вроде платформ / android / ant-build / *-debug.apk.

Несмотря на то, что это отладочная сборка, ее все еще можно использовать. После установки 7-zip или аналогичного файла щелкните правой кнопкой мыши файл APK и выберите его извлечение или разархивирование. В извлеченном каталоге у вас теперь должен быть доступ ко всем вашим исходным файлам в Интернете. Я говорю "на базе Интернета", потому что любые файлы Java, используемые Apache Cordova, будут скомпилированы в файлы классов. Однако файлы CSS, HTML и JavaScript не затрагиваются.

Вы только что увидели, насколько удручающе легко получить исходный код гибридного приложения. Итак, что вы можете сделать, чтобы лучше защитить себя?

Вы можете скрыть свой код, что является формой обфускации.

Это не приведет к шифрованию вашего кода, но значительно усложнит его понимание.

Если вы хотите уточнить свой код, я рекомендую вам установить UglifyJS, так как на данный момент он в значительной степени является стандартом. Если вы предпочитаете использовать средство выполнения задач, в Grunt и Gulp есть модули для UglifyJS.

Я несколько дней сводил себя с ума, пытаясь заставить dex2jar работать на ноутбуке Fedora 31 против apk, который просто не работал. Этот сценарий python 3 справился с задачей за считанные минуты, а установка jd-gui сделала файлы классов удобочитаемыми.

http://java-decompiler.github.io/

https://github.com/Storyyeller/enjarify

в частности, вот что я запустил:

# i installed apktool before the rest of the stuff, may not need it but here it is
$> cd /opt
$> sudo mkdir apktool
$> cd apktool/
$> sudo wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
$> sudo wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.4.1.jar
$> sudo mv apktool_2.4.1.jar apktool.jar
$> sudo mv apktool* /usr/bin/
$> sudo chmod a+x /usr/bin/apktool*

# and enjarify
$> cd /opt
$> sudo git clone https://github.com/Storyyeller/enjarify.git
$> cd enjarify/
$> sudo ln -s /opt/enjarify/enjarify.sh /usr/bin/enjarify

# and finally jd-gui
$> cd /opt
$> sudo git clone https://github.com/java-decompiler/jd-gui.git
$> cd jd-gui/
$> sudo ./gradlew build

# I made an alias to kick of the jd-gui with short commandline rather than long java -jar blahblahblah :)
$> echo "jd-gui='java -jar /opt/jd-gui/build/launch4j/lib/jd-gui-1.6.6.jar'" >> ~/.bashrc

Теперь, чтобы получить файлы классов, можно просмотреть следующее:

$> enjarify yourapkfile.apk

И для запуска jd-gui:

$> jd-gui

Тогда просто откройте файлы классов!

Для java-файлов


Используйте принятый ответ, приведенный здесь

Для файлов XML


Вам не нужно использовать метод, указанный в принятом ответе, так как я чувствовал, что это сложно.

Вместо этого я преобразовал файл APK в ZIP и распаковал его. После распаковки у меня появилась папка с именем res:

Я только что открыл его и нашел много папок. Для макета нужно найти папку с именемlayoutа не какой-либо другой, например макет земли или что-то в этом роде. То же самое можно сделать с другими ресурсами, такими как drawable, меню и т. Д.

ПРИМЕЧАНИЕ. Также будет много случайных файлов, которые НЕ были созданы вами. Вы можете найти созданные вами файлы и затем использовать их!

Надеюсь, это поможет кому-то там!

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