Câu trả lời:
Android gán cho mỗi ứng dụng một UID (ID người dùng) khi cài đặt; Không giống như PID (ID tiến trình) nhất thời và luôn thay đổi liên tục, UID không đổi miễn là ứng dụng không được cài đặt lại. UID phải là duy nhất cho mỗi ứng dụng, trừ khi ứng dụng yêu cầu chia sẻ rõ ràng một userid với ứng dụng khác (có những hạn chế bảo mật xung quanh điều này, hai ứng dụng phải được ký với cùng một khóa riêng, tức là đến từ cùng một nhà phát triển).
Các ứng dụng này tuyên bố hiển thị UID của các ứng dụng:
CHỈNH SỬA:
Hãy thử xem /data/system/packages.xml
(bạn cần root để xem tệp này), mỗi ứng dụng được cài đặt sẽ có một mục ở đó. Nói, tôi đã cài đặt Adobe Reader trong điện thoại của mình:
<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>
Điện thoại của tôi đã được gán userId="10034"
cho Adobe Reader.
Đối với các ứng dụng đã yêu cầu chia sẻ id người dùng với một ứng dụng khác, hãy nói Handcent:
<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>
thì thuộc tính bạn đang tìm kiếm là sharedUserId="10064"
Thiết lập adb trong PC, kết nối thiết bị với PC, khởi chạy shell trên PC và nhập:
adb shell "dumpsys package | grep -A1 'userId=UID'"
Thay thế UID
bằng ID bạn đang tìm kiếm, chẳng hạn như 10102.
Thí dụ:
bash-4.2 # adb shell "gói dumpsys | grep -A1 'userId = 10102'" userId = 10102 pkg = Gói {46171ce com.android.chrom } bash-4.2 #
Dòng chứa Package{
sẽ hiển thị tên gói của ứng dụng ở giữa khoảng trắng và }
. Bạn có thể làm adb shell dumpsys package PKG_NAME
( PKG_NAME
→ tên gói của ứng dụng) để biết thêm chi tiết về gói / ứng dụng đó.
Nếu Android được root, từ adb shell hoặc ứng dụng giả lập thiết bị đầu cuối, bạn có thể làm:
su mèo /data/system/packages.list | gID UID
Trong đầu ra, bất cứ điều gì trước UID là tên gói.
Thí dụ:
shell @ shamu: / $ su root @ shamu: / # cat /data/system/packages.list | grep 10102 com.android.chrom 10102 0 /data/data/com.android.chrom mặc định 3002.3003.3001 root @ shamu: / #
Ngoài ra, nếu bạn đã cài đặt Busybox hoặc Toybox dưới biến PATH, từ trình giả lập thiết bị đầu cuối hoặc vỏ adb, hãy:
su tìm / dữ liệu / dữ liệu / -type d -group UID -maxdepth 1 | tên cơ sở xargs
Thí dụ:
shell @ shamu: / $ su root @ shamu: / # find / data / data / -group 10102 -type d -maxdepth 1 | tên cơ sở xargs com.android.chrom root @ shamu: / #
Vì chúng tôi quan tâm đến nhãn của ứng dụng chứ không phải tên gói, hãy tiếp tục với câu trả lời từ GAThrawn hoặc từ Izzy .
Cài đặt trình giả lập thiết bị đầu cuối , khởi chạy nó và chạy:
ps | grep 10058
ps
liệt kê các quy trình và grep
bộ lọc cho ID bạn muốn.
Nhưng điều này chỉ hoạt động nếu ứng dụng đang chạy khi bạn chạy lệnh.
Trong ADB shell (hoặc trình giả lập thiết bị đầu cuối) sử dụng lệnh sau:
cat /proc/<your_process_id_here>/status
và tìm trong trường "Tên". Đây phải là tên của quá trình. Vì vậy, trong trường hợp của bạn, nó sẽ là " cat / Proc / 10058 / status "
Tôi gặp vấn đề tương tự với Android 6.0, Moto G 2nd Gen từ năm 2014. Tôi tình cờ đã nâng cấp ứng dụng ES File Explorer và tôi nhận thấy nó bị phồng lên như địa ngục và ngốn rất nhiều pin. Tôi đã gỡ bỏ ứng dụng khỏi hệ thống, nhưng ứng dụng cho phép một quá trình zombie chiếm CPU. UID tương tự như 10118 của bạn và được liệt kê trong thống kê pin là quy trình tài nguyên đói nhất.
Sau đó, tôi đã cài đặt một ứng dụng có tên "OS Monitor" và nhận thấy rằng tệp .esfm thực sự là quá trình duy nhất chiếm 60% CPU. Tôi ngay lập tức biết rằng nó phải làm với ES File Explorer, nhưng đợi đã ... Tôi đã gỡ cài đặt ES File Explorer. Vâng. Điều duy nhất tôi không làm là RESTART điện thoại thông minh. Tin tôi đi, tôi đã nghĩ về những điều điên rồ, như nhổ tận gốc và đánh bại những thứ nhảm nhí trong quá trình đó, ném điện thoại vào tường và thậm chí bắt đầu tin rằng pin của tôi đã hết tuổi thọ. Thật ngạc nhiên, tôi chỉ cần khởi động lại điện thoại và quá trình đã biến mất.
Vì vậy, trước khi thực hiện bất kỳ biện pháp quyết liệt nào, hãy thử tìm ra ứng dụng nào mang lại cho bạn thời gian tồi tệ, gỡ cài đặt và sau đó khởi động lại điện thoại. Kiểm tra trên hệ điều hành Giám sát danh sách sử dụng CPU và bạn sẽ ổn.
Để tìm "mọi thứ" bằng UID (hoặc GroupID) trên điện thoại đã được root , bao gồm các quy trình đang chạy, ứng dụng hệ thống và cảm biến phần cứng:
# 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
nếu bạn nhận được nhiều kết quả trongfind
lệnh đầu tiên .