Obtenir le code source des applications Android

Pour les développeurs et pour notre culture Android il est utile de savoir comment obtenir le code source d'une application pour Android. Comment ? en la décompilant !

Les applications pour Android sont des fichiers ayant l'extension "APK". 
En réalité elles sont compactées. Nous pouvons changer cette extension par "ZIP" ou "RAR" et la décompacter.


Nous aurons ainsi l'arborescence du projet et surtout à sa racine un fichier "classes.dex" qui contient toute l'intelligence de l'application.

Mais ce fichier ".DEX" est illisible.

Nous allons voir comment le décompiler et ainsi obtenir le code source en java du projet de l'application !

Il va nous falloir deux applications, plutôt trois en comptant winRAR.

- Dex2Jar : qui transformera le fichier "classes.dex" en "classes.dex.dex2jar.jar" 
- Un décompilateur Java comme JD. 
 

JD est proposé en application indépendante et en plug-in pour Eclipse. Ici j'ai choisi la version indépendante.(JD-GUI) 
decompiler apk

Je vous propose de créer un dossier "modif_apk" à la racine de votre C: et d'y télécharger les deux archivers : 
"dex2jar-0.0.7.7-SNAPSHOT.zip" et "jd-gui-0.3.3.windows.zip"

Extraire les 2  fichiers avec Winrar par un click droit sur l'archive en choississant "extraire vers" afin de créer un dossier pour les fichiers extraits.

Par exemple : le fichier "signedLatinIME.apk" qui est le clavier de Gingerbread.

Télécharger "signedLatinIME.apk" et renommer le en "signedLatinIME.rar", l'extraire avec Winrar en choisissant aussi "extraire vers"

Vous devriez avoir ça :

decompiler apk 
Dans le dossier où vous avez extrait l'application clavier de Gingerbread vous trouverez un fichier nommé : "classes.dex" qui contient le code source "compilé" . 
Copiez ce fichier dans le dossier "dex2jar-0.0.7.7-SNAPSHOT".

Le dossier "dex2jar-0.0.7.7-SNAPSHOT" devrait être comme ça :

Nous allons maintenant transformer "classe.dex"  en fichier .jar qui contient le code source du projet.

Pour cela ouvrez une console DOS par "démarrer", "exécuter" puis tapez cmd. Ou alors "démarrer", "tous les programmes", "accessoires", "invite de commande".

Dans cette console DOS tapez :

La console devrait vous afficher :

COPIE ECRAN de la Console DOS : 
consoleDos

Donc maintenant dans le dossier "C:modif_apkdex2jar-0.0.7.7-SNAPSHOT" vous devez  avoir un fichier : "classes.dex.dex2jar.jar" :

Maintenant nous allons transformer ce fichier en code source java de l'application.

Allez dans le dossier "C:modif_apkjd-gui-0.3.3.windows" et lancez "jd-gui.exe". 
java-decompiler apk android

Aller dans "File", "Open File", allez chercher le fichier "classes.dex.dex2jar.jar":

Cliquer sur "Ouvrir"  et oh incroyable le projet de l'application s'affiche dans Java Decompiler :

apk decompilée dans Java Cliquez sur l'image pour la voir en taille réelle.

Voila nous avons tout le code source du projet de l'application "signedLatinIME.apk".

Amusez-vous bien :)


Daniel Bort
Spécialisé dans les gadgets informatiques, je cuisine également des plats exotiques à la maison pour équilibrer mon immersion constante dans les dernières technologies et les actualités du LLM.
Création FBKW