1 votos

¿"adb install "sobrescribe o salta cuando el apk ya está instalado?

Sólo quiero tener más claridad en lo que adb hace por defecto .

cuando ejecuto adb install para un apk que ya está instalado el cmd solo muestra :

Performing Streamed Install
Success

no especifica si se salta la instalación o si se sobrescribe.

y ¿hay una opción verbosa para adb para que sea más claro de lo que está haciendo?

0 votos

Nunca ha saltado en silencio. Sobrescribe si la firma del nuevo APK coincide con y la versión es igual o mayor que la preinstalada. De lo contrario, lanza un error indicando claramente la razón, que podría ser también otra cosa que la firma y la versión, por ejemplo, un componente de la aplicación que se contradice con alguna aplicación preinstalada.

0 votos

Cuando sobreescribe lo hace en silencio o dice que se está sobreescribiendo?

3voto

pr0nin Puntos 353

Restricciones generales

Sólo puede instalar un archivo APK que tenga el mismo nombre de paquete que una aplicación ya instalada si se cumplen los dos requisitos siguientes.

  1. La aplicación instalada y el archivo APK que quieres instalar deben estar firmados por la misma clave de desarrollador, de lo contrario obtendrás el rror INSTALL_FAILED_UPDATE_INCOMPATIBLE Package <packagename> signatures do not match previously installed version; ignoring!
  2. Existe una protección contra el downgrade de la aplicación, lo que significa que el versionCode (especificado en AndroidManifest.xml ) de la aplicación a instalar tienen que ser iguales o mayores que los de la aplicación ya instalada. En caso contrario, se producirá el error INSTALL_FAILED_VERSION_DOWNGRADE . Esto sólo se puede evitar para las aplicaciones que tienen el debuggable bandera fijada. Entonces puedes añadir la opción adb -d para saltarse esta restricción.

El último factor es la versión de Android. El comportamiento de adb install parece depender de la versión de Android.

Android 10+

En Android 10 y 11 pude observar que a Android no le importa si una aplicación ya está instalada o no.

Por lo tanto, mientras el nuevo archivo APK esté firmado con la misma clave de desarrollador, puedes simplemente ejecutar adb install para instalar una versión actualizada de la aplicación.

Android 9 e inferior

En Android 9 y anteriores sin embargo por defecto el simple adb install fallará con el error INSTALL_FAILED_ALREADY_EXISTS si una aplicación con el mismo nombre de paquete ya está instalada. El archivo APK especificado no se instalará en ese caso.

Sólo si utiliza adb install -r se puede sustituir una aplicación existente que tenga el mismo nombre de paquete que la que se quiere instalar, pero hay dos restricciones.

0 votos

He utilizado adb install solo sin el " -r" y no han fallado solo han dicho éxito. la apk que he utilizado es la misma. he instalado las aplicaciones y al ejecutar la instalación de nuevo todas han dicho solo éxito.

0 votos

@bigubr Instalar de nuevo el mismo APK puede ser un caso especial. O el comportamiento también depende de la versión de Android.

0 votos

@bigubr La versión de Android es realmente importante, desde Android 10 no es necesario especificar la -r opción más.

PreguntAndroid.com

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.

Powered by:

X