美文网首页
稳定混淆App

稳定混淆App

作者: DonaldDu | 来源:发表于2021-03-29 22:54 被阅读0次

以下都是Debug模式打包的,所以能做到稳定。但是Release时,不管怎样都无法做到稳定!!!

今天混淆App代码发现一个奇怪的问题:安卓代码混淆并不稳定!
在不使用mapping文件时,打出第一个包,获得一个mapping文件M1,和APK1,其唯一Dex文件Md5为H1。
首次使用M1打包,生成的APK2中的唯一Dex文件Md5为H2。
再次使用M1打包,生成的APK3中的唯一Dex文件Md5为H3。
理论上来说应该是:H1=H2=H3,实际让是H1!=H2,H2=H3
也就是说:不使用mapping文件打包结果就不稳定。

那么怎么解决这个问题呢?
很简单,先打个包,得到APK0和mapping文件M0,不要发布。接着用M0打包,此时得到的就是稳定混淆APK1和M1。第二次发布时,需要用M1打包。

有什么用?
使用Qigsaw时,如果用QigsawBundle打包,可以保证输出Split的稳定性。
举个例子:只修改Base的版本号(versionName&versionCode),其它都不动,然后打包。所有Split的ApkMd5值都是固定的,仅Base包变了。

ApkMd5:"AndroidManifest.xml"去掉版本号,去掉"META-INF/BNDLTOOL.RSA"、 "META-INF/BNDLTOOL.SF"、"META-INF/MANIFEST.MF",所有文件排序,再计算APK的MD5。

最后

如果本文帮助到了你,也帮我点个赞吧!

如果你愿意,还可以赞赏一杯咖啡或一瓶水,非常感觉你的慷慨!

相关文章

网友评论

      本文标题:稳定混淆App

      本文链接:https://www.haomeiwen.com/subject/fojihltx.html