diff --git a/core/main.mk b/core/main.mk index 56c193ba1..25cc80618 100644 --- a/core/main.mk +++ b/core/main.mk @@ -1183,9 +1183,10 @@ APEX_MODULE_LIBS += \ # still may create these libraries in /system (b/129006418). DISABLE_APEX_LIBS_ABSENCE_CHECK ?= -# Allow APEX libraries under /system/apex, which happens when APEX flattening -# is enabled. -APEX_LIBS_ABSENCE_CHECK_EXCLUDE := apex +# Allow APEX libraries under: +# /system/apex, which happens when APEX flattening is enabled. +# /system/system_ext, which happens with GSI +APEX_LIBS_ABSENCE_CHECK_EXCLUDE := apex system_ext # Bionic should not be in /system, except for the bootstrap instance. APEX_LIBS_ABSENCE_CHECK_EXCLUDE += lib/bootstrap lib64/bootstrap diff --git a/core/product.mk b/core/product.mk index 2276db24d..c7aac000c 100644 --- a/core/product.mk +++ b/core/product.mk @@ -381,6 +381,8 @@ _product_single_value_vars += PRODUCT_VIRTUAL_AB_OTA_RETROFIT # If set, Java module in product partition cannot use hidden APIs. _product_single_value_vars += PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE +_product_single_value_vars += PRODUCT_INSTALL_EXTRA_FLATTENED_APEXES + .KATI_READONLY := _product_single_value_vars _product_list_vars _product_var_list :=$= $(_product_single_value_vars) $(_product_list_vars) diff --git a/core/soong_config.mk b/core/soong_config.mk index 7ce59f155..85e7bbc9f 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -199,6 +199,8 @@ $(call end_json_map) $(call add_json_bool, EnforceProductPartitionInterface, $(PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE)) +$(call add_json_bool, InstallExtraFlattenedApexes, $(PRODUCT_INSTALL_EXTRA_FLATTENED_APEXES)) + $(call json_end) $(file >$(SOONG_VARIABLES).tmp,$(json_contents)) diff --git a/target/product/gsi_release.mk b/target/product/gsi_release.mk index aee7959a8..a6dd4183c 100644 --- a/target/product/gsi_release.mk +++ b/target/product/gsi_release.mk @@ -38,6 +38,12 @@ PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true # Needed by Pi newly launched device to pass VtsTrebleSysProp on GSI PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true +# GSI targets should install "unflattened" APEXes in /system +TARGET_FLATTEN_APEX := false + +# GSI targets should install "flattened" APEXes in /system_ext as well +PRODUCT_INSTALL_EXTRA_FLATTENED_APEXES := true + # GSI specific tasks on boot PRODUCT_PACKAGES += \ gsi_skip_mount.cfg \ diff --git a/target/product/mainline_system.mk b/target/product/mainline_system.mk index 5a5c17d35..20bdc9f5b 100644 --- a/target/product/mainline_system.mk +++ b/target/product/mainline_system.mk @@ -21,6 +21,9 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/languages_default.mk) # Add adb keys to debuggable AOSP builds (if they exist) $(call inherit-product-if-exists, vendor/google/security/adb/vendor_key.mk) +# Enable updating of APEXes +$(call inherit-product, $(SRC_TARGET_DIR)/product/updatable_apex.mk) + # Shared java libs PRODUCT_PACKAGES += \ com.android.nfc_extras \