मैं यूआईडी द्वारा ऐप का नाम कैसे पा सकता हूं?


38

"बैटरी हिस्ट्री" में मैंने पाया है कि यूआईडी 10058 वाला ऐप बहुत बैटरी का उपयोग कर रहा है।

मैं यूआईडी के साथ ऐप का नाम 10058 के बराबर कैसे पा सकता हूं?

जवाबों:


32

एंड्रॉइड प्रत्येक एप्लिकेशन को इंस्टॉल समय पर एक यूआईडी (उपयोगकर्ता आईडी) प्रदान करता है; PID (प्रोसेस आईडी) के विपरीत जो क्षणिक है और हर समय बदलता रहता है, जब तक कि एप्लिकेशन पुनः इंस्टॉल नहीं किया जाता है, तब तक UID स्थिर रहता है। यूआईडी प्रत्येक एप्लिकेशन के लिए अद्वितीय होना चाहिए, सिवाय जब एप्लिकेशन स्पष्ट रूप से किसी अन्य एप्लिकेशन के साथ एक उपयोगकर्ता को साझा करने का अनुरोध करता है (इसके चारों ओर सुरक्षा प्रतिबंध हैं, दोनों अनुप्रयोगों को एक ही निजी कुंजी के साथ हस्ताक्षरित किया जाना चाहिए, अर्थात एक ही डेवलपर से आता है)।

ये एप्लिकेशन आवेदनों की UID दिखाने का दावा करते हैं:

संपादित करें:

देखने की कोशिश करें /data/system/packages.xml(आपको इस फ़ाइल को देखने के लिए रूट की आवश्यकता है), प्रत्येक इंस्टॉल किए गए एप्लिकेशन में एक प्रविष्टि होनी चाहिए। कहो, मेरे पास Adobe Reader मेरे फोन में स्थापित है:

<package name="com.adobe.reader" codePath="/mnt/asec/com.adobe.reader-1/pkg.apk" flags="262144" ts="1300539048000" version="37149" userId="10034" installer="com.google.android.feedback">
<sigs count="1">
<cert index="21" key="... very long random string ..." />
</sigs>
<perms />
</package>

मेरा फोन userId="10034"एडोब रीडर को सौंपा गया है।

उन अनुप्रयोगों के लिए, जिन्होंने किसी अन्य एप्लिकेशन के साथ उपयोगकर्ता आईडी साझा करने का अनुरोध किया है, हैंडसेंट कहते हैं:

<package name="com.handcent.nextsms" codePath="/system/app/HandcentSMS.apk" flags="1" ts="1217592000000" version="373" sharedUserId="10064">
<sigs count="1">
<cert index="17" key="... very long random string ..." />
</sigs>
</package>

तब आप जिस विशेषता की तलाश कर रहे हैं वह है sharedUserId="10064"


25

एक पीसी में सेट करें , डिवाइस को पीसी से कनेक्ट करें, पीसी पर एक शेल लॉन्च करें और दर्ज करें:

adb shell "dumpsys package | grep -A1 'userId=UID'"

UIDउस आईडी से बदलें , जिसे आप खोज रहे हैं, जैसे 10102।

उदाहरण:

bash-4.2 # adb शेल "डंपस पैकेज। grep -A1 'userId = 10102"
   userId = 10102
   pkg = पैकेज {46171ce com.android.chrome }
बैश-4.2 #

युक्त लाइन Package{व्हॉट्सएप और के बीच ऐप के पैकेज का नाम दिखाएगा }। आप उस पैकेज / ऐप के बारे में अधिक जानकारी जानने के लिए adb shell dumpsys package PKG_NAME( PKG_NAMEकिसी ऐप का पैकेज नाम) कर सकते हैं।


यदि एंड्रॉइड निहित है, तो एडीबी शेल या टर्मिनल एमुलेटर ऐप से, आप कर सकते हैं:

सु
cat /data/system/packages.list | grep यूआईडी

आउटपुट में, UID से पहले कुछ भी पैकेज नाम है।

उदाहरण:

शेल @ शमू: / $ सु
root @ shamu: / # cat /data/system/packages.list | grep 10102
com.android.chrome 10102 0 /data/data/com.android.chrome डिफ़ॉल्ट 3002,3003001
रूट @ shamu: / #

वैकल्पिक रूप से, यदि आपने एक टर्मिनल एमुलेटर या एडीबी शेल से पैठ चर के तहत बिजीबॉक्स या टॉयबॉक्स स्थापित और उपलब्ध किया है, तो:

सु
Find / data / data / -type d -group UID -maxdepth 1 | xargs बेसन

उदाहरण:

शेल @ शमू: / $ सु
रूट @ shamu: / # / / डेटा / डेटा / -group 10102 -type d -maxdepth 1 | xargs बेसन
com.android.chrome
रूट @ shamu: / #

चूंकि हम ऐप के लेबल में रुचि रखते हैं न कि पैकेज के नाम पर, Gathrawn से या इज़ी से जवाब के साथ आगे बढ़ते हैं ।


find /data/data/ -user UID -type d -maxdepth 1 | xargs basenameयदि आप पहले findआदेश में कई परिणाम प्राप्त कर रहे हैं तो उपयोग करें ।
Firelord

यह मेरे लिए जड़ के बिना काम करता है।
अबियान नोब

5

एक टर्मिनल एमुलेटर स्थापित करें , इसे लॉन्च करें और चलाएं:

ps | grep 10058

psgrepइच्छित आईडी के लिए प्रक्रियाओं और फ़िल्टर को सूचीबद्ध करता है ।

