Les applications modernes installées à partir de Google Play Store se composent de plusieurs fichiers APK (également appelés fichiers APK fractionnés). Si l'application contient des fichiers natifs .so
ces fichiers sont généralement empaquetés par ABI (par ex. armeabi-v7a
arm64-v8a
x86
o x86_64
) et seul le fichier ABI correspondant est téléchargé et installé.
Par conséquent, pour certaines applications, vous pouvez vérifier l'ABI installé en listant tous les fichiers APK qui appartiennent à une application :
adb shell pm path <packagename>
Beispiel:
package:/data/app/.../com.example.app-SO6ebvL9yDViMlHkHQ6NPw==/base.apk
package:/data/app/.../com.example.app-SO6ebvL9yDViMlHkHQ6NPw==/split_config.arm64_v8a.apk
package:/data/app/.../com.example.app-SO6ebvL9yDViMlHkHQ6NPw==/split_config.xxhdpi.apk
Si la liste des APK contient une entrée qui se termine par arm64_v8a.apk
et qu'aucun autre fichier APK ne contient dans son nom de fichier un autre nom d'ABI, alors vous savez que l'application arm64_v8a
La version ABI est installée et utilisée.
Malheureusement, cela ne peut fonctionner que pour les APK divisés. Et même pour certaines applications APK divisées, cela ne fonctionne pas pour une raison inconnue - com.android.chrome
est une de ces applications qui est une application divisée avec des fichiers dépendants de la plateforme mais aucun des fichiers APK n'a d'indicateur dans le nom du fichier pour savoir quel ABI est installé.