Uruchamianie umieszczonego kodu DEX bezpośrednio z pliku APK

Na urządzeniach z Androidem 10 (poziom interfejsu API 29) lub nowszym możesz nakazać platformie uruchamianie osadzonego kodu DEX bezpośrednio z pliku APK aplikacji. Ta opcja może pomóc zapobiec atakowi, jeśli atakującemu uda się zmodyfikować lokalnie skompilowany kod na urządzeniu.

Jeśli używasz systemu kompilacji Gradle, aby włączyć tę funkcję, wykonaj te czynności:

  • Ustaw atrybut android::useEmbeddedDex na wartość true w elemencie <application> w pliku manifestu aplikacji.

  • W pliku build.gradle.kts na poziomie modułu ustaw wartość useLegacyPackaging na false (jeśli używasz Groovy, w pliku build.gradle).

    Kotlin

      packagingOptions {
        dex {
          useLegacyPackaging = false
        }
      }
      

    Groovy

      packagingOptions {
        dex {
          useLegacyPackaging false
        }
      }
      

Jeśli używasz systemu kompilacji Bazel, aby włączyć tę funkcję, ustaw atrybut android:useEmbeddedDex na true w elemencie <application> pliku manifestu aplikacji i pozostaw pliki DEX nieskompresowane:

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