前言:
打包apk后上架之前需要进行加固,加固后生成的apk文件需要进行重新签名;
单独的apk文件可以使用基于JDK(需要安装java jdk)和SDK(需要下载android studio 开发工具)的命令进行手动签名。
安装JDK(签名v1)、安卓SDK(签名v2)
jdk版本: java version "1.8.0_191" (该版本可以查看生成的md5签名)
已安装,不在过多介绍。自行查询安装。
JDK重新签名 v1
jarsigner -digestalg SHA1 -sigalg MD5withRSA -verbose -keystore [你的keystore文件以及文件路径] -signedjar [重新签名后要生成apk名字] [加固后下载的apk文件,以及文件路径] [你的keystore文件别名]
示例:(执行完命令后就可以生成V1签名的apk文件了)
jarsigner -verbose -keystore /Users/snowbeatrain/Documents/xxxx/xxxx/demo.keystore -signedjar demo_xxx.apk /Users/snowbeatrain/Downloads/77cc5305383b9fc395cba8ca45cbb5ed.20221219101125.apk demo.keystore
SDK重新签名 v2
java -jar apksigner.jar sign --ks [jks路径/ keysotre证书文件名和路径] --ks-key-alias [签名文件别名] --ks-pass pass:[证书密码] --key-pass pass:[别名密码] --out [V2签名完后apk文件输出路径] [需要V2签名的apk路径]
示例:(执行完命令后就可以生成V2签名的apk文件了)
java -jar apksigner.jar sign --ks /Users/snowbeatrain/Documents/xxxx/xxxx/demo.keystore --ks-key-alias demo.keystore --ks-pass pass:123456 --key-pass pass:123456 --out demo_v2.apk /Users/snowbeatrain/Downloads/77cc5305383b9fc395cba8ca45cbb5ed.20221219101125.apk
验证最终生成的apk文件的签名模式:
java -jar apksigner.jar verify -v [签名文件的路径]

签名验证注意事项:
需要找到当前sdk下apksigner.jar 的路径


进入SDK的build-tools目录,然后随意选择一个大于27的版本(这里最好选择高点的版本),然后进入lib目录 然后在进行签名验证

参考文档:
https://blog.csdn.net/yzwfeng/article/details/125172673
https://blog.csdn.net/u013114610/article/details/115121200
https://blog.csdn.net/qq_33183456/article/details/106103859
https://blog.csdn.net/abs625/article/details/120342644