资料来源
生成签名文件
有两种方式
- AS创建新的签名文件
傻瓜式操作,一键生成
- 命令行创建新的签名文件
keytool -genkey -alias aaaa.keystore -keyalg RSA -validity 2000 -keystore newandroid.keystore
备注说明:-alias后面跟着的是别名(android.keystore) -keystore后面跟着的是具体的签名文件(及签名文件的命名–newandroid.keystore)
当使用这个命令生成后,会有个警告,不符合pkcs12标准,需要消除掉(也可以不消除),使用如下命名:
keytool -importkeystore -srckeystore android.keystore -destkeystore newandroid.keystore -deststoretype pkcs12
将上面的android.keystore签名迁移到newandroid.keystore中,其各种参数不变。
---------------------
作者:willba
来源:CSDN
原文:https://blog.csdn.net/willba/article/details/79476904
版权声明:本文为博主原创文章,转载请附上博文链接!
查看签名文件
在AS自带的环境中,jre/bin目录下,打开cmd,输入如下命令
keytool -list -v -keystore
把.jsa签名文件拖入cmd即可
## 查看apk的签名
如果只有apk,如何查看签名呢
第一步:将apk解压
第二步:找到META-INF 下的.RSA文件
第三步:在mac终端或者window控制器上输入命令:
keytool -printcert -file xxx.RSA回车,即可查看签名文件.将.RSA文件拖入到-file后面,即可查看:
输出结果中的MD5就是签名信息,已经被隐藏
加固和重新签名
用腾讯云移动安全LeguPC加固并重新签名
工具下载地址
下载地址
gradle中添加签名信息
资料来源
project structure中更改app项目的signing和buildTypes信息
这样设置后,gradle文件会自动添加信息
签名文件信息
具体信息可以在根目录下的gradle.properties文件中配置,这样签名信息只保留在本地配置中,不会上传到仓库
release是正式签名配置
debug是debug签名配置
这样就可以保证正式版本和debug版本签名一致
删除原签名和重新签名
为了测试方便,有时需要删除发布应用的签名信息,用debug版本的签名文件重新签名,来测试覆盖和升级
删除签名信息
把apk文件类型改名为zip并解压,找到META-INF文件夹
删除如下签名信息
然后重新打包,逆操作,把zip格式改回apk
手动签名
现在拿到了未签名的apk和签名用的dubug.keystore
通过jarsigner命令来进行命令行签名,可以通过jarsigner --help命令了解更多用法
(需要本地安装和配置JDK)
jarsigner -verbose -keystore [签名文件keystore路径] -signedjar [签名后的文件路径] [未签名的文件路径] [keystore的别名keyAlias]
//回车运行后,会提示输入密钥库口令storePassword
//再次回车,会在指定的签名后文件路径输出指定的签名后文件