J'essaie le Schéma de signature APK v4 introduite dans Android 11. J'utilise le apksigner de l'Android Sdk et il semble fonctionner correctement : il signe le .apk et génère le fichier .idsig comme prévu :
$ apksigner sign -v --ks ~/keystore.jks --ks-key-alias testkey app.apk
Keystore password for signer #1:
Signed
$ ls
app.apk app.apk.idsig
Cependant, lorsque j'utilise le même outil apksigner pour vérifier la signature, le résultat est le suivant :
$ apksigner verify -v ./app.apk
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
Verified using v4 scheme (APK Signature Scheme v4): false
Verified for SourceStamp: false
Number of signers: 1
WARNING: META-INF/com/android/build/gradle/app-metadata.properties not protected by signature. Unauthorized modifications to this JAR entry will not be detected. Delete or move the entry outside of META-INF/.
... # and a bunch of other v1-related warnings
Il vérifie donc avec succès sur la base de APK Signature Scheme v3 et ne prend pas du tout en compte le .idsig (la modification du fichier .idsig n'affecte pas le résultat de la vérification). J'attends Verified using v4 scheme (APK Signature Scheme v4):
d'être également true
.
Est-ce que j'ai manqué quelque chose ?