Add hwservicemanager vintf fragments to system_ext

PRODUCT_HIDL_ENABLED is used to force HIDL to be enabled for device bring-up when
partners have converted all of their AOSP HAL implementations to AIDL,
but still have some partner-owned interfaces that they are working on
converting from HIDL TO AIDL.

To allow for this behavior, we need to use a different manifest fragment
that doesn't have the `max-level="8"` entry on it so hwservicemanager
will see itself as registered.

We have to decouple the manifest fragment from the hwservicemanger binary
so we can choose which one to install based on the PRODUCT_HIDL_ENABLED
variable.

Test: PRODUCT_HIDL_ENABLED = true && adb shell lshal
Test: PRODUCT_HIDL_ENABLED = false && adb shell lshal
Bug: 332548148
Change-Id: I11332f1f09cede729729cc2ed66400769dff43c7
diff --git a/vintfdata/Android.mk b/vintfdata/Android.mk
index 0cd0d1f..ed8f506 100644
--- a/vintfdata/Android.mk
+++ b/vintfdata/Android.mk
@@ -28,6 +28,21 @@
 endif
 
 SYSTEM_EXT_MANIFEST_INPUT_FILES := $(LOCAL_PATH)/system_ext_manifest.default.xml
+
+ifeq ($(PRODUCT_HIDL_ENABLED),true)
+ifneq ($(filter hwservicemanager,$(PRODUCT_PACKAGES)),)
+SYSTEM_EXT_MANIFEST_INPUT_FILES += $(TOPDIR)system/hwservicemanager/hwservicemanager_no_max.xml
+else
+$(error If PRODUCT_HIDL_ENABLED is set, hwservicemanager must be added to PRODUCT_PACKAGES explicitly)
+endif
+else
+ifneq ($(filter hwservicemanager,$(PRODUCT_PACKAGES)),)
+SYSTEM_EXT_MANIFEST_INPUT_FILES += $(TOPDIR)system/hwservicemanager/hwservicemanager.xml
+else ifneq ($(filter hwservicemanager,$(PRODUCT_PACKAGES_SHIPPING_API_LEVEL_34)),)
+SYSTEM_EXT_MANIFEST_INPUT_FILES += $(TOPDIR)system/hwservicemanager/hwservicemanager.xml
+endif
+endif
+
 ifdef SYSTEM_EXT_MANIFEST_FILES
   SYSTEM_EXT_MANIFEST_INPUT_FILES += $(SYSTEM_EXT_MANIFEST_FILES)
 endif