在AndroidStudio中,我们可以很方便的对apk进行打包与签名,也可以选择V1或V2签名;然而,有些时候(比如反编译重新打包、apk加固后...),我们却需要直接对APk进行签名.
在Android7.0引入了jdk7才支持的V2签名,这一签名不需要对所有文件进行摘要计算、且增加了APK 签名分块并且该分块有特定格式,所以,使用V2签名后,apk的安装速度与完整性保障都有不错的提升;然而,由于需要兼容旧版本,V1签名不能完全去掉,现多使用v1+v2(+v3)签名形式。
V1签名(jarsigner方式)最基础签名
由于安全漏洞问题,最近对app进行了一些改善,其中包括使用了第三方进行加固;加固后,必须对apk进行重新签名,于是使用了以下方式:
// apksigner -verbose -keystore (签名地址) -signedjar (签名后的apk地址) (待签名apk地址) (别名)
V2签名(apksigner方式)
原来,jarsigner只是对apk进行了V1签名;前面说到在Android7.0引入了V2签名,因此,当进入sdk\25.0.0及后续版本,会发现一个apksigner.bat执行脚本。这里我用的是29.0.3版本
![]()


本文详细介绍了在Android开发中,如何使用V1与V2签名方式对APK进行签名,包括使用jarsigner和apksigner工具的具体命令。此外,还提供了验证签名是否成功的指令。
7441

被折叠的 条评论
为什么被折叠?



