微信资源混淆工具打包

最近研究了下反编译 ,看到人家apk的资源文件名字都是类似于abcd这样的字母,很好奇是怎么实现的,所以自己上网查了下,利用微信资源混淆工具可以实现,废话不多说,直接上代码.

1、工程project 的build.gradle下添加插件依赖

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        //混合资源打包
        classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.1.14'

    }
}

2、app的build添加插件依赖

apply plugin: 'AndResGuard'
andResGuard {
    // mappingFile = file("./resource_mapping.txt")
    mappingFile = null
    // 当你使用v2签名的时候,7zip压缩是无法生效的。
    use7zip = true
    useSign = true
    // 打开这个开关,会keep住所有资源的原始路径,只混淆资源的名字
    keepRoot = false
    //白名单配置 UM必须配置白名单 否则会提示找不到资源文件
    whiteList = [
            //for your icon
            "R.drawable.icon",
            //for fabric
            "R.string.com.crashlytics.*",
            //for umeng update
            "R.string.umeng*",
            "R.string.UM*",
            "R.string.tb_*",
            "R.layout.umeng*",
            "R.layout.socialize_share_menu_item",
            "R.layout.tb_*",
            "R.drawable.umeng*",
            "R.drawable.tb_*",
            "R.anim.umeng*",
            "R.color.umeng*",
            "R.color.tb_*",
            "R.style.*UM*",
            "R.style.umeng*",
            "R.id.umeng*",
            "R.id.socialize_image_view",
            "R.id.socialize_text_view",
            //umeng share for sina
            "R.drawable.sina*"
    ]
    compressFilePattern = [
            "*.png",
            "*.jpg",
            "*.jpeg",
            "*.gif",
            "resources.arsc"
    ]
    sevenzip {
        artifact = 'com.tencent.mm:SevenZip:1.2.3'
        //path = "/usr/local/bin/7za"
    }
}

3、找到andresguard插件目录
这里写图片描述

这里写图片描述

这里写图片描述

4、由于没有配置签名文件 只能debug

这里写图片描述

下面展示的就是混淆后的包 app-release_signed_7zip_aligned.apk 这个是最小的 一般上线的这个就可以了

5、然后反编译看一下效果

这里写图片描述

debug下的layout文件

这里写图片描述

混淆后的

这里写图片描述

6、apk对比效果

这里写图片描述

这只是建立了一个空的工程就小了这些 可想工程大的时候资源文件的压缩差不多能到2M 甚至更多

这里写图片描述

这里写图片描述

具体源码与使用方法详细在github中:

https://github.com/shwenzhang/AndResGuard

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值