通过META-INF/.SF文件区分apk是V1还是V2签名的方法如下:
如果.SF文件抬头包含X-Android-APK-Signed: 2,则表明该apk是V1和V2混合签名;
如果.SF文件抬头不包含X-Android-APK-Signed: 2,则表明该apk是纯V1签名;
如果连.SF文件都没有,则表明该apk是纯V2签名;
验证办法:
1、该命令签名的apk为混合签名
java -jar apksigner.jar sign --ks debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android --key-pass pass:android --out test-new_sign.apk test-new.apk
2、该命令签名的apk为纯V2签名
java -jar apksigner.jar sign --v1-signing-enabled false --ks debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android --key-pass pass:android --out test-new_sign.apk test-new.apk
3、该命令签名的apk为纯V1签名
java -jar apksigner.jar sign --v2-signing-enabled false --ks debug.keystore --ks-key-alias androiddebugkey --ks-pass pass:android --key-pass pass:android --out test-new_sign.apk test-new.apk