Respostas:
O Android atribui a cada aplicativo um UID (ID do usuário) no momento da instalação; ao contrário do PID (ID do processo), que é transitório e muda constantemente, o UID permanece constante enquanto o aplicativo não for reinstalado. O UID deve ser exclusivo para cada aplicativo, exceto quando o aplicativo solicita explicitamente o compartilhamento de um ID de usuário com outro aplicativo (existem restrições de segurança em relação a isso, os dois aplicativos devem ser assinados com a mesma chave privada, ou seja, é do mesmo desenvolvedor).
Esses aplicativos afirmam mostrar o UID dos aplicativos:
EDITAR:
Tente olhar /data/system/packages.xml
(você precisa de root para visualizar este arquivo), cada aplicativo instalado deve ter uma entrada lá. Digamos, eu tenho o Adobe Reader instalado no meu telefone:
<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>
Meu telefone foi atribuído userId="10034"
ao Adobe Reader.
Para aplicativos que solicitaram compartilhar o ID do usuário com outro aplicativo, diga 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>
então o atributo que você está procurando é sharedUserId="10064"
Configure adb em um PC, conecte o dispositivo ao PC, inicie um shell no PC e digite:
adb shell "dumpsys package | grep -A1 'userId=UID'"
Substitua UID
pelo ID que você está procurando, como 10102.
Exemplo:
bash-4.2 # adb shell "pacote dumpsys | grep -A1 'userId = 10102'" userId = 10102 pkg = Pacote {46171ce com.android.chrome } bash-4.2 #
A linha que contém Package{
mostraria o nome do pacote do aplicativo entre espaços em branco e }
. Você pode fazer adb shell dumpsys package PKG_NAME
( PKG_NAME
→ nome do pacote de um aplicativo) para saber mais detalhes sobre esse pacote / aplicativo.
Se o Android estiver enraizado, no shell adb ou em um aplicativo emulador de terminal, você poderá:
su cat /data/system/packages.list | UID grep
Na saída, qualquer coisa antes do UID é o nome do pacote.
Exemplo:
shell @ shamu: / $ su root @ shamu: / # cat /data/system/packages.list | grep 10102 com.android.chrome 10102 0 /data/data/com.android.chrome padrão 3002,3003,3001 root @ shamu: / #
Como alternativa, se você tiver o Busybox ou o Toybox instalado e disponível na variável PATH, em um emulador de terminal ou shell adb, faça:
su find / data / data / -type d -group UID -maxdepth 1 | xargs basename
Exemplo:
shell @ shamu: / $ su raiz @ shamu: / # find / data / data / -group 10102 -type d -maxdepth 1 | xargs basename com.android.chrome root @ shamu: / #
Como estamos interessados no rótulo do aplicativo e não no nome do pacote, continue com a resposta do GAThrawn ou do Izzy .
Instale um emulador de terminal , inicie-o e execute:
ps | grep 10058
ps
lista os processos e grep
filtros para o ID que você deseja.
Mas isso só funciona se o aplicativo estiver sendo executado quando você executar o comando.
No shell do ADB (ou emulador de terminal), use o seguinte comando:
cat /proc/<your_process_id_here>/status
e procure no campo "Nome". Esse deve ser o nome do processo. Portanto, no seu caso, seria " cat / proc / 10058 / status "
Eu tive um problema semelhante com o Android 6.0, Moto G 2nd Gen a partir de 2014. Eu atualizei o aplicativo ES File Explorer e notei que ele estava inchado como o inferno e consumindo muita bateria. Eu removi o aplicativo do sistema, mas o aplicativo deixou um processo zumbi ocupando a CPU. O UID era semelhante ao seu 10118 e listado nas estatísticas da bateria como o processo de recurso mais faminto.
Em seguida, instalei um aplicativo chamado "OS Monitor" e notei que um arquivo .esfm era realmente o único processo que ocupava 60% da CPU. Eu soube imediatamente que tinha a ver com o ES File Explorer, mas espere ... Eu tinha desinstalado o ES File Explorer. Sim. A única coisa que não fiz foi reiniciar o smartphone. Acredite, eu estava pensando em coisas malucas, como enraizar-me e acabar com esse processo, jogar o telefone contra a parede e até comecei a acreditar que minha bateria chegava ao fim da vida. Para minha surpresa, simplesmente reiniciei o telefone e o processo se foi.
Portanto, antes de tomar medidas drásticas, tente descobrir qual aplicativo está causando problemas, desinstale-o e reinicie o telefone. Verifique no OS Monitor a lista de uso da CPU e você deve ficar bem.
Para encontrar "tudo" pelo UID (ou GroupID) em um telefone raiz , incluindo processos em execução, aplicativos do sistema e sensores de hardware:
# 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
se você estiver obtendo vários resultados no primeirofind
comando.