Adb shell kullanan bir Android cihazda bir uygulamanın sürüm adını almanın kolay bir yolu var mı?
Uygulama sürüm numarasını (sürüm adını değil) /data/system/packages.xml'de buldum.
Uygulama Bilgilerini içeren bir dosya olsaydı iyi olurdu.
Yanıtlar:
adb shell dumpsys package my.package | grep versionName
@david ve @Jeremy Fishman tarafından belirtildiği gibi . Bu, şunlardan çok daha hızlı olacaktır:
adb shell dumpsys | grep -A18 "Package \[my.package\]"
adb shell dumpsys package my.package
önemli ölçüde daha hızlı olabilir
dumpsys package my.package | grep versionName
mükemmel çalışıyor
adb shell dumpsys package com.google.android.apps.photos | grep versionName
nedeniyle birden çok sonuç döndürür Hidden system packages:
. Belki bir head -n1
çözer ...
Birinin karşılaştırma amacıyla tüm uygulama sürümlerine ihtiyacı olması durumunda işte benim oneliner'ım:
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
Belki birileri için faydalı olabilir, ancak lütfen versionName kullandığımı ve versionCode'u yok saydığımı unutmayın, bu yüzden dikkatli kullanın.
Tüm paket sürümlerini almak istiyorsanız, bu awk komut dosyasını deneyin:
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 = ""; } }'