एडीबी का उपयोग करके एप्लिकेशन संस्करण नाम प्राप्त करें


94

क्या एंड्रॉइड डिवाइस पर एडीबी शेल का उपयोग करके एप्लिकेशन के संस्करण का नाम प्राप्त करने का एक आसान तरीका है?

मुझे /data/system/packages.xml में एप्लिकेशन संस्करण संख्या (संस्करण नाम नहीं) मिला।

यह अच्छा होगा यदि एक फ़ाइल थी जिसमें एप्लिकेशन जानकारी शामिल थी।

जवाबों:


184
adb shell dumpsys package my.package | grep versionName

जैसा कि @david और @ जेरेमी फिशमैन ने उल्लेख किया है । इससे बहुत जल्दी होगा:

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

1
यह मुझे पैकेज की जानकारी दिखाता है लेकिन किसी कारण से यह किसी भी पैकेज के लिए संस्करण की जानकारी को याद नहीं कर रहा है जो मैंने अपने टैबलेट (एंड्रॉइड 2.2) पर देखने की कोशिश की है। मेरे फोन पर सभी संस्करण की जानकारी है (Android 2.3)।
मेंढक

1
अच्छी तरह से अगर आप इसे adb में करने पर जोर देते हैं, तो आप कर सकते हैं: adb शेल सर्विस कॉल पैकेज 1 s16 "my.package" i32 0. संस्करण संख्या 0x1F के पास कहीं होगी और 0x20 के बाद नाम स्ट्रिंग (तीसरी पंक्ति होनी चाहिए
arbuz

35
adb shell dumpsys package my.packageकाफी जल्दी हो सकता है
जेरेमी फिशमैन

6
dumpsys package my.package | grep versionNameसही काम करता है
david

3
@ दाऊद लेकिन कभी-कभी एक से अधिक परिणाम, जैसे रिटर्न 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

शायद यह किसी के लिए उपयोगी होगा लेकिन कृपया ध्यान दें कि मैं संस्करणनाम का उपयोग करता हूं और संस्करणकोड को अनदेखा करता हूं, इसलिए देखभाल के साथ उपयोग करें।


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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.