apk重新签名

对apk进行重新签名中遇到的问题记录如下

今天使用我周六写的工具对apk进行签名时,报了如下错误

jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 716812 but got 722173 bytes)

经查后发现,是由于apk中包含有签名信息,所以不能进行签名。但在上周开发完工具后,测试未发现该问题。和同事讨论后,得出如下结果:

  1. 如果是debug生成的包,可以直接进行二次签名。我当时测试通过就是该种情况,使用的是debug apk。
  2. 对已经进行过签名的包,需要删除签名文件,再进行签名。在这里需要注意的是,解压apk后,删除META-INF后,再压缩为apk包,进行签名,出现了如下错误

正在添加: META-INF/MANIFEST.MF jarsigner 错误: java.lang.NullPointerException

上面解决的方法为,我使用了好压软件,打开右键打开,选择删除。


apk重新签名_第1张图片
image.png

此时可以正常对删除了签名文件后的包进行重新签名。

思考的问题:为什么同样是签名后的debug版本的apk可以进行重新签名,而签名过的apk不能直接进行重新起签名?

你可能感兴趣的:(apk重新签名)