Je recherche une possibilité de récupérer les deux les noms des paquets と les noms communs des applications installées sur un appareil Android via ADB - ou au moins pour retrouver le nom commun si le nom du paquet est connu. Une recherche rapide sur notre site a permis de trouver deux questions connexes, mais elles ne résolvent pas mon problème :
- Comment obtenir le nom commun d'une application ayant le nom du paquet (comme com.Android.blabla) ? (ligne de commande ou application incluse) ne fonctionne pas via ADB (mais utilise une application que vous devez rechercher manuellement), ce qui correspond à la demande du PO.
- Comment trouver une application à partir du nom du paquet ? revient simplement à une recherche d'URL à l'adresse Google Play ce qui ne convient pas toujours (car toutes les applications ne sont pas disponibles à cet endroit).
Je cherche un moyen de récupérer les informations directement à partir de l'appareil, si possible - et non pas "de n'importe quelle manière" (y compris par des "recherches sur le web" ou "via une application"), comme l'indiquent ces deux questions.
Je sais qu'il existe de nombreux outils permettant d'obtenir des détails sur les paquets :
-
adb dumpsys package
: Bien que cela liste tous les paquets avec un tas de détails, le "nom commun" n'est pas montré. -
adb shell pm list
: ne donne que le nom des paquets -
aapt
serait en mesure d'obtenir le nom commun, mais devrait d'abord extraire le nom de l'entreprise..apk
à partir de l'appareil, ce qui n'est pas vraiment pratique (et sera évidemment assez lent si de nombreuses et/ou grosses applications sont installées).
Est-ce que j'ai raté quelque chose ? Je sais que l'information doit être sur l'appareil (sinon comment pourrait-il afficher les noms des applications dans l'interface graphique ? Je doute qu'Android analyse l'information .apk
chaque fois que l'interface graphique a besoin du "nom commun"). Y a-t-il donc un moyen de le récupérer, en utilisant directement ADB ?
TL;DR
Contexte (si quelqu'un est curieux) : Je veux être capable d'obtenir rapidement une liste d'applications utilisateur à partir de n'importe lequel de mes appareils, sans avoir à recourir à l'acrobatie. Une liste de leurs noms de paquets peut être récupérée en utilisant adb shell pm list -3
mais comme il s'agit uniquement de noms de paquets, la reconnaissance des applications relève de la devinette. Donc, s'il y avait une commande ADB pour récupérer le nom commun pour un nom de paquet donné, je pourrais simplement utiliser une boucle comme for pkg in $(adb shell pm list -3); do echo "- $(adb <whatever_the_command_is> $pkg) ($pkg)"; done
- et obtenir une liste de toutes les applications utilisateur installées dans un "format lisible par l'homme", ainsi que le nom de leur paquetage.
Cas d'utilisation :
- Voir quelles applications "superflues" sont installées (que je pourrais supprimer)
- Recoupement des listes à partir de plusieurs appareils
- Documentation ;)
- et probablement plus (mais les 3 ci-dessus sont ce pour quoi j'en ai besoin)