问题描述
我从某个替代来源 (apkfollow.com) 下载了一个 apk 文件,以获取我的银行应用程序的旧版本。我已针对此 apk 文件运行 apksigner
,如下所示:
apksigner verify --verbose --print-certs <my-app-name>.apk
Verifies
Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
问题:
- 为什么 v1 方案是
false
?较新的 Android 版本不再需要它吗? - 我可以信任这个 apk 吗?如果显示
Verifies
,是否表示该 apk 文件是该应用的官方未修改版本(假设我知道公钥/证书具有正确的已知摘要)?
解决方法
只要第一行是“验证”,那么您就可以信任*这个 APK。
下面的其他几行是有关实施的签名级别的一些详细信息:v1 签名方案(又名 JAR 签名)比 v2 和 v3 签名方案弱,如果您有 minSdkVersion 24+,则是可选的,因此可以解释原因v1 签名方案不存在。
* 请注意,这不会告诉您是谁签署的,只是在“某人”签署后没有修改。您必须查看证书以确保它是由您期望的人签署的。