diff --git a/core/main.mk b/core/main.mk index 367b5bf866..1fccc60331 100644 --- a/core/main.mk +++ b/core/main.mk @@ -1271,6 +1271,11 @@ define product-installed-modules $(if $(filter asan,$(tags_to_install)),$(call get-product-var,$(1),PRODUCT_PACKAGES_DEBUG_ASAN)) \ $(if $(filter java_coverage,$(tags_to_install)),$(call get-product-var,$(1),PRODUCT_PACKAGES_DEBUG_JAVA_COVERAGE)) \ $(if $(filter arm64,$(TARGET_ARCH) $(TARGET_2ND_ARCH)),$(call get-product-var,$(1),PRODUCT_PACKAGES_ARM64)) \ + $(if $(PRODUCT_SHIPPING_API_LEVEL), \ + $(if $(call math_gt_or_eq,29,$(PRODUCT_SHIPPING_API_LEVEL)),$(call get-product-var,$(1),PRODUCT_PACKAGES_SHIPPING_API_LEVEL_29)) \ + $(if $(call math_gt_or_eq,33,$(PRODUCT_SHIPPING_API_LEVEL)),$(call get-product-var,$(1),PRODUCT_PACKAGES_SHIPPING_API_LEVEL_33)) \ + $(if $(call math_gt_or_eq,34,$(PRODUCT_SHIPPING_API_LEVEL)),$(call get-product-var,$(1),PRODUCT_PACKAGES_SHIPPING_API_LEVEL_34)) \ + ) \ $(call auto-included-modules) \ ) \ $(eval ### Filter out the overridden packages and executables before doing expansion) \ diff --git a/core/product_config.mk b/core/product_config.mk index 3ee965458f..7c55d009b4 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -500,18 +500,6 @@ ifeq ($(PRODUCT_SET_DEBUGFS_RESTRICTIONS),) endif endif -ifdef PRODUCT_SHIPPING_API_LEVEL - ifneq (,$(call math_gt_or_eq,29,$(PRODUCT_SHIPPING_API_LEVEL))) - PRODUCT_PACKAGES += $(PRODUCT_PACKAGES_SHIPPING_API_LEVEL_29) - endif - ifneq (,$(call math_gt_or_eq,33,$(PRODUCT_SHIPPING_API_LEVEL))) - PRODUCT_PACKAGES += $(PRODUCT_PACKAGES_SHIPPING_API_LEVEL_33) - endif - ifneq (,$(call math_gt_or_eq,34,$(PRODUCT_SHIPPING_API_LEVEL))) - PRODUCT_PACKAGES += $(PRODUCT_PACKAGES_SHIPPING_API_LEVEL_34) - endif -endif - # If build command defines OVERRIDE_PRODUCT_EXTRA_VNDK_VERSIONS, # override PRODUCT_EXTRA_VNDK_VERSIONS with it. ifdef OVERRIDE_PRODUCT_EXTRA_VNDK_VERSIONS diff --git a/target/product/base_system.mk b/target/product/base_system.mk index 5331224816..f31749b008 100644 --- a/target/product/base_system.mk +++ b/target/product/base_system.mk @@ -310,20 +310,17 @@ PRODUCT_PACKAGES += \ system_manifest.xml \ system_compatibility_matrix.xml \ -HIDL_SUPPORT_SERVICES := \ - hwservicemanager \ - android.hidl.allocator@1.0-service \ - android.hidl.memory@1.0-impl \ - -# TODO(b/299166571) Remove this after the artifact path requirements checker picks up -# this library correctly with the *SHIPPING_API_LEVEL_34 variable -PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ - $(TARGET_COPY_OUT_SYSTEM)/lib/hw/android.hidl.memory@1.0-impl.so \ - $(TARGET_COPY_OUT_SYSTEM)/lib64/hw/android.hidl.memory@1.0-impl.so \ - # Base modules when shipping api level is less than or equal to 34 PRODUCT_PACKAGES_SHIPPING_API_LEVEL_34 += \ - $(HIDL_SUPPORT_SERVICES) \ + android.hidl.memory@1.0-impl \ + +# hwservicemanager is now installed on system_ext, but apexes might be using +# old libraries that are expecting it to be installed on system. This allows +# those apexes to continue working. The symlink can be removed once we are sure +# there are no devices using hwservicemanager (when Android V launching devices +# are no longer supported for dessert upgrades). +PRODUCT_PACKAGES += \ + hwservicemanager_compat_symlink_module \ PRODUCT_PACKAGES_ARM64 := libclang_rt.hwasan \ libclang_rt.hwasan.bootstrap \ diff --git a/target/product/base_system_ext.mk b/target/product/base_system_ext.mk index 852d7ca8f1..d8c186323c 100644 --- a/target/product/base_system_ext.mk +++ b/target/product/base_system_ext.mk @@ -22,3 +22,8 @@ PRODUCT_PACKAGES += \ passwd_system_ext \ selinux_policy_system_ext \ system_ext_manifest.xml \ + +# Base modules when shipping api level is less than or equal to 34 +PRODUCT_PACKAGES_SHIPPING_API_LEVEL_34 += \ + hwservicemanager \ + android.hidl.allocator@1.0-service \ diff --git a/target/product/generic_system.mk b/target/product/generic_system.mk index 6d40436d84..38efde4329 100644 --- a/target/product/generic_system.mk +++ b/target/product/generic_system.mk @@ -128,10 +128,6 @@ PRODUCT_SYSTEM_DEVICE := generic _base_mk_allowed_list := -# TODO(b/299166571) Remove this after the artifact path requirements checker picks up -# hwservicemanager correctly. -PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += $(TARGET_COPY_OUT_SYSTEM)/bin/hwservicemanager - _my_allowed_list := $(_base_mk_allowed_list) # For mainline, system.img should be mounted at /, so we include ROOT here.