Відповіді:
Android призначає кожній програмі UID (ID користувача) під час встановлення; На відміну від PID (Process ID), який є тимчасовим і постійно змінюється, UID залишається постійним до тих пір, поки додаток не буде перевстановлено. 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"
Adobe Reader.
Про програми, які попросили поділитися ідентифікатором користувача з іншою програмою, скажіть 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>
то атрибут, який ви шукаєте, - це sharedUserId="10064"
Налаштуйте adb на ПК, підключіть пристрій до ПК, запустіть оболонку на ПК та введіть:
adb shell "dumpsys package | grep -A1 'userId=UID'"
Замініть UID
ідентифікатор, який ви шукаєте, наприклад 10102.
Приклад:
bash-4.2 # adb shell "dumpsys package | grep -A1 'userId = 10102'" userId = 10102 pkg = пакет {46171ce com.android.chrome } bash-4.2 #
Рядок, що містить, Package{
повинен містити назву пакета програми між пробілами та }
. Ви можете adb shell dumpsys package PKG_NAME
( PKG_NAME
→ назва пакета програми), щоб дізнатися більше про цей пакет / додаток.
Якщо Android має коріння з оболонки adb або емулятора терміналу, ви можете:
су cat /data/system/packages.list | grep UID
У висновку що-небудь перед UID є назвою пакета.
Приклад:
shell @ shamu: / $ su root @ shamu: / # cat /data/system/packages.list | греп 10102 com.android.chrome 10102 0 /data/data/com.android.chrome за замовчуванням 3002 3003,3001 root @ shamu: / #
Крім того, якщо ви встановили Busybox або Toybox і доступні під змінною PATH, з емулятора термінала або оболонки adb виконайте такі дії:
су знайти / дані / дані / -типу d -group UID -maxdepth 1 | Основна назва xargs
Приклад:
shell @ shamu: / $ su root @ shamu: / # find / data / data / -group 10102 -тип d -maxdepth 1 | Основна назва xargs com.android.chrome root @ shamu: / #
Оскільки нас цікавить етикетка програми, а не назва пакету, перейдіть до відповіді від GAThrawn або від Izzy .
Встановіть емулятор терміналу , запустіть його та запустіть:
ps | grep 10058
ps
перераховує процеси та grep
фільтри для потрібного ідентифікатора.
Але це працює лише в тому випадку, якщо програма працює під час запуску команди.
У оболонці ADB (або емуляторі терміналу) використовуйте таку команду:
cat /proc/<your_process_id_here>/status
і подивіться у поле "Ім'я". Це має бути назва процесу. Тож у вашому випадку це було б " cat / proc / 10058 / status "
У мене була аналогічна проблема з Android 6.0, Moto G 2nd Gen від 2014 року. У мене трапилось оновити додаток ES File Explorer, і я помітив, що він роздутий як пекло і висмоктує багато акумулятора. Я видалив додаток із системи, але програма дозволила зомбі перейняти процесор. UID був подібний до вашого 10118, і він перерахований у статистиці батареї як найголодніший ресурсний процес.
Потім я встановив додаток під назвою "Монітор ОС" і помітив, що файл .esfm насправді єдиний процес, що займає 60% процесора. Я одразу знав, що це стосується ES File Explorer, але зачекайте ... Я ВІН видалив ES File Explorer. Так. Єдине, що я не робив - це РЕСТАРТАЦІЮ смартфона. Повірте, я думав про божевільні речі, як, наприклад, укорінюватися і бити лайно з цього процесу, кидати телефон у стіну і навіть почав вірити, що мій акумулятор добіг кінця життя. На моє здивування, я просто перезапустив телефон і процес пішов.
Тому перш ніж вживати різких заходів, спробуйте розібратися, який додаток несе вам поганий час, видаліть його та перезавантажте телефон. Перевірте на OS Монітор списку використання процесора, і вам слід буде добре.
Щоб знайти "все" 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
команді.