如果我有一个 JAR(Android APK),并且我是这样签名的:
jarsigner -keystore my.keystore someApk.apk myAlias
我如何取消签名?因为如果我以 zip 文件的形式打开它并尝试提取 AndroidManifest.xml,它们都会搞砸。
如果您不关心清单和其他元信息(您可能不关心,因为您只想提取资源),您可以使用 提取文件jar -xvf myjar.jar
,删除 META-INF 目录,然后创建一个新的(未签名的 jar )。
如果您确实关心元信息,请查看了解签名和验证以了解签名的作用。您应该能够通过编辑清单并删除 jar 的 META-INF 目录中的签名文件来取消对 jar 的签名。
以上内容可能会回答您的问题,但可能无法解决您的问题,因为我不确定拥有签名的 jar 会如何导致资源“混乱”。资源本身不受签名过程的影响。如果你只是通过 jar 命令本身提取资源(如上面第二段),你还有问题吗?
事实证明,这个问题根本与签名无关——这是因为 XML 文件被编译了。要查看此文件的内容,您必须使用该aapt
工具。