我一直在玩 android APK 签名,我想再问几个问题。
我知道 MANIFEST.MF 包含 APK 中所有文件的 SHA-1 哈希值。我知道有 CERT.SF 包含清单的散列和所有清单条目的散列。然后是 CERT.RSA,其中包含来自用于签署 APK 的密钥库的 RSA 证书。
我已经能够重现 MANIFEST.MF 和 CERT.SF 的内容,但我找不到 CERT.RSA 是如何“连接”到这些文件的。
我的意思是:如果我更改 APK 内容(fe 替换应用程序图标),那么当然,在安装过程中,我会收到异常说 MANIFEST 中的哈希和实际哈希不同。但是,当我更新 MANIFEST 和 CERT 中的哈希值以使其正确时,我仍然在安装过程中遇到 Invalid Certificate Exception。但这次是在 apk 中的第一个资源文件上。
那么,即使我更新了哈希值,Android 怎么知道我在 apk 中更改了某些内容?我看到这在某种程度上与 CERT.RSA 相关,但我很难弄清楚它是如何工作的。
编辑,更清楚地说:除了上面提到的之外,所有的东西都必须匹配,以便 Android 认为某些 APK 有效?