Android给apk签名

Android给apk签名

签名是为了什么????

简单来说,签名可以保证我们的应用可以正常升级,并且不被别人覆盖. 算是一个标识.

工具

  • keytool 是个密钥和证书管理工具,可以用来生成证书.

  • jarsigner 工具利用密钥仓库中的信息来产生或校验 Java 存档 (JAR) 文件的数字签名

使用keytool生成证书:

keytool -genkey -keystore test.keystore -alias test -keyalg RSA -validity 10000

这里写图片描述

参数解释:

  1. -genkey 产生证书文件
  2. -keystore 指定密钥库的.keystore文件中
  3. -keyalg 指定密钥的算法,这里指定为RSA(非对称密钥算法)
  4. -validity 为证书有效天数,这里我们写的是10000天
  5. -alias 产生别名

然后再次执行签名:


jarsigner -verbose -keystore test.keystore -signedjar signed.apk t.apk
test

这里写图片描述

参数说明:

  1. -verbose:指定生成详细输出
  2. -keystore:指定数字证书存储路径
  3. -signedjar:该选项的三个参数为 签名后的apk包 未签名的apk包 数字证书别名(注意顺序)

后面有个警告,不过没有多大影响:
这里写图片描述

关于debug.keystore

补充点小知识:
1. AndroidStudio会自动生成一个默认的debug.keystore,它存放在~/.android/目录下.
2. 如果一不小心删了(其实我是rm了它),只要重新run一遍debug版应(不指定signingConfig),AS会再次自动创建
3. 它默认密码为 android

参考作者程序亦非猿


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部