安卓APK文件的MD5校验和不同,为什么?

12

我注意到如果我连续两次编译安卓应用程序,而且没有任何更改,那么生成的两个APK文件会具有不同的MD5校验和。无签名和已签名APK文件都会产生相同的结果。

您可以将其作为ZIP文件打开,里面的内容在两个文件中具有相同的MD5校验和,因此我很好奇。

还有什么其他的区别?这两个APK文件之间有什么不同之处?


也许 APK 文件存储了编译时间戳?我会查看 APK 格式的规范,看看是否存在这样的内容... - Robert Rouhani
听起来很有可能。在查找APK格式的详细信息时遇到了困难。APK和JAR不同吗?我想它会有一些额外的东西。 - Melissa Ethrin
apk文件实际上是具有特定文件内容的zip文件,就像.jar文件一样。 - reox
2个回答

13

那么,如果你编译一个APK,提取其内容,创建一个ZIP文件,将其重命名为APK,它就可以运行了吗?今晚在我尝试对一个人做同样基本的事情之前,一定要试一下这个。 - Melissa Ethrin
实际上是的!unzip test.apk; rm test.apk; zip -r test.zip ./*; mv test.{zip,apk}; adb install test.apk 可以运行。即使 MD5 校验和不同:950b9077d8a2a3be45ba207c0c0a2251 test.apk e0ae339a5ecd3080f8359fc06a4c3e29 test.zip.apk - reox

0

也许“signed”会导致MD5校验和不同?


编辑过了。结果发现这在有签名和无签名的 APK 中都会发生。 - Melissa Ethrin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接