Android 10(API レベル 29)以降を搭載するデバイスでは、埋め込み DEX コードをアプリの APK ファイルから直接実行するようにプラットフォームに指示できます。この機能は、攻撃者がデバイス上のローカル コンパイル コードを改ざんしていた場合に、攻撃を防ぐのに役立ちます。
この機能を有効にするには、アプリのマニフェスト ファイルで <application>
要素の android:useEmbeddedDex
属性の値を true
に設定します。また、ART が直接アクセスできる非圧縮 DEX コードを含むように APK をビルドする必要があります。Gradle または Bazel の構成ファイルに次の設定を追加して、非圧縮 DEX コードを含む APK をビルドしてください。Gradle の場合、この設定は Android Gradle プラグイン 4.2 以降でのみ必要です。
KTS / Gradle
Groovy
packagingOptions { dex { useLegacyPackaging false } }
Kotlin
packagingOptions { dex { useLegacyPackaging = false } }
Bazel
android_binary( ... nocompress_extensions = [“.dex”], )