编辑系统APK的基本步骤:
META-INF包含签名:这是有道理的。 但是,AndroidManifest.xml保留原始签名的目的是什么? 我自己测试了这个并且Android不会使用重新编译的AndroidManifest.xml加载APK(即不是原始的AndroidManifest.xml)。
许多指南都说明了将META-INF和AndroidManfest.xml从原始APK复制到modded APK的必要性。
我发现最接近的答案是重新编译会破坏AndroidManifest.xml(请参阅http://rootzwiki.com/topic/268-guide-newbies-how-to-port-themes/),但我比较了原始和重新编译后的AndroidManifest.XML,它们是相同的(WinMerge说它们相同MD5和SHA1哈希)。另一个人(http://miuiandroid.com/community/threads/q-remove-miui-torch-app.16013/)推测META-INF和AndroidManifest.xml在某种程度上相互联系。
每个人都这样做,但有人知道为什么吗?
答案 0 :(得分:1)
在验证系统APK时,Android会检查APK中文件子集的签名,以确保它们未被篡改。这些文件包括AndroidManifest.xml
,classes.dex
和其他文件。如果原始文件的SHA-1摘要(存储在META-INF/MANIFEST.MF
和META-INF/CERT.SF
中)与修改后的APK中的文件的摘要不匹配,则Android将拒绝加载APK。