diff --git a/core/main.mk b/core/main.mk index 5767ef4912..6935efa5b7 100644 --- a/core/main.mk +++ b/core/main.mk @@ -1186,9 +1186,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 2276db24db..c7aac000ca 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 7ce59f1559..85e7bbc9fb 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 aee7959a87..a6dd4183c7 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 \