根据APK安装包,可以查看所使用的签名信息。

判断使用了哪些签名

能够使用指令

1
apksigner.bat verify -v xxx.apk

如图:

image-11.png

由上图可以看出,该apk仅使用了V2签名方案签名。

(PS. apksigner.bat通常所在路径为Sdk\build-tools\xx.x.x\)


apksigner.bat脚本,可替换为

1
java -jar apksigner.jar

其中apksigner.jar所在路径为Sdk\build-tools\xx.x.x\lib


一个简单的通过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签名;

查看V1签名方式的签名信息

V1签名是一种JAR方式签名,特点之一便是apk包中包含,META-INF\XXX.RSA,或者.SF文件

针对使用V1签名方式的apk,可以使用以下指令获取签名信息

1
keytool -printcert -jarfile xxx.apk

查看V2签名方式的签名信息

针对仅使用V2签名方式的apk,可以使用以下指令获取签名信息

1
apksigner.bat verify --print-certs xxx.apk

如图:

image-12.png