我不小心从Eclipse中删除了我的项目,只剩下我转移到手机上的APK文件。有没有办法逆转将应用程序导出到 .apk 文件的过程,以便我可以取回我的项目?
13 回答
有两个有用的工具可以从未知的 APK 文件生成 Java 代码(粗略但足够好)。
从dex2jar下载 dex2jar 工具。
使用该工具将 APK 文件转换为JAR:Windows:
$ d2j-dex2jar.bat demo.apk dex2jar demo.apk -> ./demo-dex2jar.jar
macOS / Linux:
$ d2j-dex2jar.sh -f demo.apk -o demo.jar
生成 JAR 文件后,使用JD-GUI打开 JAR 文件。您将看到 Java 文件。
输出将类似于:
然后,您可以使用其他工具从 APK 文件中检索 AndroidManifest.xml 和资源文件(如图像、翻译等)。
首先我推荐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 apk 文件。现在从这里下载 dex2jarlink
并将其解压缩到同一个文件夹。现在打开命令提示符并将目录更改为该文件夹。
然后写入dex2jar classes.dex
并按回车。现在您classes.dex.dex2jar
在同一文件夹中获取文件。
然后下载java反编译器
现在双击 jd-gui 并单击打开文件。然后classes.dex.dex2jar
从该文件夹中打开文件。现在你得到类文件并通过 src 名称保存所有这些类文件(单击文件然后单击 jd-gui 中的“保存所有源”)。提取该 zip 文件(classes_dex2jar.src.zip)
,您将获得应用程序的所有 java 文件。
在这个阶段,您获得了 java 源代码,但 xml 文件仍然无法读取,所以继续。
Step 3:
现在打开另一个新文件夹并将这些文件
放置要解码的.apk文件
windows v1.x
为And下载 ApktoolApktool
使用谷歌安装窗口并放在同一个文件夹中
使用 google 下载 framework-res.apk 文件并放在同一个文件夹中(并非所有 apk 文件都需要 framework-res.apk 文件)
打开命令窗口
导航到 APKtool 的根目录并键入以下命令:
apktool if framework-res.apk.
上面的命令应该导致Framework installed ...
.
- apktool d "appName".apk ("appName" 表示您要解码的应用程序) 现在您在该文件夹中获得了一个文件夹,现在您也可以轻松读取 xml 文件。
Step 4:
最后我们得到了res/
项目的java代码,这是我们开始时的目标。
P.S.
如果您无法通过上述步骤获取 res 文件夹,请安装新的apktool
- 是否安装了 Java 1.7? 安装 Apktool 2.x
- 是否安装了 Java 1.6 或更高版本? 安装 Apktool 1.x
Enjoy and happy coding
没有软件&没有太多步骤..
只需上传您的 APK 并从该站点获取您的所有资源..
https://www.apkdecompilers.com/
本网站将反编译 APK 文件中嵌入的代码并提取文件中的所有其他资产。
注意:我反编译我的 APK 文件并在一分钟内从该网站获取代码
更新 1:
我找到了另一个在线反编译器网站,
http://www.javadecompilers.com/apk/ - 不能连续工作,要求阻止弹出窗口
更新 2:
我在 Play 商店中找到了 apk 反编译器应用程序,
https://play.google.com/store/apps/details?id=com.njlabs.showjava
我们可以在我们的android手机中反编译apk文件。我们还可以查看此应用程序中的 java & xml 文件
更新 3:
我们可以使用另一个选项从 Android studio 2.2 版本分析 APK功能
构建 -> 分析 APK -> 选择您的 APK -> 它给出结果
有一种新方法可以做到这一点。
Android Studio 2.2 有 APK Analyzer 它会提供很多关于 apk 的信息,在这里查看:- http://android-developers.blogspot.in/2016/05/android-studio-22-preview-new-ui.html
对于 Android 平台,您可以尝试Play 商店中提供的ShowJava 。
您可以通过应用程序界面查阅生成的代码,生成的 java 文件和文件夹结构与转换生成的文件一起存储在ShowJava
文件夹中。/sdcard
.jar
该应用程序是免费的,主视图底部有一个广告横幅,但有一个应用内购买选项(3,99 美元)可以将其删除。除了删除广告横幅外,应用内购买不会添加任何功能。
披露:我不是该应用程序的开发人员,我也与他没有任何关系。
试试这个工具:https ://decompile.io ,它可以在 iPhone/iPad/Mac 上运行
请按照以下步骤执行此操作或简单地使用apkToJava gem进行此过程,它甚至会负责安装所需的工具以使其正常工作。
- 将apk文件转换为zip
- 解压文件
- 从中提取 classes.dex
- 使用dex转jar将classes.dex转成jar文件
- 使用jadx gui打开jar文件作为java源代码
如果您正在寻找专业的替代方案,请查看 PNF Software 的JEB Decompiler。
有一个演示版本可以让您反编译大多数代码。
以下是一些可用于执行从 APK 文件到源代码的逆向工程的工具:
- dex2jar
- Java反编译器
- APK工具
- APK 分析器
您可能想要使用的另一个工具是APK Studio 它依赖于第三方工具:Apktool、jadx、ADB 和 Uber APK 签名器,您需要单独下载。