¿Por qué un programa sospechoso agota mi batería con el uso del GPS? [duplicar]

  • Teléfono: nexus 5 versión 2013
  • Versión de Android: 6.0
  • Versión del núcleo: 3.4.0-g2aa165e
  • Número de compilación: MRA58N

Durante los últimos días, 10118 ha estado agotando la batería de mi teléfono. Se agota la batería mediante el uso de GPS. Escribí 'ps' en un emulador de terminal y no había ninguna aplicación con PID 10118. No sé qué es exactamente 10118. Supongo que es una de las aplicaciones meteorológicas instaladas recientemente.

¿Cómo puedo arreglar esto?

captura de pantalla captura de pantalla
Capturas de pantalla (haga clic en las imágenes para obtener variantes más grandes)

Eso parece ser UID para mí. Vea si puede encontrar el nombre del paquete asociado usándolo como UID. Esto puede ayudar: Cómo saber el nombre de la aplicación por UID Además, use un servicio de pegado (como pastebin) para darnos el resultado de adb shell dumpsys batterystats. Necesitaría la configuración de adb en la PC y la depuración de USB habilitada en el dispositivo.
@Firelord confirmado: es el UID. Y, como alternativa a la instalación de ADB según lo recomendado por Firelord, también puede intentarlo dumpsys batterystatsdesde una aplicación de terminal.
@Izzy, también pensé en esa recomendación, pero el privilegio mínimo necesario para acceder a un servicio del sistema es ADB y el último es root. Eso es lo que me dijo mi intento en el emulador de terminal.
@Firelord Estaba pensando en eso. Pero si bien hay un permiso para recopilar BATTERY_STATS , no encontré ninguno para acceder a ellos. Yo tampoco lo he probado. Entonces, ¿lo tienes y no funcionó ("permiso denegado" o cualquier otro error)?
información interesante Creo que tienes razón en eso. El mensaje de denegación adecuado que recibo es que el usuario (usuario en la aplicación de terminal) no tiene el permiso android.permissions.DUMP. Así que supongo que se requerirán dos permisos para la ejecución exitosa del comando: permiso para volcar y permiso para recopilar estadísticas de batería, o al menos el primero para acceder a la herramienta dumpsys.
Ay. Tiene toda la razón, @Firelord: Eso requiere el permiso DUMP, el "desarrollo" de nivel de protección y (cita) "No para uso de aplicaciones de terceros". Por lo tanto, una aplicación de terminal que desee acceder dumpsysdebería estar al menos preinstalada. Y sí, estaba ciego aquí: "La información accesible con este permiso probablemente sea comparable a la recuperada por la herramienta de línea de comandos dumpsys ". (citó mi propia descripción de permiso aquí;)
El hecho intrigante es que puede ejecutar dumpsys solo sin ningún problema. No obtendrá el error sobre ese permiso de volcado específico. Todo lo que sucedería es que vería un error de denegación de permiso para cada servicio disponible allí. Utilicé com.android.terminalla aplicación para acceder al servicio de estadísticas de batería y obtuve el mismo error de permiso para el emulador de terminal. @Izzy
@Firelord La salida de 'adb shell dumpsys batterystats' está en gist.github.com/crocket/1ac5999ef4679cbf542e La esencia se eliminará después de semanas.
'paquete dumpsys shell adb | grep -A1 "userId=10118"' no devuelve ningún resultado.
Salida interesante. Claramente hay una aplicación o al menos un ID de usuario 10118. Véalo en el resultado buscando u0a118. Dime, ¿tienes acceso de root? Cuando me diga eso, proporcione la salida de adb shell dumpsys procstatsy adb shell dumpsys location.
@Firelord adb shell dumpsys procstats: dpaste.com/2DVBP98 adb shell dumpsys ubicación: dpaste.com/2GJ500A
Hmm, esperaba que procstats mostrara algo útil. Supongo que tendré que ir con lo que muestra el servicio de ubicación. Sé que la aclaración que busqué no lo ha llevado a ninguna parte, pero si es posible, ¿podría proporcionar la salida separada para adb shell dumpsys package kr.co.kweather, adb shell dumpsys package com.google.android.dialer, adb shell dumpsys package com.aws.android, adb shell dumpsys package com.wisemobile.openweather?
Solo el marcador tenía salida. marcador: dpaste.com/1C2R76P Creo que kweather y openweather se eliminaron en el pasado.

Respuestas (1)

Es el UID de una aplicación eliminada .

Para un número como 10118, es el UID de Unix para una aplicación de usuario ( u0_a118).

Debe haber una aplicación que consume mucha energía como un gran juego y la desinstalaste . Entonces no queda nada más que su UID, que se usa en el registro del sistema.

Android no registra por aplicación (para aplicaciones de usuario), sino por su UID. Entonces, cuando ve el uso de la batería, Android le dice la lista por UID de proceso, que contiene uno que no tiene una aplicación asociada. Android no puede determinar para qué aplicación es ese UID, por lo que elige darle el UID directamente, y ese es el número que ve.

Si se trata de una aplicación eliminada, un reinicio del dispositivo debería hacer que el proceso desaparezca.