直接从 APK 运行嵌入式 DEX 代码

在运行 Android 10(API 级别 29)和更高版本的设备上,您现在可以告知平台直接从应用的 APK 文件中运行嵌入式 DEX 代码。如果攻击者设法篡改了设备本地编译的代码,此选项有助于防止此类攻击。

要启用此功能,请在应用清单文件的 <application> 元素中将 android:useEmbeddedDex 属性的值设为 true。您还必须编译一个 APK,其中要包含 ART 可以直接访问的未压缩 DEX 代码。将以下选项添加到 Gradle 或 Bazel 配置文件,以编译包含未压缩 DEX 代码的 APK:

Gradle

aaptOptions {
       noCompress 'dex'
    }
    

Bazel

    android_binary(
       ...
       nocompress_extensions = [“.dex”],
    )