Obtener el nombre de la versión de la aplicación usando adb


94

¿Existe una manera fácil de obtener el nombre de la versión de una aplicación en un dispositivo Android usando adb shell?

Encontré el número de versión de la aplicación (no el nombre de la versión) en /data/system/packages.xml.

Sería bueno si hubiera un archivo que contuviera la información de la aplicación.

Respuestas:


184
adb shell dumpsys package my.package | grep versionName

como lo mencionan @david y @Jeremy Fishman . Esto será mucho más rápido que:

adb shell dumpsys | grep -A18 "Package \[my.package\]"

1
Eso me muestra la información del paquete, pero por alguna razón falta la información de la versión de cualquier paquete que haya intentado buscar en mi tableta (Android 2.2). En mi teléfono está toda la información de la versión (Android 2.3).
frognosis

1
bueno, si insiste en hacerlo en adb, puede hacerlo: adb shell service call package 1 s16 "my.package" i32 0. el número de versión estará cerca de 0x1F y la cadena de nombre después de 0x20 (debería ser la tercera línea)
arbuz

35
adb shell dumpsys package my.packagepuede ser significativamente más rápido
Jeremy Fishman

6
dumpsys package my.package | grep versionNamefunciona perfecto
David

3
@david, pero a veces devuelve varios resultados, por ejemplo, adb shell dumpsys package com.google.android.apps.photos | grep versionName debido a la Hidden system packages:sección. Quizás uno head -n1lo resolvería ...
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

17

El paquete Dumpsys es tu amigo

~/# adb shell
shell@mo:/ dumpsys package tld.comp.app_name | grep version


Volverá

versionCode=X targetSdk=YY
versionName=Z.Z

8

En caso de que alguien necesite todas las versiones de aplicaciones para comparar propósitos, aquí está mi delineador:

for p in `adb shell pm list package | awk -F"package:" '{print $2}'`; do echo -n "$p: "; adb shell dumpsys package $p | grep -i versionName | awk -F"=" '{print $2}'; done

Tal vez sea útil para alguien, pero tenga en cuenta que utilizo versionName e ignoro versionCode, así que úselo con cuidado.


5

Si desea obtener todas las versiones del paquete, pruebe este script awk:

adb shell dumpsys package | awk '/^[ ]*Package \[.*\] (.*)/ { i = index($0, "[") + 1; pkg = substr($0, i, index($0, "]") - i); } /[ ]*versionName=/ { { print pkg "\t" substr($0, index($0, "=") + 1); pkg = ""; } }'

1
¡BONITO! Esta es una forma mucho más rápida que la de la respuesta de @ LLL
MichaelR

1

Si no desea instalar * .apk en el dispositivo pero necesita obtener la versión de la aplicación, puede hacerlo de la siguiente manera

$ANDROID_HOME/build-tools/28.0.3/aapt dump badging app/build/outputs/apk/app.app
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.