Réponses:
Android attribue à chaque application un UID (User ID) lors de l'installation. contrairement au PID (ID de processus) qui est transitoire et qui change constamment, l'UID reste constant tant que l'application n'est pas réinstallée. L'UID doit être unique pour chaque application, sauf lorsque l'application demande explicitement de partager un ID utilisateur avec une autre application (des restrictions de sécurité s'appliquent, les deux applications doivent être signées avec la même clé privée, c'est-à-dire qu'elles proviennent du même développeur).
Ces applications prétendent montrer l'UID des applications:
MODIFIER:
Essayez de regarder /data/system/packages.xml
(vous avez besoin de root pour voir ce fichier), chaque application installée devrait y avoir une entrée. Dis, Adobe Reader est installé sur mon téléphone:
<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>
Mon téléphone a été attribué userId="10034"
à Adobe Reader.
Pour les applications qui ont demandé à partager l'ID utilisateur avec une autre application, dites 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>
alors l'attribut que vous recherchez est sharedUserId="10064"
Configurez adb sur un PC, connectez l’appareil au PC, lancez un shell sur le PC et entrez:
adb shell "dumpsys package | grep -A1 'userId=UID'"
Remplacez-la UID
par l'ID que vous recherchez, par exemple 10102.
Exemple:
shell adb bash-4.2 "paquet dumpsys | grep -A1 'userId = 10102'" userId = 10102 pkg = Paquet {46171ce com.android.chrome } bash-4.2 #
La ligne contenant Package{
afficherait le nom du package de l'application entre les espaces et }
. Vous pouvez faire adb shell dumpsys package PKG_NAME
( PKG_NAME
→ nom du package d'une application) pour en savoir plus sur ce package / application.
Si Android est enraciné, à partir d' un shell adb ou d'une application d'émulateur de terminal, vous pouvez effectuer les opérations suivantes:
su cat /data/system/packages.list | grep UID
Dans la sortie, tout ce qui précède l'UID correspond au nom du package.
Exemple:
shell @ shamu: / $ su root @ shamu: / # cat /data/system/packages.list | grep 10102 com.android.chrome 10102 0 /data/data/com.android.chrome par défaut 3002,3003,3001 root @ shamu: / #
Sinon, si Busybox ou Toybox est installé et disponible sous la variable PATH, à partir d'un émulateur de terminal ou d' un shell adb, procédez comme suit :
su find / data / data / -type d-group UID -maxdepth 1 | xargs nom de base
Exemple:
shell @ shamu: / $ su root @ shamu: / # find / data / data / -group 10102 -type d -maxdepth 1 | xargs nom de base com.android.chrome root @ shamu: / #
Puisque nous sommes intéressés par l’étiquette de l’application et non par le nom du paquet, poursuivons avec la réponse de GAThrawn ou d’Izzy .
Installez un émulateur de terminal , lancez-le et exécutez:
ps | grep 10058
ps
répertorie les processus et les grep
filtres pour l'ID souhaité.
Mais cela ne fonctionne que si l'application est en cours d'exécution lorsque vous exécutez la commande.
Dans le shell ADB (ou l'émulateur de terminal), utilisez la commande suivante:
cat /proc/<your_process_id_here>/status
et regardez dans le champ "Nom". Cela devrait être le nom du processus. Donc, dans votre cas, ce serait " cat / proc / 10058 / status "
J'avais un problème similaire avec Android 6.0, Moto G, 2e génération de 2014. J'ai mis à niveau l'application ES File Explorer et j'ai remarqué qu'elle était gonflée à fond et entraînait beaucoup de batterie. J'ai supprimé l'application du système, mais l'application a laissé un processus zombie prendre du temps processeur. L'UID était semblable au vôtre 10118 et figurait dans les statistiques de la batterie comme étant le processus de ressource le plus affamé.
Ensuite, j'ai installé une application nommée "OS Monitor" et constaté qu'un fichier .esfm était en fait le seul processus occupant 60% du processeur. Je savais immédiatement que cela avait à voir avec ES File Explorer, mais attendez ... j’ai désinstallé ES File Explorer. Oui. La seule chose que je n'ai pas faite est de redémarrer le smartphone. Croyez-moi, je pensais à des choses folles, comme aller au bout du processus, jeter le téléphone contre le mur et même commencer à croire que ma batterie était en fin de vie. À ma grande surprise, j'ai simplement redémarré le téléphone et le processus avait disparu.
Donc, avant de prendre des mesures drastiques, essayez de déterminer quelle application vous donne le mauvais temps, désinstallez-la puis redémarrez le téléphone. Vérifiez sur le système d'exploitation Surveillez la liste d'utilisation du processeur, et tout devrait bien se passer.
Pour rechercher "tout" par UID (ou GroupID) sur un téléphone enraciné , y compris les processus en cours d'exécution, les applications système et les capteurs matériels:
# 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
si vous obtenez plusieurs résultats dans la premièrefind
commande.