从apk中解压jar文件,编辑java代码单个变量,然后重新编译到类和jar中



有一个旧的android apk文件,制造商不再支持它。

我发现可能出了什么问题,因为它正在调用java:中的一个方法

在一个java文件中(在dex2jar之后查看,并使用jdgui查看)

导入com.htc.buletoothconfirm

我只想将其更改为

导入com.htc.bluetoothconfirm

然后重新编译.class文件中。然后.class文件重新插入到.jar文件中。然后我将重建.apk文件。

问题是我不能用jdgui改变任何事情。

如果我试图用javac编译一个.java文件,它会给我导入错误(文件中有很多导入)。

我已经尝试过使用jad来反编译类文件,这就是我正在使用的。

尽管它给出了很多"无法完全反编译"的错误。

我想我想做的只是复制&将jdgui中的整个java文件内容粘贴到notepad中,将其保存为.java,然后将其编译到.class中,并将其重新插入.jar文件中。

但说起来容易做起来难。由于所有的导入,我不知道如何将这个新的.java文件编译成.class文件。(例如,我从哪里获得importandroid.content.intent;等等?我真的需要保留目录结构等等吗?)

有没有更简单的方法?我只是想换一行。其余的都可以保持不变。

您应该使用一些工具(如ASM-Android或Dedexer)反编译apk文件。如果您想生成一个类,可以使用sdcard在设备上生成,然后创建一个dex。我使用BCEL和ASM在设备上生成字节码。

最新更新