安卓V1、V1+V2签名

  • Post author:
  • Post category:其他


最近做跟华为对接定制rom的事情,涉及到了签名问题,以前都是开发工具直接打出签名包,基本没怎么用命令行的形式进行签名,所以这次记录下,方便后期再遇到。

注意:对apk签名时,当前命令行所在的目录就是apk所在的目录(cd apk目录)



一、V1签名

直接在命令行输入

jarsigner -verbose -keystore 111 -signedjar 222 333 444

111:你的签名文件

222:签名成功后输出的apk的名字

333:需要签名的apk的名字

444:你的签名中的

Key alias

111 222 333 处其实是文件的路径+文件名字,但是我一般不写路径,直接写名字,所以成生成的apk直接会在当前文件夹下了,而且还要保证签名文件和待签名的apk所在同一个目录下。


Key alias是啥?


在这里插入图片描述

举例:

jarsigner -verbose -keystore uclass_starter.jks -signedjar uclass_starter.apk uclass_starter_update.apk my_class

  • uclass_starter.jks(签名文件)
  • uclass_starter.apk (希望签名成功之后的apk名字就叫uclass_starter)
  • uclass_starter_update.apk(待签名的apk的名字是uclass_starter_update)
  • my_class(uclass_starter.jks签名文件里的Key alias是my_class)



二、V1+V2签名

v1+v2签名跟单独的v1签名还是有区别的,v1+v2签名需要用到

apksigner

,而v1签名用的是jarsigner。在命令窗口输入jarsigner,是可以看到运行结果的,但是直接输入apksigner是不行的。

  1. 首先需要我们找到sdk目录中build-tools下,此时我们会看到很多版本

    在这里插入图片描述

    每个版本里都有个lib文件夹,从版本号24.0.3开始lib文件夹下都有一个apksigner.jar文件,因此我们需要命令窗口在当前lib路径下,执行命令
java -jar apksigner.jar sign --ks 111 --ks-key-alias 222 --out 333 444

111:签名文件路径

222:Key alias

333:签名后apk的路径

444:待签名的apk路径

如果想要验证是否签名成功可以执行

java -jar apksigner.jar verify -v --print-certs (apk地址)

在这里插入图片描述



版权声明:本文为qq_36356379原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。