जवाबों:
एंड्रॉइड प्रत्येक एप्लिकेशन को इंस्टॉल समय पर एक यूआईडी (उपयोगकर्ता आईडी) प्रदान करता है; 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"
एक पीसी में एडीबी सेट करें , डिवाइस को पीसी से कनेक्ट करें, पीसी पर एक शेल लॉन्च करें और दर्ज करें:
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 से या इज़ी से जवाब के साथ आगे बढ़ते हैं ।
एक टर्मिनल एमुलेटर स्थापित करें , इसे लॉन्च करें और चलाएं:
ps | grep 10058
ps
grep
इच्छित आईडी के लिए प्रक्रियाओं और फ़िल्टर को सूचीबद्ध करता है ।
लेकिन यह केवल तभी काम करता है जब कमांड चलाने पर एप्लिकेशन चल रहा हो।
ADB शेल (या टर्मिनल एमुलेटर) में निम्न कमांड का उपयोग करें:
cat /proc/<your_process_id_here>/status
और "नाम" फ़ील्ड में देखें। यह प्रक्रिया का नाम होना चाहिए। तो आपके मामले में यह " कैट / प्रोक / 10058 / स्टेटस " होगा
मेरे पास 2014 से एंड्रॉइड 6.0, मोटो जी 2 जनरल के साथ एक समान मुद्दा था। मैं ईएस फाइल एक्सप्लोरर एप्लिकेशन को अपग्रेड करने के लिए हुआ था और मैंने देखा कि यह नरक के रूप में फूला हुआ था और बहुत सारी बैटरी चूस रहा था। मैंने सिस्टम से एप्लिकेशन को हटा दिया है, लेकिन एप्लिकेशन को एक ज़ोंबी प्रक्रिया को सीपीयू लेने देता है। UID आपके लिए 10118 के समान था, और यह बैटरी के आँकड़ों में सबसे भूखे संसाधन प्रक्रिया के रूप में सूचीबद्ध था।
तब मैंने "OS मॉनिटर" नाम का एक ऐप इंस्टॉल किया और देखा कि एक .esfm फ़ाइल वास्तव में केवल 60% CPU को लेने वाली एकमात्र प्रक्रिया थी। मुझे तुरंत पता चल गया था कि इसे ES फ़ाइल एक्सप्लोरर के साथ करना था, लेकिन प्रतीक्षा करें ... मैंने ES फ़ाइल एक्सप्लोरर की स्थापना रद्द की। हाँ। केवल एक चीज जो मैंने नहीं की वह थी स्मार्टफोन को रीस्टार्ट करना। मेरा विश्वास करो, मैं पागल चीजों के बारे में सोच रहा था, जैसे कि जड़ जाना और उस प्रक्रिया से बकवास को हराया, फोन को दीवार के खिलाफ फेंक दिया, और यहां तक कि विश्वास करना शुरू कर दिया कि मेरी बैटरी जीवन के अंत तक पहुंच गई। अपने आश्चर्य के लिए, मैंने बस फोन को पुनः आरंभ किया और प्रक्रिया समाप्त हो गई।
इसलिए कोई भी कठोर उपाय करने से पहले, यह पता लगाने की कोशिश करें कि कौन सा ऐप आपको बुरा समय दे रहा है, इसे अनइंस्टॉल करें और फिर फोन को पुनरारंभ करें। सीपीयू उपयोग सूची की निगरानी करें, और आपको ठीक होना चाहिए।
रूट फोन पर UID (या GroupID) द्वारा "सब कुछ" खोजने के लिए , रनिंग प्रोसेस, सिस्टम ऐप और हार्डवेयर सेंसर सहित:
# ID=3011; find / -group $ID -o -user $ID 2>/dev/null
# 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
# 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
find /data/data/ -user UID -type d -maxdepth 1 | xargs basename
यदि आप पहलेfind
आदेश में कई परिणाम प्राप्त कर रहे हैं तो उपयोग करें ।