<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          AabResGuardAndroid aab 文件資源混淆工具

          聯(lián)合創(chuàng)作 · 2023-10-01 22:53

          AabResGuard 是一個針對 Android app bundle aab 文件的資源混淆工具,由字節(jié)跳動抖音 Android 團(tuán)隊(duì)開源。

          資源混淆可以避免 Android 應(yīng)用被輕松地惡意逆向分析破解,還可以減少 apk 文件的體積,但相應(yīng)地也會降低代碼的可讀性。

          特性

          • 資源去重: 對重復(fù)資源文件進(jìn)行合并,縮減包體積。
          • 文件過濾: 支持對 bundle 包中的文件進(jìn)行過濾,目前只支持 MATE-INFO/lib/ 路徑下的過濾。
          • 白名單: 白名單中的資源,名稱不予混淆。
          • 增量混淆: 輸入 mapping 文件,支持增量混淆。
          • 文案刪除: 輸入按行分割的字符串文件,移除文案及翻譯。

          快速開始

          • 命令行工具: 支持命令行一鍵輸入輸出。
          • Gradle plugin: 支持 gradle plugin,使用原始打包命令執(zhí)行混淆。

          Gradle plugin

           build.gradle(root project) 中進(jìn)行配置

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

           build.gradle(application) 中配置

          apply plugin: "com.bytedance.android.aabResGuard"
          aabResGuard {
              mappingFile = file("mapping.txt").toPath() // 用于增量混淆的 mapping 文件
              whiteList = [ // 白名單規(guī)則
                  "*.R.raw.*",
                  "*.R.drawable.icon"
              ]
              obfuscatedBundleFileName = "duplicated-app.aab" // 混淆后的文件名稱,必須以 `.aab` 結(jié)尾
              mergeDuplicatedRes = true // 是否允許去除重復(fù)資源
              enableFilterFiles = true // 是否允許過濾文件
              filterList = [ // 文件過濾規(guī)則
                  "*/arm64-v8a/*",
                  "META-INF/*"
              ]
              enableFilterStrings = false // 過濾文案
              unusedStringPath = file("unused.txt").toPath() // 過濾文案列表路徑 默認(rèn)在mapping同目錄查找
              languageWhiteList = ["en", "zh"] // 保留en,en-xx,zh,zh-xx等語言,其余均刪除
          }

          aabResGuard plugin 侵入了 bundle 打包流程,可以直接執(zhí)行原始打包命令進(jìn)行混淆。

          ./gradlew clean :app:bundleDebug --stacktrace

          通過 gradle 獲取混淆后的 bundle 文件路徑

          def aabResGuardPlugin = project.tasks.getByName("aabresguard${VARIANT_NAME}")
          Path bundlePath = aabResGuardPlugin.getObfuscatedBundlePath()
          
          瀏覽 18
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产乱伦大杂烩 | 激情色播| 国产三级片视频 | 国产特级黄色片 | 国产操逼www |