gpt4 book ai didi

android - SDK或ADT如何为Android应用包的Res​​ources生成SHA1-Digest

转载 作者:行者123 更新时间:2023-11-29 22:06:20 26 4
gpt4 key购买 nike

在签名的 apk 中,会有一个 META-INF/MANIFEST.MF 文件。在这个文件中,我们可以找到像这样的摘要:

Name: res/layout/main.xml SHA1-Digest: NJ1YLN3mBEKTPibVXbFO8eRCAr8=

Name: AndroidManifest.xml SHA1-Digest: BlnC6ZBDtQYWeJNiespsQve82wY=

Name: res/drawable-mdpi/ic_launcher.png SHA1-Digest: 4ss2KZ3FzkmfE6HAAsVu0aJKx1U=

我找到了一种在 Java 中生成摘要的方法,如下所示:

public static void main(String[] args) throws NoSuchAlgorithmException, Exception {
MessageDigest md = MessageDigest.getInstance("sha-1");
FileInputStream in = new FileInputStream("./ic_launcher.png");
int bytes = 0;
while ((bytes = in.read()) != -1) {
md.update((byte)bytes);
}
in.close();
byte[] thedigest = md.digest();
System.out.println(Base64Encoder.encode(thedigest));
}

为了测试,我用这个简单的代码生成了一些摘要,大部分和apk中META-INF/MANIFEST.MF的摘要一样,还有少量异常(exception)。像这个 Png 文件:enter image description here

在 apk 中,此 png 文件的摘要是 4ss2KZ3FzkmfE6HAAsVu0aJKx1U= ,这与我上面的代码生成的 sjmKOs4BYDXg7COdeTc8tIfPBR0= 非常不同。

但是怎么解释我的代码生成的将近20个摘要和apk里面的摘要是一样的,只有这个Png的摘要不一样呢?

请问SDK或ADT如何为Android应用程序包的Res​​ources生成SHA1-Digest,或者说和我的代码有什么不同?

非常感谢!

最佳答案

创建 APK 文件的 aapt Android 工具对其输入进行一些处理。除了将 XML 资源转换为二进制形式外,它还优化了 PNG 文件。您很可能采用原始 PNG 文件的哈希值,而 APK 中的 PNG 文件已经过某种处理(压缩等),并且它的哈希值(摘要)不同。如果您解压缩导出的 APK 并获取包内 PNG 的哈希值,您应该得到相同的哈希值。

关于android - SDK或ADT如何为Android应用包的Res​​ources生成SHA1-Digest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10730543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com