不止一次有用到Android签名相关的知识,每次都几乎从零开始在Google上搜索找,不想在继续这样了,找了个时间好好整理了一下自己用到的一些碎片知识,于是乎放到这里,一是备忘,二是帮助别人。
从APK文件中获取签名信息
使用方法
keytool -list -printcert -jarfile your_apk_file |
输出信息
- 签名Owner,Issuer等信息
- 签名的fingerprints,如md5及sha1等值
- 签名有效期等信息
示例效果
16:29 $ keytool -list -printcert -jarfile akoi_1.2.apk |
从签名文件中获取签名信息
使用方法
keytool -list -v -keystore your_kestore_file |
注意,上述命令执行后,会提示输入密码,其实输入错误也没有关系,不影响结果。
输出信息
- 签名Owner,Issuer等信息
- 签名的fingerprints,如md5及sha1等值
- 签名有效期等信息
示例效果
Keystore type: JKS |
重新签名APK
在没有源码情况下,我们就能对apk进行更换签名。
脚本
- signapk.sh
- 备用地址
使用方法
bash signapk.sh your_apk_file your_keystore_file keystore_pass keystore_alias |
示例效果
16:57 $ bash signapk.sh weixin6313android740.apk ~/Documents/baidu_disk/百度云同步盘/droidapp/mykiki 123456 droidyue.com |
生成的文件会放在当前目录,其文件名相对输入文件,增加了signed_
前缀,比如对weixin6313android740.apk
进行上述操作得到的输出文件是signed_weixin6313android740.apk
Gradle build生成签名APK
想要在执行gradle build时生成指定签名的apk,需要在build.gradle中如下修改
android { |