我需要修改现有的 APK,修改源代码,然后重新编译。
- 我可以使用 dex2jar 或 apktool 进行反编译,效果很好
- 从 jar 文件中我可以获取 java 源代码(使用 jd-gui)
- 然后我就可以修改java文件了
但是现在我想知道如何重新编译 java 文件并将它们放回 jar 文件中! (jar部分应该很简单,主要问题似乎是如何为android重新编译java文件)
我知道另一种解决方案是使用apktool,然后修改smali文件,但是当我们要添加大量代码时,它似乎真的很复杂!
我的应用程序是一个基本的 HelloWorld 没有混淆。
最佳答案
多亏了 Chris Jester-Young,我终于成功了!
我认为我设法做到的方式只适用于非常简单的项目:
- 使用 Dex2jar 我获得了 Jar。
- 使用 jd-gui 我将我的 Jar 转换回 Java 文件。
使用 apktool 我得到了 android list 和资源文件。
在 Eclipse 中,我创建了一个与旧项目相同设置的新项目(检查 list 文件中的所有信息)
- 创建项目后,我将所有资源和 list 替换为我通过 apktool 获得的资源和 list
- 我将从 Jar 中提取的 java 文件粘贴到 src 文件夹中(尊重包)
- 我根据需要修改这些文件
- 一切都在编译!
/!\确保您从设备中删除了旧的 apk,将会抛出错误,指出 apk 签名与旧的不同!
关于java - 反编译一个APK,修改它然后重新编译它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12370326/