87 votes

Décompiler un APK, le modifier puis le recompiler

J'ai besoin de modifier un APK existant, de modifier les sources et de le recompiler.

  • Je peux le décompiler en utilisant dex2jar ou apktool, il fonctionne très bien.
  • A partir du fichier jar, je peux obtenir les sources java (en utilisant jd-gui)
  • Je peux ensuite modifier les fichiers java

Mais maintenant j'aimerais savoir comment recompiler les fichiers java et les remettre dans un fichier jar ! (la partie jar devrait être facile, le problème principal semble être comment recompiler les fichiers java pour Android)

Je sais qu'une autre solution est d'utiliser apktool et de modifier ensuite les fichiers smali, mais cela semble vraiment compliqué quand on veut ajouter beaucoup de code !

Mon application est un HelloWorld basique sans obfuscation.

2voto

Pradeep Tiwari Points 61

dex2jar con jd-gui donnera tous les fichiers sources Java, mais ils ne sont pas exactement les mêmes. Il s'agit de fichiers .class presque équivalents (pas à 100 %). Donc si vous voulez changer le code d'un fichier apk :

  • décompiler en utilisant apktool

  • apktool génère un fichier smali (version assemblée de dex) pour chaque fichier java portant le même nom.

  • smali est compréhensible par l'homme, apportez des modifications au fichier concerné, recompiler en utilisant le même apktool ( apktool b Nw.apk <Folder Containing Modified Files> )

-2voto

Thomas P. Wilt Points 1

Je sais que cette question a déjà reçu une réponse et je n'essaie pas de faire le malin. Je souhaite simplement partager une autre méthode sur ce sujet.

Télécharger les applications avec apk grail

APK Grail fournissant le fichier zip gratuit de l'application.

-3voto

quyet Points 9

C'est un moyen :

  1. Utilisation apktool à décoder :

     $ apktool d -f {apkfile} -o {output folder}
  2. Ensuite, en utilisant JADX (sur github.com/skylot/jadx)

     $ jadx -d {output folder} {apkfile}

2 outils extraient et décompilent dans le même dossier de sortie.

C'est simple : Utiliser un décompilateur APK en ligne

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X