жесткий диск на моем ноутбуке просто разбился, и я потерял весь исходный код приложения, над которым я работал в течение последних двух месяцев. У меня есть только APK файл, который хранится в моей электронной почте, когда я отправил его другу.
есть ли способ, чтобы извлечь исходный код из этого файла APK?
автор: Jeroen Vannevel
16 ответов
простой способ: используйте онлайн-инструмент http://www.javadecompilers.com/apk, загрузить apk и получить исходный код.
процедура декодирования .файлы apk, пошаговый метод:
Шаг 1:
- создайте новую папку и скопируйте ее.файл apk, который вы хотите декодировать.
- теперь переименуйте расширение этого .apk файл .zip (например, переименовать из filename.apk для имени файла.ZIP) и сохраните его. Теперь вы можете доступ к классам.DeX файлы и т. д. На этом этапе вы можете видеть drawables, но не xml и java-файлы, поэтому продолжайте.
Шаг 2:
- теперь этот экстракт .zip-файл в той же папке (или новой папке).
- скачать dex2jar и извлечь его в ту же папку (или новую папку).
- ход занятия.dex файл на dex2jar папка.
- теперь откройте командную строку и измените каталог на эту папку (или новую папку). Тогда пиши d2j-dex2jar classes.dex (для Mac terminal или ubuntu напишите ./d2j-dex2jar.sh classes.dex ) и нажмите enter. Теперь у тебя есть занятия.Декс.dex2jar файл в той же папке.
- скачать Java decompiler, дважды щелкните по jd-gui, нажмите «Открыть файл» и откройте классы.Декс.dex2jar файл из этой папки: теперь вы получаете файлы классов.
- сохранить все эти файлы классов (в JD-gui нажмите Файл — > Сохранить все источники) по имени src. На этом этапе вы получаете источник java, но .xml-файлы по-прежнему не читаются, поэтому продолжайте.
Шаг 3:
теперь откройте другую новую папку
Как получить исходный код почти любого apk?
- положить в .apk файл, который вы хотите декодировать
- скачать последнюю версию apktool и окно установки apktool (оба могут быть скачано по той же ссылке) и поместите их в ту же папку
- откройте командное окно
- Теперь запустите команду apktool if framework-res.apk и далее
- apktool d myApp.apk (где myApp.apk обозначает имя файла, которое вы хотите декодировать)
теперь вы получаете папку с файлами в этой папке и можете легко читать xml-файлы apk.
Шаг 4:
это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае обеих новых папок)в одну
и наслаждайтесь исходным кодом.
автор: Prankul Garg
это альтернативное описание-на всякий случай, если кто-то застрял с описанием выше. Выполните следующие действия:
- скачать apktool.bat (или apktool для Linux) и apktool_.jar от http://ibotpeaches.github.io/Apktool/install/
- переименуйте файл jar сверху в apktool.jar и поместите оба файла в одну папку
- откройте окно dos ( cmd.exe ) и перейдите в эту папку; убедитесь, что установлена среда Java (для Linux также проверьте заметки о необходимых библиотеках)
- начало: apktool decode [apk file] промежуточный результат: файлы ресурсов, AndroidManifest.xml
- распакуйте файл APK с помощью распаковщика по вашему выбору промежуточный результат: classes.dex
- скачать и извлечь dex2jar-0.0.9.15.zip от JD-GUI или DJ Декомпилятор) результат исходный код
Примечание: не разрешается декомпилировать пакеты сторонних производителей; это руководство предназначено для восстановления личного исходного кода только из файла APK; наконец, результирующий код, скорее всего, будет запутан
Отладка APK файла в Android Studio без исходного кода
автор: Trinimon
пока вы можете декомпилировать свой APK файл, вы, вероятно, нажмете одну большую проблему:
он не собирается возвращать код, который ты написал. Вместо этого он будет возвращать все, что компилятор встроил, с переменными, заданными случайными именами, а также функциями, заданными случайными именами. Это может занять значительно больше времени, чтобы попытаться декомпилировать и восстановить его в код, который у вас был, чем начать все сначала.
к сожалению, такие вещи убил много проекты.
В будущем я настоятельно рекомендую изучить систему управления версиями, например CVS, SVN и git etc.
и как это сделать.
автор: Ryan Gooler
существует также новое приложение на Play Store С помощью которого можно декомпилировать apk (системные приложения тоже) и просмотреть исходный код прямо на вашем смартфоне. Она сохраняет файлы на SD карту, так что вы можете просмотреть его на вашем компьютере. Для этого не Требуется root или что-то еще.
просто установите и получайте удовольствие. Я думаю, что это самый простой способ декомпилировать приложение.
автор: Cilenco
apktool это лучшее, что вы можете попробовать. Я сохранил с ним xml, но, честно говоря, я не знаю, как он будет работать с ним .Java-код.
Я бы рекомендовал вам иметь репозиторий кода, даже если вы единственный кодер. Я использовал Проект Locker для моих собственных проектов. Это дает вам бесплатный SVN и Git РЕПО.
автор: Macarse
эти две статьи описывают, как сочетать использование apktool и dex2jar взять APK файл и создать проект Eclipse, который может создавать и запускать его.
- использовать apktool to получить файлы ресурсов из apk
- использовать dex2jar чтобы получить файл jar, содержащий классы в формате, который понравится Eclipse.
- создать проект Eclipse укажите его на файлы ресурсов и новый файл jar
- откройте файл jar с помощью утилиты zip и удалите существующие ресурсы
- откройте файл jar с помощью JDGui для просмотра исходного кода
- Возьмите любой исходный код, который вам нужен от JDGui , вставьте его в класс внутри Eclipse и изменить его
- удалите этот класс из файла jar (так что у вас нет одного и того же класса, определенного несколько раз)
- запустить его.
автор: Tom Hennen
apktool будет работать. Вам даже не нужно знать хранилище ключей для извлечения исходного кода (что немного страшно). Основным недостатком является то, что источник представлен в формате Smali вместо Java. Другие файлы, такие как значок и основной.xml проходит отлично, хотя и может стоить вашего времени, чтобы по крайней мере восстановить их. В конечном счете, вам, скорее всего, придется переписать свой Java-код с нуля.
вы можете найти apktool здесь. Просто скачайте apktool и соответствующий помощник (для Windows, Linux или Mac OS). Я рекомендую использовать такой инструмент, как 7-Zip, чтобы распаковать их.
автор: Ryan Berger
есть несколько способов сделать это:
- используйте функцию «профиль или отладка APK» в Android Studio 3.0. Это позволяет открывать и исследовать APKs в Android Studio. Занятия декомпиляция в smali. Ресурсы не извлекаются, и такие вещи, как» перейти к определению»,» найти все ссылки » и отладка не работают без исходного кода (android studio 3.0 canary 9). Некоторые дополнительные функции smali могут работать с smalidea.
- использовать jadx. Jadx декомпилирует код в данном APK в исходные файлы java.
- использовать 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.
автор: 0xcaff
может быть легко увидеть источник:
в Android studio 2.3, Build -> Analyze APK -> Select the apk that you want to decompile .
Вы увидите, что это исходный код.
Источник: askdev.ru
Как получить исходный код из .apk-файла?
Какого плана ответ Вы хотите получить? Полный процесс декомпиляции, думаю, никто описывать не будет, но Вы можете найти множество информации в интернете по запросу, например, «декомпиляция apk», а потом задать какой-то конкретный вопрос. Но вообще дело это непростое и не всегда результативное.
2 сен 2016 в 19:07
apk не содержит исходного кода, следовательно никак.
2 сен 2016 в 22:16
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
apk содержит только байт-код (файлы .smali, а не исходники), который можно получить утилитой apktool (или другими на ее основе). Байт-код можно преобразовать в java-код утилитами dex2jar и в «исходники» утилитой jd gui (или другими на их основе).
Однако назвать полноценным исходником полученный результат можно с большой натяжкой, чаще всего из таких «исходников» невозможно вновь собрать рабочий apk, не проделав титанический труд.
Читаемость таких «исходников» тоже, мягко говоря, под вопросом. Результат примерно аналогичен машинному переводу: русский — английский — французкий — русский, то есть никакой.
Отслеживать
ответ дан 3 сен 2016 в 0:11
36.7k 6 6 золотых знаков 47 47 серебряных знаков 121 121 бронзовый знак
Хорошее сравнение с машинным переводом.
23 сен 2016 в 3:50
Только с языками при этом лучше.)
4 дек 2019 в 16:15
Вы можете воспользоваться одним из apk декомпиляторов, например этим, или этим. В интернете можно найти много информации по декомпиляторам, так и гайдов/доков по ним.
Отслеживать
user177221
ответ дан 2 сен 2016 в 20:53
Rostyk Shevtsiv Rostyk Shevtsiv
406 2 2 серебряных знака 4 4 бронзовых знака
- java
- android
- дизассемблирование
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Источник: ru.stackoverflow.com
Видео: Как посмотреть исходный код android приложения? Декомпиляция .apk файла (реверс инжиниринг)
Представляем вашему вниманию Видео: Как посмотреть исходный код android приложения? Декомпиляция .apk файла (реверс инжиниринг) с канала Start Android. Приятного просмотра!
Чтобы увидеть исходный java код приложения android, его нужно декомпилировать. В этом видео вы узнаете, как декомпилировать .apk файл прямо на вашем андроид-смартфоне, без использования настольного компьютера.
Ссылки в видео:
Приложение для декомпиляции апк-файлов:
#decompiler #android #java
Смотрите также:
Список всех уроков:
Часто встречающиеся проблемы и ошибки при разработке android приложений:
Инструменты Android разработчика:
Подкасты с android разработчиками:
Уроки Android Studio разработка мобильных приложений:
Разработка мобильных игр:
Вас могут заинтересовать другие материалы:
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‘actions_post_nav’ not found or invalid function name in /var/www/ch8648adac/www/linuxgid.ru/wp-includes/class-wp-hook.php on line 288
Источник: linuxgid.ru