使用apksigner对apk进行v2签名

最近进行三方安全测试,剩最后一个问题:

 

原因是我用360加固宝之后,又用了360Signer对apk进行二次签名,而360Signer是用v1方式对apk进行签名的,所以安全检测还是不通过。

 

 下面给出自己百度出来的对360加固之后的apk进行v2二次签名的方法。(注意要用同一个keystore)

 

(1)先找到电脑中25或者25以上版本的SDK的build-tools\版本号的目录,并把需要签名的安装包放在该目录下。
 
(2)使用zipalign将安装包对齐:打开cmd,将目录切换到sdk的build-tools\版本号的目录下,使用zipalign -v -p 4 input.apk output.apk进行对其操作,其中input.apk是需要签名的安装包,output.apk是对齐之后的的安装包。
 
(3)把对齐后的安装包apk文件放到build-tools\版本号下的lib文件下,使用apksigner对安装包进行签名:打开cmd,将目录切换至当前目录下,使用如下命令:java -jar apksigner.jar sign --ks kestore的路径 --out output.apk input.apk 然后会提示输入keystore的密码,输入后回车即可完成签名。
 
(4)检查是否签名成功:依旧在当前目录下打开cmd,然后输入如下命令:java -jar apksigner.jar verify -v my.apk。如果v1 scheme和v2 scheme的值都为true,即表示签名成功。