Ottieni il nome della versione dell'applicazione utilizzando adb


94

Esiste un modo semplice per ottenere il nome della versione di un'applicazione su un dispositivo Android utilizzando adb shell?

Ho trovato il numero di versione dell'applicazione (non il nome della versione) in /data/system/packages.xml.

Sarebbe bello se ci fosse un file che contenga le informazioni sull'applicazione.

Risposte:


184
adb shell dumpsys package my.package | grep versionName

come menzionato da @david e @Jeremy Fishman . Questo sarà molto più veloce di:

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

1
Questo mi mostra le informazioni sul pacchetto ma per qualche motivo mancano le informazioni sulla versione per qualsiasi pacchetto che ho provato a cercare sul mio tablet (Android 2.2). Sul mio telefono sono presenti tutte le informazioni sulla versione (Android 2.3).
frognosis

1
beh, se insisti a farlo in adb, puoi farlo: adb shell service chiama package 1 s16 "my.package" i32 0. il numero di versione sarà da qualche parte vicino a 0x1F e la stringa del nome dopo 0x20 (dovrebbe essere la terza riga)
arbuz

35
adb shell dumpsys package my.packagepuò essere significativamente più veloce
Jeremy Fishman

6
dumpsys package my.package | grep versionNamefunziona perfettamente
David

3
@david ma a volte restituisce più risultati, ad esempio a adb shell dumpsys package com.google.android.apps.photos | grep versionName causa della Hidden system packages:sezione. Forse a head -n1risolverlo ...
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

17

Il pacchetto Dumpsys è tuo amico

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


Sarà di ritorno

versionCode=X targetSdk=YY
versionName=Z.Z

8

Nel caso in cui qualcuno abbia bisogno di tutte le versioni delle app per scopi di confronto, ecco il mio oneliner:

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

Forse sarà utile per qualcuno, ma tieni presente che uso versionName e ignoro versionCode, quindi usalo con attenzione.


5

Se vuoi ottenere tutte le versioni del pacchetto, prova questo 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
SIMPATICO! Questo è un modo molto più veloce di quello nella risposta di @ LLL
MichaelR

1

Se non vuoi installare * .apk sul dispositivo ma hai bisogno di ottenere la versione dell'app, puoi farlo come segue

$ANDROID_HOME/build-tools/28.0.3/aapt dump badging app/build/outputs/apk/app.app
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.