Eu estou procurando uma possibilidade para recuperar tanto , os nomes dos pacotes e os nomes comuns de aplicativos instalados em um dispositivo Android via ADB - ou, pelo menos, para recuperar o nome comum, se o nome do pacote é conhecido. Uma pesquisa rápida em nosso site levantou duas questões relacionadas, mas elas não resolvem o meu problema:
- Como obtenho o nome comum de um aplicativo com o nome do pacote (como com.android.blabla)? (linha de comando ou aplicativo incluído) não funciona via ADB (mas usa um aplicativo que você precisa pesquisar manualmente), correspondendo à solicitação do OP
- Como encontrar um aplicativo com base no nome do pacote? apenas reverte para uma pesquisa de URL no Google Play , que nem sempre se encaixa (pois nem todos os aplicativos estão disponíveis lá).
Estou procurando uma maneira de recuperar as informações diretamente do dispositivo, se possível - não de maneira alguma (incluindo "pesquisas na web" ou "através de um aplicativo"), conforme essas duas perguntas.
Eu sei que existem várias ferramentas disponíveis para obter detalhes do pacote:
adb dumpsys package
: Enquanto isso lista todos os pacotes com vários detalhes, o "nome comum" não é mostradoadb shell pm list
: fornece apenas os nomes dos pacotesaapt
conseguiria obter o nome comum, mas exigiria primeiro extrair o.apk
arquivo do dispositivo, o que não é realmente conveniente (e obviamente será muito lento com muitos e / ou aplicativos grandes instalados)
Perdi algo? Sei que as informações devem estar no dispositivo (de que outra forma poderia mostrar os nomes dos aplicativos na GUI? Duvido que o Android analise o .apk
arquivo toda vez que a GUI precisar do "nome comum"). Então, existe uma maneira de contatá-lo, usando o ADB diretamente?
TL; DR
Histórico (se alguém estiver curioso): desejo obter rapidamente uma lista de aplicativos do usuário em qualquer um dos meus dispositivos, sem precisar reverter para acrobacias. Uma lista dos nomes de pacotes que posso recuperar usando adb shell pm list -3
, mas como esses são apenas nomes de pacotes, reconhecer aplicativos é uma suposição. Portanto, se houvesse algum comando do ADB para recuperar o nome comum de um determinado nome de pacote, eu poderia simplesmente usar um loop como for pkg in $(adb shell pm list -3); do echo "- $(adb <whatever_the_command_is> $pkg) ($pkg)"; done
- e obter uma lista de todos os aplicativos de usuário instalados em um "formato legível por humanos", juntamente com os nomes dos pacotes.
Casos de uso:
- Veja quais aplicativos "supérfluos" estão instalados (que eu poderia remover)
- Listas de verificação cruzada de vários dispositivos
- Documentação;)
- e provavelmente mais (mas os 3 acima são para o que eu preciso)