From d73b94c097fdf4c6d7294ced374b8580ab819fe9 Mon Sep 17 00:00:00 2001 From: Logan Chien Date: Fri, 4 May 2018 19:33:17 +0800 Subject: [PATCH] Build a single GSI for O-MR1-VENDOR and Master-VENDOR The objective of this commit is to support these 3 combinations: 1. Master-GSI + Master-VENDOR (w/ BOARD_VNDK_VERSION) 2. Master-GSI + Master-VENDOR (w/o BOARD_VNDK_VERSION for upgrading devices) 3. Master-GSI + O-MR1-VENDOR (w/ BOARD_VNDK_VERSION) This commit defines a new property `ro.vndk.lite` to indicate the status of BOARD_VNDK_VERSION run-time enforcement. Now, all devices should have `ro.vndk.version` so that `libhidlbase.so`, `libRSCpuRef.so`, and `libnativeloader.so` can find the versioned VNDK directory. Bug: 78605339 Test: aosp_sailfish Master-SYSTEM + Master-VENDOR boots Test: aosp_sailfish Master-GSI + Master-VENDOR boots Test: aosp_walleye Master-SYSTEM + Master-VENDOR boots Test: aosp_walleye Master-GSI + Master-VENDOR boots Test: aosp_walleye Master-GSI + O-MR1-VENDOR boots Change-Id: Iee9553b3ca9e0798a873e655d87d10cdc23d4b1c --- CleanSpec.mk | 3 +++ core/Makefile | 6 +++++- target/product/treble_common.mk | 11 +++++------ target/product/vndk/init.gsi.rc | 4 ++-- target/product/vndk/init.noenforce.rc | 5 ----- target/product/vndk/init.vndk-27.rc | 3 +++ 6 files changed, 18 insertions(+), 14 deletions(-) delete mode 100644 target/product/vndk/init.noenforce.rc create mode 100644 target/product/vndk/init.vndk-27.rc diff --git a/CleanSpec.mk b/CleanSpec.mk index b58c2e6aed..056892317a 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -480,6 +480,9 @@ $(call add-clean-step, rm -rf $(TARGET_COMMON_OUT_ROOT)/obj_asan/JAVA_LIBRARIES/ $(call add-clean-step, rm -rf $(TARGET_COMMON_OUT_ROOT)/obj_asan/APPS/*_intermediates/java-source-list) $(call add-clean-step, rm -rf $(TARGET_COMMON_OUT_ROOT)/obj_asan/JAVA_LIBRARIES/*_intermediates/java-source-list) +# Remove stale init.noenforce.rc +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/init/gsi/init.noenforce.rc) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/Makefile b/core/Makefile index 77e3522f9f..a6b67addb8 100644 --- a/core/Makefile +++ b/core/Makefile @@ -125,8 +125,12 @@ ifdef BOARD_VNDK_VERSION else FINAL_VENDOR_DEFAULT_PROPERTIES := ro.vndk.version=$(BOARD_VNDK_VERSION) endif + ifdef BOARD_VNDK_RUNTIME_DISABLE + FINAL_VENDOR_DEFAULT_PROPERTIES += ro.vndk.lite=true + endif else - FINAL_VENDOR_DEFAULT_PROPERTIES := + FINAL_VENDOR_DEFAULT_PROPERTIES := ro.vndk.version=$(PLATFORM_VNDK_VERSION) + FINAL_VENDOR_DEFAULT_PROPERTIES += ro.vndk.lite=true endif FINAL_VENDOR_DEFAULT_PROPERTIES += \ $(call collapse-pairs, $(PRODUCT_DEFAULT_PROPERTY_OVERRIDES)) diff --git a/target/product/treble_common.mk b/target/product/treble_common.mk index 1c557f0379..6cf66affa0 100644 --- a/target/product/treble_common.mk +++ b/target/product/treble_common.mk @@ -51,18 +51,17 @@ PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \ device/generic/common/nfc/libnfc-nci.conf:system/etc/libnfc-nci.conf -# Support for the devices with no VNDK enforcing +# Support for the O-MR1 devices PRODUCT_COPY_FILES += \ build/make/target/product/vndk/init.gsi.rc:system/etc/init/init.gsi.rc \ - build/make/target/product/vndk/init.noenforce.rc:system/etc/init/gsi/init.noenforce.rc + build/make/target/product/vndk/init.vndk-27.rc:system/etc/init/gsi/init.vndk-27.rc # Name space configuration file for non-enforcing VNDK PRODUCT_PACKAGES += \ - ld.config.noenforce.txt + ld.config.vndk_lite.txt -# Set current VNDK version for GSI -PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ - ro.gsi.vndk.version=$(PLATFORM_VNDK_VERSION) +# Support addtional O-MR1 vendor interface +PRODUCT_EXTRA_VNDK_VERSIONS := 27 # TODO(b/78308559): includes vr_hwc into GSI before vr_hwc move to vendor PRODUCT_PACKAGES += \ diff --git a/target/product/vndk/init.gsi.rc b/target/product/vndk/init.gsi.rc index 3e6b1fb2a6..0150b1a127 100644 --- a/target/product/vndk/init.gsi.rc +++ b/target/product/vndk/init.gsi.rc @@ -1,2 +1,2 @@ -# If ro.vndk.version is not defined, import init.noenforce.rc -import /system/etc/init/gsi/init.${ro.vndk.version:-noenforce}.rc +# If ro.vndk.version is not defined, import init.vndk-27.rc. +import /system/etc/init/gsi/init.vndk-${ro.vndk.version:-27}.rc diff --git a/target/product/vndk/init.noenforce.rc b/target/product/vndk/init.noenforce.rc deleted file mode 100644 index 6cf1df7ad7..0000000000 --- a/target/product/vndk/init.noenforce.rc +++ /dev/null @@ -1,5 +0,0 @@ -on early-init - # If ro.vndk.version is not set, use ld.config.nonenforce.txt - export LD_CONFIG_FILE /system/etc/ld.config.noenforce.txt - # To use current VNDK libs, set ro.vndk.version to system vndk version - setprop ro.vndk.version ${ro.gsi.vndk.version} diff --git a/target/product/vndk/init.vndk-27.rc b/target/product/vndk/init.vndk-27.rc new file mode 100644 index 0000000000..d464a2f396 --- /dev/null +++ b/target/product/vndk/init.vndk-27.rc @@ -0,0 +1,3 @@ +on early-init + # Set ro.vndk.version to 27 so that O-MR1-VENDOR can run latest GSI. + setprop ro.vndk.version 27