diff --git a/target/product/default_art_config.mk b/target/product/default_art_config.mk index bb17dda3c..feb2eb71d 100644 --- a/target/product/default_art_config.mk +++ b/target/product/default_art_config.mk @@ -18,16 +18,37 @@ ifeq ($(ART_APEX_JARS),) $(error ART_APEX_JARS is empty; cannot initialize PRODUCT_BOOT_JARS variable) endif -# The order matters for runtime class lookup performance. +# Order of the jars on BOOTCLASSPATH follows: +# 1. ART APEX jars +# 2. System jars +# 3. System_ext jars +# 4. Non-updatable APEX jars +# 5. Updatable APEX jars +# +# ART APEX jars (1) are defined in ART_APEX_JARS. System, system_ext, and non updatable boot jars +# are defined below in PRODUCT_BOOT_JARS. All updatable APEX boot jars are part of +# PRODUCT_UPDATABLE_BOOT_JARS. +# +# The actual runtime ordering matching above is determined by derive_classpath service at runtime. +# See packages/modules/SdkExtensions/README.md for more details. + +# The order of PRODUCT_BOOT_JARS matters for runtime class lookup performance. PRODUCT_BOOT_JARS := \ - $(ART_APEX_JARS) \ + $(ART_APEX_JARS) + +# /system and /system_ext boot jars. +PRODUCT_BOOT_JARS += \ framework-minus-apex \ ext \ - com.android.i18n:core-icu4j \ telephony-common \ voip-common \ ims-common +# Non-updatable APEX jars. Keep the list sorted. +PRODUCT_BOOT_JARS += \ + com.android.i18n:core-icu4j + +# Updatable APEX jars. Keep the list sorted. PRODUCT_UPDATABLE_BOOT_JARS := \ com.android.conscrypt:conscrypt \ com.android.media:updatable-media \