Android应用的签名方案及签名机制

208 篇文章 0 订阅
208 篇文章 0 订阅

安卓签名用于验证应用开发者的身份,确保应用来自可靠的开发者,每个应用都有一个唯一的签名。签名除了用来验证开发者的身份,还是保障应用安全和数据完整性的关键技术。

安卓签名的工具:

Android签名的工具有两种:jarsigner和signapk。jarsigner在JDK里面,apksigner在build-tools里面,具体的路径可以自行百度,因为我不敢保证所有版本的路径是固定不变的。jarsigner会生成keystore,也就是我们用AS的签名能生成keystore。signapk能生成pk8和pem。这两方也是可以转换的。

Android支持以下三种应用签名方案:

  • v1 :基于 Jar 签名;

  • v2 :提高验证性能 & 覆盖范围(Android 7.0 Nougat 引入);

  • v3 :支持密钥轮换(Android 9.0 Pie 引入)。

  • v4:基于根据 APK 的所有字节计算得出的 Merkle 哈希树

为了提高兼容性,必须按照 v1、v2、v3 、v4的先后顺序采用签名方案,低版本平台会忽略高版本的签名方案在 APK 中添加的额外数据。

V1签名后会增加META-INF 文件夹,其中会有如下三个文件:

V1签名方案是Android早期的签名方案,已经不再推荐使用,与大多数开发工具兼容,这是一个兜底的方案,如果设备不支持更高版本的签名,这个方案可以作为最后的验证方案。

V2签名被广泛用于Android 7.0 Nougat 及更高版本。它可以提高安全性,使用压缩算法减小程序包的大小,并增加时间戳,以确保APP程序的真实性。

Android V3 的签名本质上和V2签名是类似的,方案增加了有关受支持的 SDK 版本和 proof-of-rotation 结构体的信息。

Android 11 通过 APK 签名方案 v4 支持与流式传输兼容的签名方案。v4 签名基于根据 APK 的所有字节计算得出的 Merkle 哈希树。它完全遵循 fs-verity 哈希树的结构(例如,对盐进行零填充,以及对最后一个分块进行零填充。)Android 11 将签名存储在单独的 <apk name>.apk.idsig 文件中。v4 签名需要 v2 或 v3 签名作为补充。

以上内容由AdSet聚合广告平台整理发布,供开发者参考~

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值