Jawaban:
Android memberikan UID (User ID) pada setiap aplikasi pada waktu pemasangan; tidak seperti PID (ID Proses) yang bersifat sementara dan terus berubah sepanjang waktu, UID tetap konstan selama aplikasi tidak diinstal ulang. UID harus unik untuk setiap aplikasi, kecuali ketika aplikasi secara eksplisit meminta untuk membagikan userid dengan aplikasi lain (ada batasan keamanan di sekitar ini, kedua aplikasi harus ditandatangani dengan kunci privat yang sama, yaitu berasal dari pengembang yang sama).
Aplikasi ini mengklaim menunjukkan UID aplikasi:
EDIT:
Coba lihat /data/system/packages.xml
(Anda perlu root untuk melihat file ini), setiap aplikasi yang diinstal harus memiliki entri di sana. Katakanlah, saya sudah menginstal Adobe Reader di ponsel saya:
<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>
Ponsel saya telah ditugaskan userId="10034"
untuk Adobe Reader.
Untuk aplikasi yang telah meminta untuk membagikan id pengguna dengan aplikasi lain, katakan 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>
maka atribut yang Anda cari adalah sharedUserId="10064"
Atur adb di PC, sambungkan perangkat ke PC, luncurkan shell di PC dan masukkan:
adb shell "dumpsys package | grep -A1 'userId=UID'"
Ganti UID
dengan ID yang Anda cari, seperti 10102.
Contoh:
bash-4.2 # adb shell "paket dumpsys | grep -A1 'userId = 10102'" userId = 10102 pkg = Paket {46171ce com.android.chrome } bash-4.2 #
Baris yang berisi Package{
akan menampilkan nama paket aplikasi di antara spasi dan }
. Anda dapat melakukan adb shell dumpsys package PKG_NAME
( PKG_NAME
→ nama paket suatu aplikasi) untuk mengetahui rincian lebih lanjut tentang paket / aplikasi itu.
Jika Android di-root, dari adb shell atau aplikasi terminal emulator, Anda dapat melakukan:
su cat /data/system/packages.list | grep UID
Dalam output, apa pun sebelum UID adalah nama paket.
Contoh:
shell @ shamu: / $ su root @ shamu: / # cat /data/system/packages.list | grep 10102 com.android.chrome 10102 0 / data / data / com.android.chrome default 3002,3003,3001 root @ shamu: / #
Atau, jika Anda telah menginstal Busybox atau Toybox dan tersedia di bawah variabel PATH, dari emulator terminal atau adb shell lakukan:
su find / data / data / -type d -group UID -maxdepth 1 | nama dasar xargs
Contoh:
shell @ shamu: / $ su root @ shamu: / # find / data / data / -group 10102 -type d -maxdepth 1 | nama dasar xargs com.android.chrome root @ shamu: / #
Karena kami tertarik pada label aplikasi dan bukan nama paket, lanjutkan dengan jawaban dari GAT ditarik atau dari Izzy .
Instal emulator terminal , luncurkan dan jalankan:
ps | grep 10058
ps
daftar proses dan grep
filter untuk ID yang Anda inginkan.
Tapi ini hanya berfungsi jika aplikasi sedang berjalan saat Anda menjalankan perintah.
Dalam shell ADB (atau terminal emulator) gunakan perintah berikut:
cat /proc/<your_process_id_here>/status
dan lihat di bidang "Nama". Ini harus menjadi nama proses. Jadi dalam kasus Anda itu akan menjadi " cat / proc / 10058 / status "
Saya memiliki masalah serupa dengan Android 6.0, Moto G 2nd Gen dari 2014. Saya kebetulan telah meningkatkan aplikasi ES File Explorer dan saya perhatikan itu membengkak sekali dan menyedot banyak baterai. Saya menghapus aplikasi dari sistem, tetapi aplikasi membiarkan proses zombie mengambil CPU. UID serupa dengan milik Anda 10118, dan terdaftar dalam statistik baterai sebagai proses sumber daya yang paling lapar.
Kemudian saya menginstal aplikasi bernama "OS Monitor" dan memperhatikan bahwa file .esfm sebenarnya adalah satu-satunya proses yang menggunakan 60% CPU. Saya segera tahu bahwa itu ada hubungannya dengan ES File Explorer, tapi tunggu ... Saya HARUS menghapus ES File Explorer. Iya nih. Satu-satunya hal yang tidak saya lakukan adalah MEMULAI kembali smartphone. Percayalah, saya berpikir tentang hal-hal gila, seperti menjadi root dan mengalahkan omong kosong dari proses itu, melemparkan telepon ke dinding, dan bahkan mulai percaya bahwa baterai saya mencapai akhir hidup. Yang mengejutkan saya, saya cukup me-restart telepon dan proses itu hilang.
Jadi sebelum mengambil tindakan drastis apa pun, cobalah mencari tahu aplikasi mana yang memberi Anda waktu yang buruk, hapus instalannya lalu restart telepon. Periksa OS. Monitor daftar penggunaan CPU, dan Anda harus baik-baik saja.
Untuk menemukan "segalanya" oleh UID (atau GroupID) di ponsel yang di- root , termasuk proses yang berjalan, aplikasi sistem, dan sensor perangkat keras:
# 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
jika Anda mendapatkan beberapa hasil dalamfind
perintah pertama .