我使用APKTool逆向设计了一个Android应用程序,并将.Smali文件作为源代码输出。我将带有应用程序的.Smali文件转换为.Java文件。我能够成功编辑.Java文件,但现在我想将它们转换回.Smali,以便我可以使用新的.Smali文件重新编译应用程序。当我在那里留下.Java文件时,它不会重新编译它并给出一些错误。我找不到任何关于在互联网上编译.Java到.Smali的内容,所以我希望你们能帮助我。
提前谢谢你,
答案 0 :(得分:16)
您可以使用普通的java编译器编译java类,然后使用Android的'dx'实用程序将编译的.class文件转换为dex文件。然后在dex文件上运行baksmali以生成smali文件。
例如,假设您在名为“HelloWorld.java”的java文件中包含以下代码:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
将其转换为smali:
javac HelloWorld.java
dx --dex --output=classes.dex HelloWorld.class
baksmali classes.dex