有一个旧的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在设备上生成字节码。