Запуск встроенного DEX-кода непосредственно из APK

На устройствах с Android 10 (уровень API 29) и более поздними версиями можно настроить запуск встроенного DEX-кода непосредственно из APK-файла приложения. Это позволяет предотвратить атаку, если злоумышленнику удастся вмешаться в локально скомпилированный код на устройстве.

Если вы используете систему сборки Gradle, выполните следующие действия:

  • Задайте для атрибута android::useEmbeddedDex значение true в элементе <application> файла манифеста приложения.

  • В файле build.gradle.kts на уровне модуля (или в файле build.gradle, если вы используете Groovy) задайте для useLegacyPackaging значение false.

    Kotlin

      packagingOptions {
        dex {
          useLegacyPackaging = false
        }
      }
      

    Яркий

      packagingOptions {
        dex {
          useLegacyPackaging false
        }
      }
      

Если вы используете систему сборки Bazel, то для включения этой функции задайте атрибуту android:useEmbeddedDex значение true в элементе <application> файла манифеста приложения и оставьте DEX-файлы несжатыми:

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