安卓V1、V1+V2签名

你。 提交于 2020-03-09 15:28:27

最近做跟华为对接定制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地址)

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!