adbを使用してアプリケーションのバージョン名を取得する


94

adbシェルを使用してAndroidデバイス上のアプリケーションのバージョン名を取得する簡単な方法はありますか?

/data/system/packages.xmlでアプリケーションのバージョン番号(バージョン名ではない)を見つけました。

アプリケーション情報を含むファイルがあると便利です。

回答:


184
adb shell dumpsys package my.package | grep versionName

@david@Jeremy Fishmanが述べたように。これは以下よりもはるかに高速です。

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

1
これにはパッケージ情報が表示されますが、何らかの理由で、タブレット(android 2.2)で検索しようとしたパッケージのバージョン情報がありません。私の電話にはすべてのバージョン情報があります(Android 2.3)。
フログノーシス

1
あなたが行うことができ、ADBにそれをやって主張しうまく場合:adbのシェルサービスコールパッケージ1 S16「my.packageを」I32を0バージョン番号は0x20の後0x1Fの近くのどこかに、名前の文字列(3行目でなければなりません)になります
arbuz

35
adb shell dumpsys package my.package大幅に高速化できます
Jeremy Fishman 2014年

6
dumpsys package my.package | grep versionName完璧に機能する
デビッド

3
@davidですがadb shell dumpsys package com.google.android.apps.photos | grep versionName Hidden system packages:セクションなどが原因で複数の結果が返される場合があります。多分head -n1それが解決するでしょう...
Ciro Santilli郝海东冠状病六四事件法轮功

17

Dumpsysパッケージはあなたの友達です

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


戻ります

versionCode=X targetSdk=YY
versionName=Z.Z

8

誰かが目的を比較するためにすべてのアプリのバージョンを必要とする場合、ここに私のワンライナーがあります:

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

多分それは誰かのために役立つでしょうが、私はversionNameを使用し、versionCodeを無視しているので注意して使用してください。


5

すべてのパッケージバージョンを取得する場合は、次の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
いいね!これは
@LLL

1

デバイスに* .apkをインストールしたくないが、アプリのバージョンを取得する必要がある場合は、次のように実行できます

$ANDROID_HOME/build-tools/28.0.3/aapt dump badging app/build/outputs/apk/app.app
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.