-
如果逆向修改了APK包中的文件,那么被修改的文件的摘要和MANIFEST.MF中的信息则不对应
-
如果修改了某个文件,则必须修改MANIFEST.MF中对应的摘要值,必须保证对应关系
-
要修改MANIFEST.MF的摘要值,会产生新的MANIFEST.MF,必然和CERT.SF中的记录不匹配
-
CERT.SF中记录了MANIFEST.MF整个文件的编码和其所有内容的编码值,逆向时必须修改CERT.SF
-
修改了CERT.SF后,安装apk时CERT.RSA文件中的内容和修改后的CERT.SF会不匹配,出现安装失败
-
逆向者只有拿到了开发者的秘钥才能完全创造一个相同的apk
优化建议:通过分析得出,除了RSA没有缩减机会外,其余两个文件都可以通过混淆资源名称的方式进行压缩。
优化Res目录
-
打包时剔除无用资源:
shrinkResources true
shrinkResources意思是收缩资源,将它设置为true,每次打包时就会自动排除无用的资源,不仅作用于图片,还会清理无用的layout资源等,但是只有配合开启混淆才能生效。 -
删除无用的语言:大部分app其实不需要支持几十种语言,国内应用,可以只支持中文
defaultConfig {
…
resConfig “zh”
}
这样配置后,打包时会排除私有项目、Android suppo