Я случайно удалил свой проект из Eclipse, и все, что у меня осталось, это APK, который я передал на свой телефон. Есть ли способ обратить вспять процесс экспорта приложения в файл .apk, чтобы вернуть проект?
Обратное проектирование из файла APK в проект
Ответ 1
Есть два полезных инструмента, которые будут генерировать код Java (грубый, но достаточно хороший) из неизвестного файла APK.
- Загрузите инструмент dex2jar из dex2jar.
-
Используйте инструмент для конвертирования APK файла в JAR:
$ d2j-dex2jar.bat demo.apk dex2jar demo.apk -> ./demo-dex2jar.jar
-
Как только файл JAR сгенерирован, используйте JD-GUI, чтобы открыть файл JAR. Вы увидите файлы Java.
Вывод будет похож на:
Ответ 2
Прежде всего, я рекомендую this
видео, возможно, это очищает все ваши сомнения
Если нет, пожалуйста, пройдите
Procedure for decoding.apk files, step-by-step method:
Step 1:
Создайте новую папку и поместите в нее файл .apk (который вы хотите декодировать). Теперь переименуйте расширение этого файла .apk
в .zip
(например: переименуйте из filename.apk в filename.zip) и сохраните его.
Если проблемы при конвертации в .zip, пожалуйста, обратитесь по link
После получения файла .zip вы получаете файлы classes.dex и т.д. На этом этапе вы можете видеть нарисованные, но не файлы XML и Java, поэтому продолжайте. Если вы не видите расширения, проверьте настройки
Step 2:
Теперь распакуйте этот ZIP файл в той же папке. Теперь скачайте dex2jar по этой link
и распакуйте его в ту же папку. Теперь откройте командную строку и перейдите в эту папку.
Затем напишите dex2jar classes.dex
и нажмите ввод. Теперь вы получаете файл classes.dex.dex2jar
в той же папке.
Тогда скачайте Java-декомпилятор
А теперь дважды щелкните по jd-gui и щелкните по открытому файлу. Затем откройте файл classes.dex.dex2jar
из этой папки. Теперь вы получаете файлы классов и сохраняете все эти файлы классов (нажмите на файл, затем нажмите "сохранить все источники" в jd-gui) по имени src. Распакуйте этот zip файл (classes_dex2jar.src.zip)
и вы получите все java файлы приложения.
На этом этапе вы получаете исходный код Java, но XML файлы по-прежнему не читаются, поэтому продолжайте.
Step 3:
Теперь откройте еще одну новую папку и поместите эти файлы
-
положить файл .apk, который вы хотите декодировать
-
скачать Apktool для
windows v1.x
иApktool
установить окно с помощью Google и положить в ту же папку
-
Скачайте файл framework-res.apk с помощью Google и поместите в одну папку (Не всем apk файлу нужен файл framework-res.apk)
-
Откройте командное окно
-
Перейдите в корневой каталог APKtool и введите следующую команду:
apktool if framework-res.apk.
Приведенная выше команда должна привести к Framework installed...
- apktool d "appName".apk("appName" обозначает приложение, которое вы хотите декодировать), теперь вы получаете папку с файлами в этой папке, и теперь вы также можете легко читать XML файлы.
Step 4:
Наконец, мы получили res/
а также java-код проекта, который является нашей целью при запуске.
PS
Если вы не можете получить папку res с помощью описанных выше шагов, пожалуйста, установите новыйapktool
- Java 1.7 установлена? Установите Apktool 2.x
- Java 1.6 или выше установлена? Установите Apktool 1.x
Enjoy and happy coding
Ответ 3
Нет программного обеспечения и не слишком много шагов..
Просто загрузите свой APK и получите все ресурсы с этого сайта.
https://www.apkdecompilers.com/
Этот веб-сайт декомпилирует код, встроенный в APK файлы, и извлекает все остальные ресурсы из файла.
примечание: я декомпилирую свой APK файл и получаю код в течение одной минуты с этого сайта
Обновление 1:
Я нашел другой сайт декомпилятора онлайн,
http://www.javadecompilers.com/apk/ - Не работает постоянно с просьбой о блокировке всплывающих окон
Обновление 2:
Я нашел приложение apk decompiler в магазине игр,
https://play.google.com/store/apps/details?id=com.njlabs.showjava
Мы можем декомпилировать файлы apk в нашем телефоне Android. а также мы можем просматривать файлы Java и XML в этом приложении
Обновление 3:
Мы можем использовать другую опцию Анализировать функцию APK из версии Android Studio 2.2
Построить → Анализировать APK → Выбрать свой APK → это даст результаты
Ответ 4
Существует новый способ сделать это.
Android Studio 2.2 имеет APK Analyzer, он даст много информации об apk, закажите его здесь: - http://android-developers.blogspot.in/2016/05/android-studio-22-preview-new-ui.html
Ответ 5
Не совсем. Существует ряд дезассемблеров/декомпиляторов dex таких как smali, или dex2jar, который будет генерировать полупрозрачный вывод (в случае dex2jar вы можете получить Java-код с помощью чего-то вроде JD- GUI, но этот процесс не является совершенным, и маловероятно, что вы сможете на 100% воссоздать исходный код. Однако это потенциально может дать вам возможность начать восстановление исходного дерева.
Ответ 6
Да, вы можете вернуть свой проект. Просто переименуйте файл yourproject.apk
в yourproject.zip
, и вы получите все файлы внутри этого ZIP файла. Мы меняем расширение файла с .apk на .zip. Из этого ZIP файла извлеките файл classes.dex
и декомпилируйте его следующим образом.
Во-первых, вам нужен инструмент для извлечения всех (скомпилированных) классов на DEX в JAR. Там один называется dex2jar, который сделан китайским учеником.
Затем вы можете использовать JD-GUI для декомпиляции классов в JAR в исходный код. Полученный исходный код должен быть вполне читабельным, поскольку dex2jar применяет некоторые оптимизации.
Ответ 7
Для этого выполните следующие шаги или просто используйте apkToJava gem для этого процесса, он даже позаботится о том, чтобы установить необходимые инструменты для его работы.
- конвертировать файл apk в zip
- разархивируйте файл
- извлечь из него classes.dex
- использовать dex для jar для преобразования classes.dex в файл jar.
- использовать jadx gui для открытия файла jar в качестве исходного кода java
Ответ 8
Для платформы Android вы можете попробовать ShowJava, доступный в магазине Play.
Вы можете просмотреть сгенерированный код через интерфейс приложения, а сгенерированные файлы java и структура папок хранятся в папке ShowJava
в /sdcard
вместе с результирующим файлом .jar
полученным в результате преобразования.
Приложение бесплатно с рекламным баннером внизу основного экрана, но есть возможность покупки в приложении (3,99 $), чтобы удалить его. Покупка из приложения не добавляет никаких функций, кроме удаления рекламного баннера.
Раскрытие информации: я не являюсь разработчиком приложения и никак не связан с ним.
Ответ 9
Если вы ищете профессиональную альтернативу, посмотрите JEB Decompiler из программного обеспечения PNF.
Существует демо-версия, которая позволит вам декомпилировать большинство кода.
Ответ 10
Ниже приведены некоторые из инструментов, которые вы можете использовать для выполнения обратного проектирования из файла APK в исходный код:
- Dex2jar
- декомпилятор Java
- Apktool
- Анализатор Apk