Skip to content

Primer1889/aabResPlugin

Repository files navigation

aabResPlugin

Android Gradle 资源混淆打包插件,兼容 AGP 7+ / AGP 8+, 支持对 APKAAB(App Bundle)构建产物进行资源路径短名混淆。

快速使用

插件已发布至 Maven Central,坐标如下:

说明
Gradle 插件 ID io.github.primer1889
版本 1.0.2(当前最新版本)
Maven 坐标(实现) io.github.primer1889:resguard-plugin:1.0.2

1. settings.gradle.kts 必须在 pluginManagement.repositories 中包含 mavenCentral()。本插件发布到 Gradle Plugin Portal,若把 gradlePluginPortal() 放在 mavenCentral() 之前,可能导致解析失败;建议将 mavenCentral() 放在首位

pluginManagement {
    repositories {
        mavenCentral()
        gradlePluginPortal()
        google {
            content {
                includeGroupByRegex("com\\.android.*")
                includeGroupByRegex("com\\.google.*")
                includeGroupByRegex("androidx.*")
            }
        }
    }
}

2. app 模块 build.gradle.kts 应用插件并写明版本

plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
    id("io.github.primer1889") version "1.0.2"
}

//插件配置
resGuard {
    enable = true
    verbose = false
    whiteList = setOf(
        "AndroidManifest.xml",
        "resources.arsc",
        "resources.pb",
        "META-INF/**",
        "kotlin/**",
        "assets/**",
        "lib/**",
        "res/mipmap*/ic_launcher*",
        "res/drawable*/ic_launcher*"
    )
}

构建

⚠️ apk 混淆异常

需要在根目录 gradle.properties 禁用资源优化,生成的 APK 才会正常混淆

android.enableResourceOptimizations=false

# 构建 APK(resGuardReleaseApk)
app:resguard:resGuardReleaseApk

# 构建 AAB(resGuardReleaseBundle)
app:resguard:resGuardReleaseBundle

构建完成后,映射文件输出到:

app/build/outputs/resguard/<variantName>/apk-mapping.txt
app/build/outputs/resguard/<variantName>/bundle-mapping.txt

配置项说明

字段 类型 默认值 说明
enable Boolean true 是否启用资源混淆
whiteList Set<String> 内置启动图标默认项 资源混淆白名单
verbose Boolean false 是否打印日志信息

白名单通配符:

  • ? 匹配单个字符(不含 /
  • * 匹配任意数量字符(不含 /
  • ** 匹配任意层级目录

示例(APK / AAB 共用同一写法):

res/drawable*/ic_launcher*
res/*/mtrl_*

License

MIT

About

Android res 资源混淆插件,兼容 AGP 7+ / AGP 8+, 支持对 APK 与 AAB 构建产物进行资源路径短名混淆。

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages