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
Merged-In: Iee9553b3ca9e0798a873e655d87d10cdc23d4b1c
(cherry picked from commit d73b94c097)
This commit is contained in:
Logan Chien 2018-05-04 19:33:17 +08:00
parent 625ad4a0c8
commit 86b52aec24
6 changed files with 18 additions and 14 deletions

View File

@ -476,6 +476,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
# ************************************************

View File

@ -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))

View File

@ -76,15 +76,14 @@ 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

View File

@ -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

View File

@ -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}

View File

@ -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