Home

Awesome

AabResGuard

<h1 align="center"> <img src="wiki/images/logo.png" height="220" width="376"/> <p align="center" style="font-size: 0.5em">A tool used to obfuscate aab resources</p> </h1>

Download License Bundletool

English | 简体中文

Powered by bytedance douyin android team.

Features

Data of size savings

AabResGuard is a resource obfuscation tool powered by the douyin Android team. It has been launched at the end of July 2018 in several overseas products, such as Tiktok, Musically, Vigo, etc. There is no feedback on related resource issues. For more data details, please go to Data of size savings.

Quick start

#Gradle plugin

Configured in build.gradle(root project)

buildscript {
  repositories {
    mavenCentral()
    jcenter()
    google()
   }
  dependencies {
    classpath "com.bytedance.android:aabresguard-plugin:0.1.0"
  }
}

Configured in build.gradle(application)

apply plugin: "com.bytedance.android.aabResGuard"
aabResGuard {
    mappingFile = file("mapping.txt").toPath() // Mapping file used for incremental obfuscation
    whiteList = [ // White list rules
        "*.R.raw.*",
        "*.R.drawable.icon"
    ]
    obfuscatedBundleFileName = "duplicated-app.aab" // Obfuscated file name, must end with '.aab'
    mergeDuplicatedRes = true // Whether to allow the merge of duplicate resources
    enableFilterFiles = true // Whether to allow filter files
    filterList = [ // file filter rules
        "*/arm64-v8a/*",
        "META-INF/*"
    ]
    
    enableFilterStrings = false // switch of filter strings
    unusedStringPath = file("unused.txt").toPath() // strings will be filtered in this file
    languageWhiteList = ["en", "zh"] // keep en,en-xx,zh,zh-xx etc. remove others.
}

The aabResGuard plugin intrudes the bundle packaging process and can be obfuscated by executing the original packaging commands.

./gradlew clean :app:bundleDebug --stacktrace

Get the obfuscated bundle file path by gradle .

def aabResGuardPlugin = project.tasks.getByName("aabresguard${VARIANT_NAME}")
Path bundlePath = aabResGuardPlugin.getObfuscatedBundlePath()

#Command line

AabResGuard provides a jar file that can be executed directly from the command line. More details, please go to Command Line.

#Output

After the packaging is completed, the obfuscated file and the log files will be output. More details, please go to Output File.

Change log

Version change log. More details, please go to Change Log .

Contribute

Read the details to learn how to participate in the improvement AabResGuard.

#Contributor