À propos du projet

jadx est un décompilateur Dex vers Java open-source distribué sous la licence Apache 2.0. Il fournit à la fois des outils en ligne de commande et une interface graphique permettant de produire du code source Java à partir de fichiers Dex et APK Android. Principales capacités : - Décompiler le bytecode Dalvik en code Java à partir de fichiers APK, dex, aar, aab et zip. - Décoder le fichier AndroidManifest.xml et d'autres ressources à partir de resources.arsc. - Inclut un déobfuscateur avec des limites configurables de longueur de noms, des listes blanches et la prise en charge de fichiers de mappage (Tiny, Tiny v2, Enigma, ProGuard, SRG, XSRG, JAM, CSRG, TSRG, TSRG 2, carte de migration IntelliJ, Recaf simple, JOBF). L'interface jadx-gui propose du code décompilé avec coloration syntaxique, un saut à la déclaration, la recherche d'utilisations, une recherche plein texte et un débogueur smali. Les raccourcis clavier et un aperçu des fonctionnalités sont documentés sur le wiki du projet. Les options d'installation comprennent les archives de publication sur GitHub, les builds nocturnes instables, les paquets Arch Linux (extra et AUR), Homebrew pour macOS et Flathub. Java 11 ou ultérieur en 64 bits est requis pour exécuter les outils. jadx peut également être utilisé comme bibliothèque dans des projets Java, et peut être compilé à partir du code source avec JDK 17 ou supérieur en utilisant Gradle. L'outil en ligne de commande accepte de nombreuses options couvrant les répertoires de sortie, les modes de décompilation (auto, restructure, simple, fallback), le décodage des ressources, le nombre de threads, l'exportation de projet Gradle, les paramètres de déobfuscation, les indicateurs de renommage, le formatage des entiers, l'exportation du graphe de flux de contrôle et du graphe d'appel, les niveaux de journalisation et les fichiers de configuration. Une commande plugins permet d'installer, lister, mettre à jour, activer et désactiver des plugins, avec des plugins intégrés pour l'entrée dex, la conversion Java, les métadonnées Kotlin, le SMAP Kotlin, les mappages de renommage et l'entrée smali. Les variables d'environnement permettent de personnaliser les répertoires de configuration, de cache et temporaires, ainsi que d'ajuster les contrôles de sécurité XML/zip et les limites d'entrées zip. Le README indique que jadx ne peut pas décompiler tout le code dans tous les cas, donc des erreurs peuvent survenir, et renvoie vers un guide de dépannage sur le wiki.