اجرای مستقیم کد DEX جاسازی‌شده از APK

در دستگاه‌هایی که Android 10 (سطح میانای برنامه‌سازی کاربردی ۲۹) و بالاتر را اجرا می‌کنند، می‌توانید به پلاتفرم بگویید کد DEX جاسازی‌شده را مستقیماً از فایل APK برنامه‌تان اجرا کند. این گزینه می‌تواند به جلوگیری از حمله کمک کند، اگر مهاجم بتواند کد کامپایل‌شده محلی را در دستگاه دستکاری کند.

اگر از سیستم ساخت Gradle استفاده می‌کنید، برای فعال کردن این ویژگی، کارهای زیر را انجام دهید:

  • مشخصه android::useEmbeddedDex را روی true در عنصر <application> فایل مانیفست برنامه‌تان تنظیم کنید.

  • useLegacyPackaging را روی false در فایل build.gradle.kts در سطح ماژول (فایل build.gradle اگر از Groovy استفاده می‌کنید) تنظیم کنید.

    کاتلین

      packagingOptions {
        dex {
          useLegacyPackaging = false
        }
      }
      

    شیک

      packagingOptions {
        dex {
          useLegacyPackaging false
        }
      }
      

اگر از سیستم ساخت Bazel استفاده می‌کنید، برای فعال کردن این ویژگی، مشخصه android:useEmbeddedDex را در عنصر <application> فایل مانیفست برنامه‌تان روی true تنظیم کنید و فایل‌های DEX را غیرفشرده رها کنید:

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