В «истории батареи» я обнаружил, что приложение с UID 10058 использует много батареи.
Как найти название приложения с UID равным 10058?
Android присваивает каждому приложению UID (идентификатор пользователя) во время установки; в отличие от PID (идентификатора процесса), который является временным и постоянно меняется, 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.
Примечание :
UID
везде, где это встречается в следующих командах, UID, который вы ищете.Введите команду:
adb shell cmd package list packages --uid UID adb shell pm list packages --uid UID # альтернативная команда
Пример:
$ пакет adb shell pm list --uid 10250 package: com.adobe.scan.android uid: 10250
Введите команду:
adb shell "cmd package list packages -U | grep UID " adb shell "pm list packages -U | grep UID " # альтернативная команда ЕСЛИ вышеуказанные cmds не работают, вы можете попробовать их ниже, указав точное имя adb shell «cmd package list packages uid UID » adb shell "pm list packages uid UID " # альтернативная команда
Пример:
$ adb shell "cmd package list packages -U | grep 10247 " пакет: dev.ukanth.ufirewall uid: 10247
Введите команду:
оболочка adb "пакет думпсис | grep -A1 'userId = UID '"
Печать желаемого результата может занять несколько секунд.
Пример:
$ adb shell "dumpsys package | grep -A1 'userId = 10102 '" userId= 10102 pkg=Пакет{46171ce com.android.chrome }
Строка, содержащая Package{
имя пакета приложения между пробелами и }
. Вы можете сделать adb shell dumpsys package PKG_NAME
( PKG_NAME
→ имя пакета приложения), чтобы узнать больше об этом пакете/приложении.
Если Android рутирован, то с помощью оболочки adb или приложения эмулятора терминала вы можете сделать:
су кошка /data/system/packages.list | Grep UID
В выводе все, что предшествует UID, будет именем пакета.
Пример:
shell@shamu:/ $ su root@shamu:/ # cat /data/system/packages.list | grep 10102 com.android.chrome 10102 0 /data/data/com.android.chrome по умолчанию 3002,3003,3001
В качестве альтернативы , если вы установили Busybox или Toybox и доступны в переменной PATH, то из эмулятора терминала или оболочки adb выполните:
су find /data/data/ -type d -group UID -maxdepth 1 | xargs базовое имя
Пример:
shell@shamu:/ $ su root@shamu:/ # find /data/data/ -group 10102 -type d -maxdepth 1 | xargs базовое имя com.android.chrome
Установите эмулятор терминала , запустите его и выполните:
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. Да. Единственное, что я не сделал, это ПЕРЕЗАГРУЗИТЬ смартфон. Поверьте мне, я думал о сумасшедших вещах, таких как получение root-прав и выбивание дерьма из этого процесса, бросание телефона в стену и даже начало верить, что моя батарея достигла конца жизни. К моему удивлению, я просто перезагрузил телефон, и процесс исчез.
Поэтому, прежде чем принимать какие-либо радикальные меры, попытайтесь выяснить, какое приложение доставляет вам неприятности, удалите его и перезагрузите телефон. Проверьте в OS Monitor список использования ЦП, и все будет в порядке.
Чтобы найти «все» по 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
Анубианский нуб