直接從 APK 執行嵌入式 DEX 程式碼

在搭載 Android 10 (API 級別 29) 以上版本的裝置上,您可以指示平台直接從應用程式的 APK 檔案執行嵌入式 DEX 程式碼。如果攻擊者利用裝置上的本機編譯程式碼執行竄改攻擊,這種做法可協助防範。

如果您使用的是 Gradle 建構系統,請按照下列步驟啟用這項功能:

  • 在應用程式資訊清單檔案的 <application> 元素中,將 android::useEmbeddedDex 屬性設為 true

  • 將模組層級 build.gradle.kts 檔案 (若使用 Groovy 則為 build.gradle 檔案) 中的 useLegacyPackaging 設為 false

    Kotlin

      packagingOptions {
        dex {
          useLegacyPackaging = false
        }
      }
      

    Groovy

      packagingOptions {
        dex {
          useLegacyPackaging false
        }
      }
      

若使用的是 Bazel 建構系統,如要啟用這項功能,請在應用程式資訊清單檔案的 <application> 元素中將 android:useEmbeddedDex 屬性設為 true,並將 DEX 檔案保持在未壓縮狀態:

android_binary(
   ...
   nocompress_extensions = [".dex"],
)