Par exemple, si j'installe Google Chrome sur mon téléphone (en supposant qu'il n'est pas préinstallé), quel que soit le nom original de l'apk, il sera généralement installé à l'adresse suivante /data/app/com.android.chrome-1.apk
mais parfois /data/app/com.android.chrome-2.apk
et même xxx-3.apk ou xxx-4.apk
Ma question est de savoir ce que signifie le chiffre dans ce cas et comment il est généré. Il varie souvent et je n'ai pas trouvé d'indice.
Réponses
Trop de publicités?Ce numéro n'a pas de signification particulière. Il est utilisé pour distinguer les anciens et les nouveaux paquets pendant l'installation . Lors de l'installation d'une application, le programme d'installation de paquets trouve d'abord un modèle "packageid-number" disponible, le nombre étant incrémenté à partir de 1, et crée le répertoire (fichier APK pour Android 5.0 et moins). Il y place ensuite le fichier APK et supprime l'ancien. Par conséquent, le plus souvent, le nombre ne varie que de 1 à 2 car il n'existe qu'une seule instance d'une application installée. En additionnant l'ancienne application et le nom temporaire, il ne peut y avoir que 2 instances. Si vous avez, par d'autres moyens comme l'installation de 2 de la même application à l'aide d'un conteneur parallèle, il peut y avoir jusqu'à 4 instances de l'application, créant ainsi com.example-4
.
Voici mon expérience sur Android 5.1.1, en utilisant Root Explorer pour installer l'application et l'émulateur de terminal pour surveiller le changement de contenu du répertoire.
Préparation : Utiliser XInstaller (un module Xposed) pour permettre le downgrade de l'installation d'une application (afin de pouvoir installer plusieurs fois la même version d'une application).
1. Appuyez sur le fichier APK préparé dans Root Explorer pour l'installer. Dans mon cas, c'est Termux.
2. Exécuter à plusieurs reprises
root@android:/data/app # ls -d com.termux-\*
出力します。
D'abord : com.termux-1
Après un certain temps : com.termux-1 com.termux-2
Après plus de temps et finalement : com.termux-2
3. Appuyez sur l'APK pour l'installer à nouveau et répétez l'étape 2.
出力します。
D'abord : com.termux-2
Après un certain temps : com.termux-1 com.termux-2
Après plus de temps et finalement : com.termux-1
4. Créez des répertoires de remplacement nommés com.termux-2
, com.termux-3
, com.termux-4
et définir les permissions correctes.
5. Répétez l'étape 3.
出力します。
D'abord :
com.termux-1 com.termux-2 com.termux-3 com.termux-4Après un certain temps : com.termux-1 com.termux-2 com.termux-3 com.termux-4 com.termux-5Après plus de temps et finalement : com.termux-2 com.termux-3 com.termux-4 com.termux-5Où `com.termux-2` , `com.termux-3` , `com.termux-4` sont tous vides car ils ont été créés par moi, et non par le programme d'installation de paquets. Pour vérifier, exécutez
root@android:/data/app # pm list packages -f | grep com.termux
package:/data/app/com.termux-5/base.apk=com.termux