美文网首页领域建模Android开发Android进阶之路
APP加固后运行崩溃 之 META-INF的坑(安卓)

APP加固后运行崩溃 之 META-INF的坑(安卓)

作者: CaptainJno | 来源:发表于2017-05-24 19:33 被阅读0次

    看官,请先解压你的原始APK,查看META-INF下是否有services文件夹,如果没有,那么咱两不是同一个问题,本文帮不到你,请移步!若有,请往下看!


    先说明两个概念: 

               1)、原始包(已签名,未加固的APK)

               2)、加固包(已加固,已签名的APK)

    现象:加固包,在某个界面崩溃。而,原始包,运行正常。

    原因:我的APP中第三方jar包用到java的SPI机制,正常签名时,会在META-INF文件夹下增加services文件夹及其内容(这些都是APP运行时要用到的)。而,加固过程(比如360加固),会删除META-INF整个文件夹。开发者对加固后的APK再次签名时,只重新新建了META-INF文件夹和其下的.RSA、.SF、.MF文件。因此,services文件夹就丢了。因此,APP功能就异常了。

    来张图可能更容易理解:


    解决办法:我和360沟通,得到的解决办法是,将原始包里META-INF的services拷贝到加固包(已签名)。这样,APP就可正常运行了。

    我后来验证了,这个问题除了360,其他加固(如爱加密、梆梆)也会有这个问题。解决办法都是一样的。


    希望这篇文章有帮到你!

    相关文章

      网友评论

        本文标题:APP加固后运行崩溃 之 META-INF的坑(安卓)

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