Je cherche une possibilité de récupérer les deux , les noms de package et les noms communs des applications installées sur un appareil Android via ADB - ou au moins de récupérer le nom commun si le nom du package est connu. Une recherche rapide sur notre site a soulevé deux questions connexes, mais elles ne résolvent pas mon problème:
- Comment puis-je obtenir le nom commun d'une application portant le nom du package (comme com.android.blabla)? (ligne de commande ou application incluse) ne fonctionne pas via ADB (mais utilise une application avec laquelle vous devez rechercher manuellement), correspondant à la demande de l'OP
- Comment trouver une application basée sur le nom du package? revient simplement à une recherche d'URL sur Google Play , ce qui ne correspond pas toujours (car toutes les applications ne sont pas disponibles là-bas).
Je cherche un moyen de récupérer les informations directement à partir de l'appareil, si possible - pas "de toute façon" (y compris les "recherches sur le Web" ou "via une application") comme ces deux questions l'ont.
Je sais qu'il existe plusieurs outils disponibles pour obtenir les détails du package:
adb dumpsys package
: Bien que cela répertorie tous les packages avec un tas de détails, le "nom commun" n'est pas affichéadb shell pm list
: donne uniquement les noms des packagesaapt
serait en mesure d'obtenir le nom commun, mais nécessiterait d'abord d'extraire le.apk
fichier de l'appareil, ce qui n'est pas vraiment pratique (et sera évidemment assez lent avec de nombreuses et / ou grandes applications installées)
Ai-je oublié quelque chose? Je sais que les informations doivent être sur l'appareil (comment pourrait-il autrement afficher les noms des applications dans l'interface graphique? Je doute qu'Android analyse le .apk
fichier chaque fois que l'interface graphique a besoin du "nom commun"). Alors, y a-t-il un moyen de s'en emparer en utilisant directement ADB?
TL; DR
Contexte (si quelqu'un est curieux): Je veux pouvoir obtenir rapidement une liste d'applications utilisateur à partir de n'importe lequel de mes appareils, sans avoir à revenir à l'acrobatie. Une liste de leurs noms de packages que je peux récupérer en utilisant adb shell pm list -3
, mais comme ce ne sont que des noms de packages, la reconnaissance des applications est une supposition. Donc, s'il y avait une commande ADB pour récupérer le nom commun d'un nom de package 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" avec leurs noms de package.
Cas d'utilisation:
- Voir quelles applications "superflous" sont installées (que je pourrais supprimer)
- Croiser les listes de contrôle de plusieurs appareils
- Documentation ;)
- et probablement plus (mais les 3 ci-dessus sont ce dont j'ai besoin)