Selon les tags présents sur cette page, celle-ci n'a pas été vérifiée pour une des versions LTS supportées d'Ubuntu.
Apktool
Il s'agit d'un outil en ligne de commandes de réingénierie d'applications Android binaires, tierces et fermées sous licence Apache 2.0. Il peut décoder des ressources à la forme presque originale et les reconstruire après avoir fait quelques modifications; Il permet de déboguer le code smali étape par étape. De plus, il facilite le travail avec l'application grâce à la structure de fichiers et à l'automatisation de certaines tâches répétitives comme la construction d'apk, etc.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
- Avoir java 7 (JRE 1.7) installé
- Connaissances basiques de Android SDK, AAPT and smali
Installation
- Télécharger Linux wrapper script (Clic droit, enregistrer le lien sous apktool)
- Télécharger apktool-2 (derniere version ici)
- Renommer le fichier .jar téléchargé en apktool.jar
- Déplacer les deux fichiers (apktool.jar & apktool) dans /usr/local/bin (root requis)
- Rendez les deux fichiers executables (chmod +x)
- Lancez apktool via le Terminal avec la commande apktool
Utilisation
Décodage
L'option de décodage peut être appelée par les arguments d ou decode comme montré ci-dessous
apktool d foo.jar // décode foo.jar dans le répertoire foo.jar.out apktool decode foo.jar // décode foo.jar dans le répertoire foo.jar.out apktool d bar.apk // décode bar.apk dans le répertoire bar apktool decode bar.apk // décode bar.apk dans le répertoire bar apktool d bar.apk -o baz // décode bar.apk dans le répertoire baz
Construction
L'option de re/construction peut être appelée par les argument b ou build comme montré ci-dessous
apktool b foo.jar.out // builds foo.jar.out folder into foo.jar.out/dist/foo.jar file apktool build foo.jar.out // builds foo.jar.out folder into foo.jar.out/dist/foo.jar file apktool b bar // builds bar folder into bar/dist/bar.apk file apktool b . // builds current directory into ./dist apktool b bar -o new_bar.apk // builds bar folder into new_bar.apk
Frameworks
Comme vous le savez probablement, les applications Android utilisent du code et des ressources qui se trouvent sur le système d'exploitation Android lui-même. Ceux-ci sont connus comme des Framework et Apktool s'appuie sur ceux-ci pour correctement décoder et construire des apks.
Les Frameworks peuvent êtres installés avec if ou install-framework, de plus deux paramètres autorisent un contrôle plus précis sur la manière dont les fichiers sont nommés et stockés.
-p, –frame-path <dir>- Stocke le framework dans<dir>-t, –tag <tag>- Tag frameworks utilisant<tag>
apktool if framework-res.apk I: Framework installé dans: 1.apk // pkgId du framework-res.apk déterminent le numéro (lequel est 0x01) apktool if com.htc.resources.apk I: Framework installé dans: 2.apk // pkgId de com.htc.resources est 0x02 apktool if com.htc.resources.apk -t htc I: Framework installé dans: 2-htc.apk // pkgId-tag.apk apktool if framework-res.apk -p foo/bar I: Framework installé dans: foo/bar/1.apk apktool if framework-res.apk -t baz -p foo/bar I: Framework installé dans: foo/bar/1-baz.apk
Les différents Framework sont stockés dans $HOME/.local/share/apktool
Pour la plupart des apk dans /system/framework sur un appareil sera un fichier framework. Sur certains appareils, ils peuvent être situés dans /data/system-framework et même habilement cachés dans /system/app ou /system/priv-app. Ils sont habituellement désignés sous les noms "resources", "res" or "framework".
Désinstallation
Pour supprimer cette application, il suffit de supprimer les fichiers apktool et apktool.jar situés dans /usr/local/bin . Les apk que vous aurez décompilé sont conservées.
Voir aussi
- (en) Freenode #apktool - IRC Channel pour support, bugs et discussions
—- Contributeurs principaux : deobs.
Basé sur A tool for reverse engineering Android apk files par Ryszard Wiśniewski créateur et Connor Tumbleson mainteneur actuel.
