He encontrado que UID=10058 usando la batería mucho en el "historial de la batería"
Cómo puedo saber el nombre de la aplicación por UID=10058
Esto me funciona sin Root.
He encontrado que UID=10058 usando la batería mucho en el "historial de la batería"
Cómo puedo saber el nombre de la aplicación por UID=10058
Requisitos previos : establecer adb en un PC, conectar el dispositivo al PC, lanzar un shell en el PC para introducir los comandos adb.
Nota :
UID
siempre que aparezca en los siguientes comandos con el UID que estás buscando.Introduce el comando:
adb shell cmd package list packages --uid **UID**
adb shell pm list packages --uid **UID** # alternative command
Ejemplo:
$ adb shell pm list packages --uid **10250**
package:**com.adobe.scan.android** uid:**10250**
Introduce el comando:
adb shell "cmd package list packages -U | grep **UID**"
adb shell "pm list packages -U | grep **UID**" # alternative command
Ejemplo:
$ adb shell "cmd package list packages -U | grep **10247**"
package:**dev.ukanth.ufirewall** uid:**10247**
Introduce el comando:
adb shell "dumpsys package | grep -A1 'userId=**UID**'"
Puede tardar unos segundos en imprimir la salida deseada.
Ejemplo:
$ adb shell "dumpsys package | grep -A1 'userId=**10102**'"
userId=**10102**
pkg=Package{46171ce **com.android.chrome**}
La línea que contiene Package{
mostraría el nombre del paquete de la aplicación entre espacios en blanco y }
. Puede hacer adb shell dumpsys package PKG_NAME
( PKG_NAME
nombre del paquete de una aplicación) para conocer más detalles sobre ese paquete/aplicación.
Si el Android está rooteado, que usar adb shell o una aplicación de emulador de terminal que puedas hacer:
su
cat /data/system/packages.list | grep **UID**
En la salida, todo lo que precede al UID sería el nombre del paquete.
Ejemplo:
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
Alternativamente Si has Busybox o Caja de juguetes instalado y disponible en la variable PATH, que desde un emulador de terminal o adb shell hacer:
su
find /data/data/ -type d -group **UID** -maxdepth 1 | xargs basename
Ejemplo:
shell@shamu:/ $ su
root@shamu:/ # find /data/data/ -group **10102** -type d -maxdepth 1 | xargs basename
**com.android.chrome**
Android asigna a cada aplicación un UID (User ID) en el momento de la instalación; a diferencia del PID (Process ID) que es transitorio y cambia todo el tiempo, el UID permanece constante mientras la aplicación no se reinstale. El UID debe ser único para cada aplicación, excepto cuando la aplicación solicita explícitamente compartir un userid con otra aplicación (hay restricciones de seguridad en torno a esto, las dos aplicaciones deben ser firmadas con la misma clave privada, es decir, viene del mismo desarrollador).
Estas aplicaciones pretenden mostrar el UID de las aplicaciones:
EDITAR:
Intenta buscar en /data/system/packages.xml
(necesitas Root para ver este archivo), cada aplicación instalada debería tener una entrada allí. Por ejemplo, tengo Adobe Reader instalado en mi teléfono:
<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>
Mi teléfono ha asignado userId="10034"
a Adobe Reader.
Para las aplicaciones que han solicitado compartir el ID de usuario con otra aplicación, digamos 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>
entonces el atributo que buscas es sharedUserId="10064"
Instalar un emulador de terminal , lánzalo y ejecútalo:
ps | grep 10058
ps
enumera los procesos y grep
filtros para el ID que desee.
Pero esto sólo funciona si la aplicación se está ejecutando cuando se ejecuta el comando.
Tuve un problema similar con Android 6.0, Moto G 2nd Gen de 2014. Resulta que había actualizado la aplicación ES File Explorer y me di cuenta de que estaba hinchada como un demonio y chupaba mucha batería. Quité la aplicación del sistema, pero la aplicación dejó un proceso zombi ocupando CPU. El UID era similar al tuyo 10118, y aparecía en las estadísticas de la batería como el proceso más hambriento de recursos.
Entonces instalé una aplicación llamada "OS Monitor" y me di cuenta de que un archivo .esfm era el único proceso que ocupaba el 60% de la CPU. Inmediatamente supe que tenía que ver con ES File Explorer, pero espera... Había desinstalado ES File Explorer. Sí. Lo único que no hice fue REINICIAR el smartphone. Créanme, estaba pensando en cosas locas, como ir a Root y darle una paliza a ese proceso, tirar el teléfono contra la pared, y hasta empecé a creer que mi batería llegó al final de su vida útil. Para mi sorpresa, simplemente reinicié el teléfono y el proceso desapareció.
Así que antes de tomar cualquier medida drástica, intenta averiguar qué aplicación te está dando problemas, desinstálala y reinicia el teléfono. Comprueba en OS Monitor la lista de uso de la CPU, y deberías estar bien.
PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.