adb를 사용하여 애플리케이션 버전 이름 가져 오기


94

adb shell을 사용하여 Android 기기에서 애플리케이션의 버전 이름을 얻는 쉬운 방법이 있습니까?

/data/system/packages.xml에서 애플리케이션 버전 번호 (버전 이름 아님)를 찾았습니다.

Application Info가 포함 된 파일이 있으면 좋을 것입니다.

답변:


185
adb shell dumpsys package my.package | grep versionName

@david@Jeremy Fishman이 언급했듯이 . 다음보다 훨씬 빠릅니다.

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

1
패키지 정보가 표시되지만 어떤 이유로 태블릿에서 조회하려고 한 패키지 (안드로이드 2.2)에 대한 버전 정보가 누락되었습니다. 내 전화에는 모든 버전 정보가 있습니다 (안드로이드 2.3).
frognosis

1
잘 당신이 그것을 adb에서 고집한다면, 당신은 할 수 있습니다 : adb shell service call package 1 s16 "my.package"i32 0. 버전 번호는 0x1F 근처에있을 것이고 0x20 이후의 이름 문자열 (세 번째 줄이어야 함)
arbuz

35
adb shell dumpsys package my.package훨씬 빨라질 수 있습니다
Jeremy Fishman

6
dumpsys package my.package | grep versionName완벽하게 작동합니다
david

3
@david이지만 때로는 섹션 adb shell dumpsys package com.google.android.apps.photos | grep versionName 때문에 여러 결과를 반환합니다 Hidden system packages:. 아마 head -n1해결할 것입니다 ...
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

18

Dumpsys 패키지는 당신의 친구입니다

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


돌아올 것이다

versionCode=X targetSdk=YY
versionName=Z.Z

8

누군가 비교 목적으로 모든 앱 버전이 필요한 경우 다음은 내 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

누군가에게 도움이 될지도 모르지만 나는 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.