Historial de aplicaciones instaladas/desinstaladas

No sé si ya hay un hilo sobre este tema en particular, pero si es así, perdónenme. Me gustaría saber cómo puedo ver la fecha en que instalé y desinstalé cierta aplicación hace algún tiempo (siempre que la eliminé del historial de Google Play, por lo que no puedo ir por ese camino). He estado investigando un poco y logcat aparece en todas partes, pero no veo cómo puede resolver mi problema. Gracias de antemano por tu ayuda.

Respuestas (2)

Logcat no será de mucha ayuda aquí, ya que solo dura un tiempo limitado (utiliza un búfer de anillo con un tamaño fijo, por lo que las entradas más antiguas se sobrescriben con las nuevas). En cambio, concéntrese mejor en el administrador de paquetes:

adb shell "pm list packages -u -3"

le brinda una lista de todas las aplicaciones que ha instalado (la -3restringe a las aplicaciones que no venían preinstaladas, lo que básicamente significa "terceros"), incluidas las que ya ha desinstalado ( -u). La lista devuelta se ve así:

package:com.ceco.gm2.gravitybox
package:com.mohammadag.xposedpreferenceinjector

Esto todavía no le brinda los detalles que deseaba, así que traigamos ayuda de la respuesta de Firelord aquí :

Primero, necesitamos cortar el encabezado package:, por lo que modificamos nuestro comando a pm list packages -u -3 | awk -F: '{print $NF}':

com.ceco.gm2.gravitybox
com.mohammadag.xposedpreferenceinjector

Ya mejor. Ahora Firelord comienza a mencionar el dumpsyscomando para obtener detalles, que integramos en lo que tenemos hasta ahora:

for pkg in $(pm list packages -u -3 | awk -F: '{print $NF}'); do
    dumpsys package $pkg
done

Eso debería brindarle todos los detalles de cada aplicación, incluida la fecha de instalación ( firstInstallTime), la última actualización ( lastUpdateTime) y, con suerte, también la hora de desinstalación; desafortunadamente, en el dispositivo que probé ahora, las aplicaciones desinstaladas no aparecieron. a pesar del -uparámetro, que podría ser un problema específico del dispositivo (ya que la pmdocumentación lo describe claramente).

Para darle lo mismo que una sola línea que también debería funcionar en Windows:

adb shell "for pkg in \$(pm list packages -u -3 | awk -F: '{print \$NF}'); do dumpsys package \$pkg; done"
+1. De hecho, tenía el mismo enfoque en mente, pero publiqué un comentario ya que -uno pmme brindó nada bueno.
@Firelord OK, entonces no soy solo yo. Tal vez sea un parámetro en desuso que ya no se usa desde Android xy Como suele ser habitual, la documentación es algo poco común con ellos.

Puede usar este comando en Linux:

adb shell logcat | grep installpara instalar la aplicación ver en logcat

adb shell logcat | grep uninstallpara desinstalar la aplicación ver en logcat

De lo contrario, en Windows puede usar Cygwin. Puedes descargarlo desde aquí

¿Hay algo equivalente para Windows?
@jabadejat Grep está disponible para Windows, pero no está empaquetado de forma predeterminada. También debería ser parte de Busybox para Android, de modo que pueda hacer grep-ing en su dispositivo en lugar de su PC.
Dado que el registro se almacena en un búfer circular, por lo que las entradas antiguas se sobrescriben normalmente en un día, esto no parece ayudar a encontrar la fecha de instalación de una aplicación.
Cómo obtener el tamaño de Logcat: stackoverflow.com/questions/6321555/…
En Windows: adb shell "logcat | grep install". Tenga en cuenta las comillas: esto le indica adb shellque ejecute todo en Android, donde encuentra el logcatcomando y grep. Pero el punto es: uso limitado. De esta manera, puede ver lo que sucedió en los últimos minutos, pero seguro que no hace un par de días.
PD: Acabo de hacer una desinstalación de prueba. Tu comando no produjo eso. Lo que funcionó: adb shell "logcat -v time | grep -i uninstall". Tenga en cuenta el -igrep que no distingue entre mayúsculas y minúsculas (el registro lo tiene como "Desinstalar"), más el -v timeparámetro (OP quería ver cuándo sucedió eso, no solo que sucedió :)