Sto cercando una possibilità per recuperare entrambi , i nomi dei pacchetti e i nomi comuni delle app installate su un dispositivo Android tramite ADB - o almeno per recuperare il nome comune se il nome del pacchetto è noto. Una rapida ricerca sul nostro sito ha sollevato due domande correlate, ma non risolvono il mio problema:
- Come posso ottenere il nome comune di un'app con il nome del pacchetto (come com.android.blabla)? (riga di comando o app inclusa) non funziona tramite ADB (ma utilizza un'app con cui devi cercare manualmente), corrispondente alla richiesta dell'OP
- Come trovare un'app in base al nome del pacchetto? ritorna a una ricerca URL su Google Play , che non sempre si adatta (poiché non tutte le app sono disponibili lì).
Sto cercando un modo per recuperare le informazioni direttamente dal dispositivo, se possibile - non un modo "qualsiasi" (incluse le "ricerche sul web" o "tramite un'app") come hanno queste due domande.
So che ci sono più strumenti disponibili per ottenere i dettagli del pacchetto:
adb dumpsys package
: Mentre questo elenca tutti i pacchetti con un mucchio di dettagli, il "nome comune" non viene mostratoadb shell pm list
: fornisce solo i nomi dei pacchettiaapt
sarebbe in grado di ottenere il nome comune, ma richiederebbe innanzitutto di estrarre il.apk
file dal dispositivo, il che non è molto comodo (e ovviamente sarà piuttosto lento con molte e / o grandi app installate)
Ho dimenticato qualcosa? So che le informazioni devono essere sul dispositivo (in quale altro modo potrebbe mostrare i nomi delle app nella GUI? Dubito che Android analizzi il .apk
file ogni volta che la GUI necessita del "nome comune"). Quindi c'è un modo per ottenerlo, usando direttamente ADB?
TL; DR
Background (se qualcuno è curioso): voglio essere in grado di ottenere rapidamente un elenco di app utente da uno qualsiasi dei miei dispositivi, senza dover tornare alle acrobazie. È possibile recuperare un elenco dei nomi dei loro pacchetti adb shell pm list -3
, ma poiché si tratta solo di nomi di pacchetti, riconoscere le app è un'ipotesi. Quindi, se ci fosse un comando ADB per recuperare il nome comune per un determinato nome di pacchetto, potrei semplicemente usare un ciclo simile for pkg in $(adb shell pm list -3); do echo "- $(adb <whatever_the_command_is> $pkg) ($pkg)"; done
- e ottenere un elenco di tutte le app installate dall'utente in un "formato leggibile dall'uomo" insieme ai loro nomi di pacchetto.
Casi d'uso:
- Guarda quali app "superflue" sono installate (che potrei rimuovere)
- Elenchi di controllo incrociato da più dispositivi
- Documentazione ;)
- e probabilmente di più (ma i precedenti 3 sono ciò di cui ho bisogno)