将.Java文件转换为.Smali文件

时间:2015-03-14 17:11:44

标签: java android smali apktool

我使用APKTool逆向设计了一个Android应用程序,并将.Smali文件作为源代码输出。我将带有应用程序的.Smali文件转换为.Java文件。我能够成功编辑.Java文件,但现在我想将它们转换回.Smali,以便我可以使用新的.Smali文件重新编译应用程序。当我在那里留下.Java文件时,它不会重新编译它并给出一些错误。我找不到任何关于在互联网上编译.Java到.Smali的内容,所以我希望你们能帮助我。

提前谢谢你,

1 个答案:

答案 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