使用jarsigner进行apk签名

31 篇文章 1 订阅

使用jarsigner签名

1. 签名说明

签名是对要发布的apk文件作标记,确保你的apk文件有唯一的身份归属认证,只有相同签名和相同包名的文件才可以覆盖安装并保留用户信息。
jarsigner存在于Java JDK的安装包当中,所以安装好了Java环境的话,可以直接在命令行使用。详细信息可参见jarsigner.html

2. 基本介绍

使用基本格式

     jarsigner [ options ] jar-file alias jarsigner -verify [ options ] jar-file [alias ...]
	 jarsigner -verify [ options ] jar-file [alias ...]

options是jarsigner的选项内容,同样的,我们使用-help命令能够获取到具体的使用,如下面

$ jarsigner -help
用法: jarsigner [选项] jar-file 别名
jarsigner -verify [选项] jar-file [别名…]
[-keystore ] 密钥库位置
[-storepass <口令>] 用于密钥库完整性的口令
[-storetype <类型>] 密钥库类型
[-keypass <口令>] 私有密钥的口令 (如果不同)
[-certchain <文件>] 替代证书链文件的名称
[-sigfile <文件>] .SF/.DSA 文件的名称
[-signedjar <文件>] 已签名的 JAR 文件的名称
[-digestalg <算法>] 摘要算法的名称
[-sigalg <算法>] 签名算法的名称
[-verify] 验证已签名的 JAR 文件
[-verbose[:suboptions]] 签名/验证时输出详细信息。子选项可以是 all, grouped 或 summary
[-certs] 输出详细信息和验证时显示证书
[-tsa ] 时间戳颁发机构的位置
[-tsacert <别名>] 时间戳颁发机构的公共密钥证书
[-tsapolicyid ] 时间戳颁发机构的 TSAPolicyID
[-tsadigestalg <算法>] 时间戳请求中的摘要数据的算法
[-altsigner <类>] 替代的签名机制的类名
[-altsignerpath <路径列表>] 替代的签名机制的位置
[-internalsf] 在签名块内包含 .SF 文件
[-sectionsonly] 不计算整个清单的散列
[-protected] 密钥库具有受保护验证路径
[-providerName <名称>] 提供方名称
[-providerClass <类> 加密服务提供方的名称
[-providerArg <参数>]]… 主类文件和构造器参数
[-strict] 将警告视为错误

3. 对apk进行签名

如下面代码是对com.tencent.tmgp.sgame.apk包使用abc.keystore签名文件进行签名,使用的签名文件的签名文件别名是abc_alias,签名之后生成的包名是com.tencent.tmgp.sgame.signed.apk

jarsigner -verbose -keystore abc.keystore -signedjar com.tencent.tmgp.sgame.signed.apk com.tencent.tmgp.sgame.apk abc_alias

-verbose 指定生成时详细输出
-keystore 指定数字证书存储路径,证书文件为abc.keystore

使用上面命令就可以进行生成新的签名包了.

4. 进行验证是否签名
$ jarsigner -verify -certs 980406a1894fffc1d1c77b2252fe8a23.apk 

对于已经验证过的应用将会有如下界面:
已验证说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

suwu150

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值