लेकिन यह केवल तभी काम करता है जब कमांड चलाने पर एप्लिकेशन चल रहा हो।


मैं यह कोशिश करता हूं, लेकिन यह काम नहीं करता है, क्योंकि ऐसा ऐप पहले से नहीं चल रहा है
azat

6
यह पीआईडी ​​के लिए है, पूछने वाला यूआईडी का उल्लेख कर रहा था
रेयान

2
UID को ps आउटपुट के साथ-साथ PID में भी दिखाया गया है। पीएस आउटपुट में आमतौर पर '12345 app_118 ...' जैसी पंक्तियाँ होती हैं, जहाँ 12345 PID और app_118 UID है (इसके लिए userId = 10118 in /ata /system/packages.xml)
आर्ट स्वरी

5

ADB शेल (या टर्मिनल एमुलेटर) में निम्न कमांड का उपयोग करें:

cat /proc/<your_process_id_here>/status

और "नाम" फ़ील्ड में देखें। यह प्रक्रिया का नाम होना चाहिए। तो आपके मामले में यह " कैट / प्रोक / 10058 / स्टेटस " होगा


3
10058 माना जाता है कि यहां पीआईडी ​​है जबकि ओपी ने हमें यूआईडी दिया।
Firelord

0

मेरे पास 2014 से एंड्रॉइड 6.0, मोटो जी 2 जनरल के साथ एक समान मुद्दा था। मैं ईएस फाइल एक्सप्लोरर एप्लिकेशन को अपग्रेड करने के लिए हुआ था और मैंने देखा कि यह नरक के रूप में फूला हुआ था और बहुत सारी बैटरी चूस रहा था। मैंने सिस्टम से एप्लिकेशन को हटा दिया है, लेकिन एप्लिकेशन को एक ज़ोंबी प्रक्रिया को सीपीयू लेने देता है। UID आपके लिए 10118 के समान था, और यह बैटरी के आँकड़ों में सबसे भूखे संसाधन प्रक्रिया के रूप में सूचीबद्ध था।

तब मैंने "OS मॉनिटर" नाम का एक ऐप इंस्टॉल किया और देखा कि एक .esfm फ़ाइल वास्तव में केवल 60% CPU को लेने वाली एकमात्र प्रक्रिया थी। मुझे तुरंत पता चल गया था कि इसे ES फ़ाइल एक्सप्लोरर के साथ करना था, लेकिन प्रतीक्षा करें ... मैंने ES फ़ाइल एक्सप्लोरर की स्थापना रद्द की। हाँ। केवल एक चीज जो मैंने नहीं की वह थी स्मार्टफोन को रीस्टार्ट करना। मेरा विश्वास करो, मैं पागल चीजों के बारे में सोच रहा था, जैसे कि जड़ जाना और उस प्रक्रिया से बकवास को हराया, फोन को दीवार के खिलाफ फेंक दिया, और यहां तक ​​कि विश्वास करना शुरू कर दिया कि मेरी बैटरी जीवन के अंत तक पहुंच गई। अपने आश्चर्य के लिए, मैंने बस फोन को पुनः आरंभ किया और प्रक्रिया समाप्त हो गई।

इसलिए कोई भी कठोर उपाय करने से पहले, यह पता लगाने की कोशिश करें कि कौन सा ऐप आपको बुरा समय दे रहा है, इसे अनइंस्टॉल करें और फिर फोन को पुनरारंभ करें। सीपीयू उपयोग सूची की निगरानी करें, और आपको ठीक होना चाहिए।


0

रूट फोन पर UID (या GroupID) द्वारा "सब कुछ" खोजने के लिए , रनिंग प्रोसेस, सिस्टम ऐप और हार्डवेयर सेंसर सहित:

# ID=3011; find / -group $ID -o -user $ID   2>/dev/null

उदाहरण 1:

# ID=3011; find / -group $ID -o -user $ID   2>/dev/null
/proc/208
/proc/208/task
/proc/208/task/208
/proc/208/task/208/attr
[...]

# ls -la /proc/208/exe
lrwxrwxrwx 1 root root 0 2017-04-04 22:14 /proc/208/exe -> /system/bin/sensors.qcom

उदाहरण 2

# ID=10009; find / -group $ID -o -user $ID   2>/dev/null
/data/misc/profiles/cur/0/com.android.cellbroadcastreceiver
/data/misc/profiles/cur/0/com.android.cellbroadcastreceiver/primary.prof
/data/data/com.android.cellbroadcastreceiver
/data/data/com.android.cellbroadcastreceiver/cache
/data/data/com.android.cellbroadcastreceiver/code_cache
/data/user_de/0/com.android.cellbroadcastreceiver
/data/user_de/0/com.android.cellbroadcastreceiver/cache
/data/user_de/0/com.android.cellbroadcastreceiver/code_cache
/data/user_de/0/com.android.cellbroadcastreceiver/code_cache/com.android.opengl.shaders_cache
/data/user_de/0/com.android.cellbroadcastreceiver/shared_prefs
/data/user_de/0/com.android.cellbroadcastreceiver/shared_prefs/com.android.cellbroadcastreceiver_preferences.xml
/data/user_de/0/com.android.cellbroadcastreceiver/shared_prefs/_has_set_default_values.xml
/data/user_de/0/com.android.cellbroadcastreceiver/databases
/data/user_de/0/com.android.cellbroadcastreceiver/databases/cell_broadcasts.db
/data/user_de/0/com.android.cellbroadcastreceiver/databases/cell_broadcasts.db-journal
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.