将 APK 文件拖放到此处
或点击浏览本地文件
完整的签名和证书分析为什么要验证 APK 签名?
APK 签名可确保应用程序来自其原始开发人员且未被篡改。
- 确认应用程序真实性和开发者身份
- 检测修改、篡改或重新打包的 APK
- 验证更新与现有安装的兼容性
- 识别V1/V2/V3签名方案版本
- 查看 SHA-1 和 SHA-256 证书指纹
- 检查 MANIFEST.MF 文件完整性
APK 签名方案
v1
JAR 签名
原始方案,验证每个 ZIP 条目。速度较慢但广泛兼容。
v2
APK签名方案v2
全APK验证,安装更快。从 Android 7.0+ 开始需要。
v3
APK签名方案v3
支持密钥轮换。适用于 Android 9.0+。
v4
APK签名方案v4
流式安装支持。Android 11.0+。
APK 签名验证器 — 常见问题
Android APK 签名方案(v1、v2、v3 和 v4)如何保护包完整性
Android 的 PackageManager 拒绝安装任何缺少有效加密签名的 APK,并且它会阻止应用程序更新,除非新 APK 的签名证书与已安装包的证书完全匹配(否则抛出 INSTALL_FAILED_UPDATE_INCOMPATIBLE)。在旁加载 APK 之前对其进行验证可以让您确认存档未被不可信第三方篡改或重新签名。
我们基于浏览器的 APK签名验证器 检查旧版 META-INF/ JAR 签名目录和紧邻 ZIP 中央目录之前嵌入的二进制 APK签名块:
- v1 签名(JAR 签名 — META-INF/*.MF / *.SF / *.RSA): 向后兼容 Android 6.0 及更早版本所必需的。由于 v1 仅对 MANIFEST.MF 中列出的单个文件条目进行哈希处理,因此它不保护 ZIP 元数据,从而导致了历史性的“Janus”漏洞 (CVE-2017-13156)。
- v2 签名(APK 签名方案 v2 — 块 ID 0x7109871a): 在 Android 7.0 (Nougat) 中引入。将整个 APK 文件哈希为 1 MB 块中的二进制图像,确保不会在存档中的任何位置注入额外的字节或 DEX 有效负载。 Android 11+ (targetSdkVersion ≥ 30) 上强制。
- v3 签名(密钥轮换 — 块 ID 0xf05368c0): 在 Android 9.0(Pie)中引入。在签名块中嵌入加密的轮换证明沿袭,以便开发人员可以轮换到更强的 RSA-4096 或 ECDSA 密钥,而不会失去更新兼容性。
- SHA-256 证书和文件指纹识别: 在安装之前,使用“概述”选项卡中显示的 SHA-256 摘要根据官方开发人员发行说明或 VirusTotal 交叉检查您的 APK。