Imaginemos que descargo una aplicación usando Aurora Store y comienzo a usarla, ¿puede esta aplicación saber de qué origen ha sido descargada? ¿Puede saber si la fuente de descarga fue diferente de la Play Store?
Respuesta
¿Demasiados anuncios?Android guarda para cada aplicación a través de qué otra aplicación se ha instalado la aplicación. Esta información se puede consultar a través de Android API y se puede consultar utilizando pm
a nivel de adb:
Primero lista los paquetes instalados:
adb shell pm list packages
Selecciona un nombre de paquete de la lista que desees consultar, por ejemplo Chrome com.android.chrome
, y ejecuta:
adb shell pm dump com.android.chrome | grep installerPackageName
Por lo general, obtendrás el resultado de que se ha instalado desde Google Play Store:
installerPackageName=com.android.vending
Otros valores posibles (observados en Android 13) son com.google.android.packageinstaller
si la aplicación se ha descargado por ejemplo por una aplicación de terceros (por ejemplo, Chrome, Firefox, F-Droid) e instalada directamente.
Las aplicaciones instaladas a través de Aurora Store Session Installer terminarán con
installerPackageName=com.aurora.store
Las aplicaciones que se han instalado a través de adb install
no tienen la propiedad installerPackageName
.
También podría ser de interés el valor packageSource
en dispositivos Android 13+.
adb shell pm dump com.android.chrome | grep packageSource
Estos son los posibles valores de packageSource
.
- 0 = PACKAGE_SOURCE_STORE - Play Store, también para aplicaciones instaladas mediante adb
- 1 = PACKAGE_SOURCE_OTHER
- 2 = ??
- 3 = PACKAGE_SOURCE_LOCAL_FILE - navegador web, tienda de terceros
- 4 = PACKAGE_SOURCE_DOWNLOADED_FILE