例えば、mapという文字を含むパッケージ一覧を取得します。
windows cmd.exe
adb shell "pm list packages ""map"""
参考:Androidデバイスが2台以上接続されている時
デバイスが2つ以上接続されている場合は、-s オプションでデバイスを指定します。
windows cmd.exe
adb -s "XXXXXXXX" shell "pm list packages ""map"""
参考:ダブルクオートのエスケープについて
ダブルクオートは入れ子にする場合、Windows Batの場合は二つ続けて書きます。("")linuxシェルの場合はバックスラッシュでエスケープします(\")
rem 入れ子 (windows)
"example string ""string 2"" string3"
# 入れ子 (linux)
"example string \"string 2\" string3"
結果は以下のようになります(複数ヒットすることもあります)
package:より後の部分がパッケージ名です。
package:com.google.android.apps.maps
上で取得したパッケージ名を元に、バージョンとAPIレベルを取得します。
windows cmd.exe
adb shell "pm dump ""com.google.android.apps.maps""|grep -E ""targetSdk=|versionName="""
これはAndroid側では以下のように解釈されます。1つ目の|
はパイプ、2つ目の|
は正規表現の演算子になります。
Android
pm dump "com.google.android.apps.maps"|grep -E "targetSdk=|versionName="
結果は以下のようになります。
versionCode=1066946479 minSdk=23 targetSdk=33
versionName=11.72.0302
versionCode=1036500244 minSdk=21 targetSdk=29
versionName=10.36.5
googleマップの場合は2つ出てきますが、バージョンを表している情報は上側のものです。
grepの正規表現による絞り込みなので、必ずしも厳密な情報は得られない点に注意してください。(grepはAndroid側で動いています。Android10とAndroid4.4で動作確認)
#C0FFEE