web-dev-qa-db-fra.com

Conversion du fichier .Java en fichier .Smali

J'ai inversé l'ingénierie d'une application Android avec APKTool et obtenu des fichiers .Smali comme sortie de code source. J'ai converti les fichiers .Smali avec une application en fichiers .Java. J'ai pu éditer avec succès le .Java fichiers mais maintenant je veux les reconvertir en .Smali afin que je puisse recompiler l'application avec les nouveaux fichiers .Smali. Lorsque je laisse juste le fichier .Java là, il ne le recompile pas et donne des erreurs. Je n'ai pas pu trouver rien sur la compilation de .Java en .Smali sur Internet, donc j'espère que vous pourrez m'aider.

Merci d'avance,

12
user3830316

Vous pouvez compiler les classes Java en utilisant un compilateur normal Java, puis utiliser l'utilitaire 'dx' d'Android pour convertir les fichiers .class compilés en un fichier dex). Et puis exécutez baksmali sur le fichier dex pour produire les fichiers smali.

Par exemple, supposons que vous ayez le code suivant dans un fichier Java nommé "HelloWorld.Java":

public class HelloWorld {
    public static void main(String[] args) {
         System.out.println("Hello World!");
    }
}

Pour le convertir en smali:

javac HelloWorld.Java
dx --dex --output=classes.dex HelloWorld.class
baksmali classes.dex
18
JesusFreke

Essayez Java2smali: https://github.com/ollide/intellij-Java2smali

Il s'agit d'une application utilisée pour convertir Java en Smali.

14
Dermot Blair