zoukankan      html  css  js  c++  java
  • Android项目增加混淆

     主要介绍向Android项目中添加混淆功能

    增加混淆的原因

    1. 提高安全性,增加反编译的难度
    2. 减少APK的文件大小

    实践

    混淆的配置

    一般情况下,app module 的 build.gradle 文件默认会有如下结构:

    android {
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

    因为开启混淆会使编译时间变长,所以debug模式下不应该开启。我们需要做的是: 

    1. releaseminifyEnabled的值改为true,打开混淆;
    2. 添加自定义的混淆规则

    修改后文件内容如下:

    buildTypes {
        release {
            minifyEnabled true //开启混淆
            proguardFiles fileTree('prog').asList().toArray()
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    } 

    第二行是表示release下

    第三行表示开启混淆

    第四行表示文件夹prog下所有的文件都作为自定义混淆的配置文件加载;

    这个是学习到的新语法。通过fileTree('prog').asList().toArray() 返回文件夹下所有的文件数组。

    第五行表示加载默认的文件proguard-android.txt 和 proguard-rules.pro。

    其中getDefaultProguardFile('proguard-android.txt') 表示的是位于 SDK 的 tools/proguard/ 文件夹中的 proguard-android.txt,由Google官方提供的的默认的混淆规则。

    注意:SDK中提供的默认的混淆配置文件,里面包含了常见的混淆屏蔽规则,所以在添加自定义规则的时候,先去默认的文件中查看是否已经存在,避免重复。

    在向proguard-rules.pro文件中添加混淆规则的时候,不要与SDK提供的proguard-android.txt中的规则重复。其实proguard-android.txt里面已经包含绝大部分的常见的规则。

    参考 

    • /Users/XXX/Library/Android/sdk/tools/proguard/proguard-android.txt
  • 相关阅读:
    腾讯云Serverless来部署Hexo博客
    通用导入
    Winform窗体圆角完美解决方案
    kali 解决签名失效问题
    CVE-2021-3156 漏洞复现 附带 提权exp
    kali在安装时遇到软件包安装不了的问题解决
    Asmgcs高级地面学习笔记
    继续教育 多开视频加速
    python直接打印列表
    window里GDAL读取中文Personal Geodatabase
  • 原文地址:https://www.cnblogs.com/zhou-guobao/p/proguard-android.html
Copyright © 2011-2022 走看看