Extraire un APK d’un appareil Android via QtADB sur PC

86

Bonjour !
Il est parfois utile d’extraire des applications – comprenons ici « copier des applications » depuis son appareil via son PC. On peut souhaiter créer un zip flashable en utilisant un outil tel que “Android Flashable Zip Creator” afin d’installer d’emblée toutes ses applications préférées lors d’un changement de ROM par exemple. Mais nombre d’applications ne sont disponibles que via le Play Store qui ne permet pas le téléchargement. Parfois les mises à jour rendent les applications instables voir inutilisables sur son appareil, il est bon alors de conserver la version antérieure à la m.à.j. Encore une fois le “Play Store” n’est pas la solution. Ne parlons pas des applications bannies par Google comme par exemple celles permettant de télécharger des vidéos sur YouTube. On peut vouloir également extraire des applications système. Les motivations sont ici généralement différentes, importer un “apk” (clavier, caméra, lecteur mp3…) depuis une ROM dans une autre ROM en est une, le “reverse-engineering” (rétro-ingénierie in french) en est une autre ; il peut s’agir là de vouloir simplement traduire une interface ou, plus compliqué, éditer les ressources de l’apk pour modifier l’aspect, le comportement, etc. de l’application.

En aucun cas Tutoriels-Android et son équipe ne sauraient être tenus responsables d’éventuels problèmes rencontrés, veuillez appliquer ce tutoriel avec précaution. Quelles que soient vos motivations, l’importation d’apk système dans une ROM, le reverse-engineering, etc. sortent du cadre du tutoriel et sont l’affaire d’autres tutos.

Pré-requis pour extraire un APK d’un mobile Android via QtADB sur PC

Avants propos

Il va nous falloir un outil indispensable pour tout « Android-bidouilleur ». Cet outil s’appelle “Android Debug Bridge” (ADB pour les intimes). Un peu austère puisqu’il fonctionne en lignes de commandes, mais on peut être moche et cependant efficace. Normalement, ADB est un des outils du SDK Android (kit de développement logiciel) mais son utilité est telle que nombre de programmes incluent celui-ci dans leurs ressources. Nous allons survoler quelques-uns de ceux-ci, sachant qu’il en existe une myriade.

  • Le « SDK Android » est une grosse machine complexe destinée aux programmeurs, cependant la version de ADB est toujours à jour, et dans le tutoriel « Installation de adb sans le SDK Android en utilisant le SDK Manager » nous pouvons voir qu’il y a possibilité de n’en télécharger que les outils grâce au « SDK Manager ».
  • Virtuous Ten Studio“, si la modification d’apk est notre objectif, cet IDE, tant complet que performant, est selon moi la meilleure des options.
  • Kingo Android Root “, est un logiciel permettant de Rooter simplement un bon nombre d’appareils.
  • Apk_OneClick” est une suite d’outils qui permet d’un clic de décompiler un apk et tout aussi simplement de recompiler celui-ci tout en le zippalignant et en le signant dans la foulée. Cette application conviendra parfaitement à ceux qui souhaitent effectuer des modifications simples sur un apk sans avoir à taper une ligne de commandes, tant que celui-ci n’utilise pas un framework – une sorte de boîte à outils – particulier.

Si un des programmes “VTS, Kingo Android Root, Apk_OneClick” est installé alors ADB est déjà présent sur le PC. Nous le trouverons respectivement…

  • dans le répertoire de “VTS puis ExternalADB”.
  • dans le répertoire de “Kingo puis tools”.
  • dans le répertoire de “Apk_OneClick puis toolsothers”.

Pour être sûr d’avoir la dernière version de ADB il est préférable d’installer celui-ci via le “SDK Manager” en consultant le tutoriel cité plus haut.

D’autres logiciels utilisent ADB sans toutefois l’inclure dans leurs ressources. Parmi ceux – plus ou moins défaillants – que j’ai testé, un a suscité mon intérêt : “QtADB“, qui est une interface graphique pour ADB. Celui-ci est en version béta lors de la rédaction de ce tutoriel, il peut parfois être un peu capricieux mais constitue une bonne alternative à la console pour les personnes mal à l’aise avec les lignes de commandes. Disponible pour Windows, Linux et Mac, gratuit et open source.Voici un lien vers “xda” si l’anglais ne vous est pas inconnu. QAndroid

Installation et utilisation de QtADB

Au premier démarrage il nous sera demandé le chemin de ADB et de « AAPT ». Ce dernier – qui est également un des outils du SDK – est utilisé par QtADB pour gérer les applications, notamment pour la sauvegarde des apk et de leurs données (un backup à proprement parler). Pour installer “AAPT” il suffit d’utiliser le SDK Manager comme pour ADB, mais il nous faut cette fois-ci choisir le pack « build-tools ». Une fois téléchargé, nous copions/collons le fichier « aapt.exe » dans le répertoire de ADB ou inversement. Si nous ne souhaitons pas utiliser le “SDK Manager”, et qu’un des programmes “VTS, Kingo Android Root ou Apk_OneClick” est installé sur le PC, “AAPT” fait également partie des outils embarqués par ceux-ci. Il suffit de copier “AAPT” dans le répertoire de “ADB” ou vice-versa et d’indiquer ce chemin à “QtADB”. Comme pour ADB, pour être sûr d’avoir la dernière version de “AAPT” il est préférable d’installer ce dernier via le “SDK Manager”. Pour installer QtADB il nous suffit de décompresser l’archive téléchargée où nous le souhaitons.

Le gestionnaire d’applications

En utilisant le gestionnaire nous pouvons choisir de sauvegarder soit l’apk, soit ses données, soit l’ensemble. Un répertoire « QtADB/backup » sera créé sur la carte SD de l’appareil. Il est également possible, via le menu contextuel, de copier l’apk sur le PC. Le premier démarrage du gestionnaire peut être long. Menu contextuel du gestionnaire d'applications de QtADB

(Menu contextuel du gestionnaire d’applications de QtADB)

Répertoire de sauvegarde créé par QtADB sur la carte sd

(Répertoire de sauvegarde créé par QtADB sur la carte sd)

L’explorateur

files L’explorateur permet également la copie d’apk. Le glisser/déposer d’un panneau à l’autre évite toute confusion quand au répertoire de destination qui peut être indifféremment sur l’appareil ou le PC.

(Menu contextuel de l’explorateur de QtADB)

Le shell

shell Pour une utilisation avancée, nous pouvons également utiliser le shell pour extraire nos apk (voir “L’extraction d’apk d’un appareil Android via Android Debug Bridge (adb) sur PC” pour de plus amples explications). QtADB-shell

(Console de QtADB)