Apksigner 中文文档 下载 App

签名方案组合策略:v1+v2 为什么是稳妥默认

一张组合决策表

签名时到底勾哪几项,取决于这个包要去哪些设备。按包的最低兼容版本对号入座:

你的包要装的设备建议组合理由
不确定 / 三方分发v1 + v2老设备靠 v1 进门,新设备靠 v2 强校验
只装 Android 7.0 以上v2(可加 v1 保险)新系统主路径是 v2
走密钥轮替的开发者v2 + v3v3 承接密钥换代,见v3 说明
Android 11 流式安装v2/v3 + v4v4 依附于流式安装环境

v1+v2 为什么是万能底座

两者的校验对象互补:v1 管到"包内每个文件",v2 管到"整个文件字节"。带双签名的包,老系统读 v1 顺利进门,新系统优先走 v2 拿到更强的保护——同一份包,两头都不吃亏。这也是第三方整理教程里最常被推荐给普通用户的组合:它把"这包会传到什么设备"这个未知数直接消掉了。

有代价吗

有,但可接受:双签名让包体略微增大(多一段签名数据),安装校验时间差在手机上感知不到。对手机端手动签包的场景,这点开销换覆盖面,值。

什么时候该收紧

如果包的用途明确、设备明确,按表收窄反而更好:目标全是新设备时丢掉 v1,等于顺带关掉了老攻击面,理由见v1 方案的固有弱点。

签完记得验一遍

组合勾完、签完输出后,用应用内的验证能力确认签名如预期生效——验证 APK 文件就是干这个的。