diff options
author | Devin Moore <devinmoore@google.com> | 2024-04-05 17:02:16 +0000 |
---|---|---|
committer | Devin Moore <devinmoore@google.com> | 2024-04-05 22:52:15 +0000 |
commit | 4c25a9f53fa83db26fbb58dc4b2d45812b815a10 (patch) | |
tree | 6dbb433bf1db01df678fe7e2c2ef90feeed1bc73 | |
parent | 791caf183a5cd80e0b3140581708e8cc458b3e32 (diff) | |
download | libhidl-4c25a9f53fa83db26fbb58dc4b2d45812b815a10.tar.gz |
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
-rw-r--r-- | vintfdata/Android.mk | 15 |
1 files changed, 15 insertions, 0 deletions
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 @@ ifdef DEVICE_FRAMEWORK_MANIFEST_FILE 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 |