Android N provided new apk Signature Scheme v2, how can I check if a specific apk is signed with that new signature?
Thanks
Run apksigner verify -v <apk>
and look for Verified using v2 scheme (APK Signature Scheme v2): true
in the output. apksigner can be found in Android SDK build tools 24.0.3. apksigner's source code is here: https://android.googlesource.com/platform/tools/apksig/.
For an already installed package on Android Nougat: adb shell pm dump <package name> | grep apkSigningVersion
. 1
means conventional JAR signing scheme, 2
means APK Signature Scheme v2.
You can also run grep 'APK Sig Block 42' app.apk
but this may have false positives. Only if there is no match is it certain that the APK is not signed using APK Signature Scheme v2.
EDIT: Added information about apksigner which wasn't yet available when the original answer was written.