1 votes

Est-ce que "adb install" écrase ou saute quand l'apk est déjà installé ?

Je veux juste avoir plus de clarté sur ce que fait adb par défaut.

Lorsque j'exécute adb install pour un apk qui est déjà installé, la commande affiche seulement :

Performing Streamed Install
Success

il ne précise pas s'il saute l'installation ou s'il écrase.

Et y a-t-il une option verbose pour adb afin d'être plus clair sur ce qui se passe ?

3voto

pr0nin Points 353

Restrictions générales

Vous ne pouvez installer un fichier APK qui a le même nom de paquet qu'une application déjà installée que si les deux conditions suivantes sont remplies.

  1. L'application installée et le fichier APK que vous voulez installer doivent être signés par la même clé de développeur, sinon vous obtiendrez le message suivant INSTALL_FAILED_UPDATE_INCOMPATIBLE Package <packagename> signatures do not match previously installed version; ignoring!
  2. Il y a une protection contre le déclassement de l'application, ce qui signifie que le versionCode (spécifié dans AndroidManifest.xml ) de l'application à installer doivent être égales ou supérieures à celles de l'application déjà installée. Sinon, vous obtiendrez l'erreur INSTALL_FAILED_VERSION_DOWNGRADE . Ceci ne peut être contourné que pour les applications qui ont l'option de contrôle de l'accès. debuggable activé. Ensuite, vous pouvez ajouter l'option adb -d pour contourner cette restriction.

Le dernier facteur est la version d'Android. Le comportement de adb install semble dépendre de la version d'Android.

Android 10+

Sur Android 10 et 11, j'ai pu observer qu'Android ne se soucie pas de savoir si une application est déjà installée ou non.

Par conséquent, tant que le nouveau fichier APK est signé avec la même clé de développeur, vous pouvez simplement exécuter adb install pour installer une version actualisée de l'application.

Android 9 et inférieur

Sur Android 9 et avant, cependant, par défaut, le simple adb install échouera simplement avec l'erreur INSTALL_FAILED_ALREADY_EXISTS si une application portant le même nom de paquet est déjà installée. Le fichier APK spécifié ne sera pas installé dans ce cas.

Seulement si vous utilisez adb install -r une application existante qui a le même nom de paquet que celle que vous voulez installer peut être remplacée mais il y a deux restrictions.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X