Récemment, nous avons publié un guide sur la façon d’ajouter des dépendances pour uniquement des produits spécifiques. Après avoir mis en œuvre les étapes nécessaires, nous voulions nous assurer que la finale.apk ne contient en fait plus de classes indésirables. Dans cet article, nous allons vous montrer comment vérifier quelles classes et ressources se trouvent dans un apk.
Remarque: ce guide est conçu pour décompiler votre propre apk, et non le travail acharné des autres développeurs. Ainsi, nous n’avons inclus aucune étape de rétro-ingénierie ou de contournement de l’obscurcissement du code.
Préparation: Installation des outils
Un apk Android est essentiellement un répertoire compressé, qui contient certaines ressources brutes (images, fichiers de mise en page, ..) et un fichier classes.dex
. Ce fichier contient tout le code réel et nous intéresse le plus. Téléchargeons tous les outils dont nous avons besoin:
- Vous devrez décompresser l’apk. Vous pouvez utiliser les fonctionnalités intégrées de votre système d’exploitation ou installer votre archiveur (non) préféré comme 7-Zip.
- Afin d’inverser le fichier
classes.dex
en un.jar
, vous devrez télécharger l’outil dex2jar. - Enfin, afin de rendre le fichier
.jar
lisible pour l’œil humain, téléchargez et exécutez JD-Gui.
Récupérer votre code
D’accord, il est maintenant temps de faire le travail réel. Copiez votre fichier APK dans un répertoire dans lequel vous souhaitez travailler. Décompressez l’apk à l’aide de l’outil de votre choix et vous devriez obtenir un répertoire avec quelques sous-répertoires et quelques fichiers.
N’hésitez pas à parcourir le répertoire AndroidManifest.xml
ou le répertoire res
. La pièce la plus intéressante est le classes.dex
. Ainsi, passez à votre outil dex2jar
téléchargé et ouvrez un nouveau terminal.
Si vous êtes sous Mac OS, exécutez sh d2j-dex2jar.sh -f -o output.jar your_app_input.apk
. Les utilisateurs Windows peuvent utiliser le fichier .bat
pour créer le fichier .jar
. Une fois l’outil exécuté, accédez au nouveau fichier .jar
.
Affichage du Code décompilé
Enfin, démarrez l’outil JD-GUI
téléchargé et utilisez-le pour ouvrir le fichier .jar
.
Vous pouvez parcourir tous les packages et classes qui se trouvent dans votre apk. Le code est une version dépouillée et ne contient aucun commentaire ou structure redondante que vous voyez dans votreE. N’oubliez pas qu’il s’agit de la minimisation compilée de votre application. Néanmoins, il devrait vous donner suffisamment d’informations pour en apprendre davantage sur les bases de l’application. Par exemple, cela nous a aidés à vérifier qu’il n’y avait plus de packages liés à la bibliothèque admob dans l’application.
Autres options
Si vous avez juste besoin d’une décompilation rapide, vous pouvez utiliser l’outil en ligne à www.decompileandroid.com /.
Pour des fins de décompilation plus avancées, vous pouvez jeter un œil à apktool, qui donne beaucoup d’aides supplémentaires.