diff --git a/core/board_config.mk b/core/board_config.mk index ac9a34f96d..8c23f93851 100644 --- a/core/board_config.mk +++ b/core/board_config.mk @@ -965,12 +965,15 @@ define check_vndk_version $(if $(wildcard $(vndk_path)/*/Android.bp),,$(error VNDK version $(1) not found)) endef +ifeq ($(KEEP_VNDK),true) ifeq ($(BOARD_VNDK_VERSION),$(PLATFORM_VNDK_VERSION)) $(error BOARD_VNDK_VERSION is equal to PLATFORM_VNDK_VERSION; use BOARD_VNDK_VERSION := current) endif ifneq ($(BOARD_VNDK_VERSION),current) $(call check_vndk_version,$(BOARD_VNDK_VERSION)) endif +endif + TARGET_VENDOR_TEST_SUFFIX := /vendor ifeq (,$(TARGET_BUILD_UNBUNDLED)) diff --git a/core/config.mk b/core/config.mk index fc1140521b..22519c91eb 100644 --- a/core/config.mk +++ b/core/config.mk @@ -374,16 +374,19 @@ ANDROID_BUILDSPEC := $(TOPDIR)buildspec.mk endif -include $(ANDROID_BUILDSPEC) -# Starting in Android U, non-VNDK devices not supported -# WARNING: DO NOT CHANGE: if you are downstream of AOSP, and you change this, without -# letting upstream know it's important to you, we may do cleanup which breaks this -# significantly. Please let us know if you are changing this. -ifndef BOARD_VNDK_VERSION -# READ WARNING - DO NOT CHANGE -BOARD_VNDK_VERSION := current -# READ WARNING - DO NOT CHANGE +ifeq ($(KEEP_VNDK),true) + # Starting in Android U, non-VNDK devices not supported + # WARNING: DO NOT CHANGE: if you are downstream of AOSP, and you change this, without + # letting upstream know it's important to you, we may do cleanup which breaks this + # significantly. Please let us know if you are changing this. + ifndef BOARD_VNDK_VERSION + # READ WARNING - DO NOT CHANGE + BOARD_VNDK_VERSION := current + # READ WARNING - DO NOT CHANGE + endif endif + # --------------------------------------------------------------- # Define most of the global variables. These are the ones that # are specific to the user's build configuration. @@ -813,13 +816,6 @@ $(KATI_obsolete_var $(foreach req,$(requirements),$(req)_OVERRIDE) \ requirements := -# Set default value of KEEP_VNDK. -ifeq ($(RELEASE_DEPRECATE_VNDK),true) - KEEP_VNDK ?= false -else - KEEP_VNDK ?= true -endif - # BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED can be true only if early-mount of # partitions is supported. But the early-mount must be supported for full # treble products, and so BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED should be set @@ -1293,6 +1289,15 @@ DEFAULT_DATA_OUT_MODULES := ltp $(ltp_packages) include $(BUILD_SYSTEM)/dumpvar.mk +ifneq ($(KEEP_VNDK),true) +ifdef BOARD_VNDK_VERSION +BOARD_VNDK_VERSION= +endif +ifdef PLATFORM_VNDK_VERSION +PLATFORM_VNDK_VERSION= +endif +endif + ifeq (true,$(FULL_SYSTEM_OPTIMIZE_JAVA)) ifeq (,$(SYSTEM_OPTIMIZE_JAVA)) $(error SYSTEM_OPTIMIZE_JAVA must be enabled when FULL_SYSTEM_OPTIMIZE_JAVA is enabled) diff --git a/core/envsetup.mk b/core/envsetup.mk index cfb8a6618b..c286135ebf 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -50,6 +50,13 @@ endef # Release config include $(BUILD_SYSTEM)/release_config.mk +# Set default value of KEEP_VNDK. +ifeq ($(RELEASE_DEPRECATE_VNDK),true) + KEEP_VNDK ?= false +else + KEEP_VNDK ?= true +endif + # --------------------------------------------------------------- # Set up version information include $(BUILD_SYSTEM)/version_util.mk diff --git a/core/main.mk b/core/main.mk index f5dbad8b1c..9b98efeb14 100644 --- a/core/main.mk +++ b/core/main.mk @@ -225,20 +225,14 @@ ADDITIONAL_SYSTEM_PROPERTIES += ro.postinstall.fstab.prefix=/system # ADDITIONAL_VENDOR_PROPERTIES will be installed in vendor/build.prop if # property_overrides_split_enabled is true. Otherwise it will be installed in # /system/build.prop +ifeq ($(KEEP_VNDK),true) ifdef BOARD_VNDK_VERSION - ifeq ($(KEEP_VNDK),true) ifeq ($(BOARD_VNDK_VERSION),current) ADDITIONAL_VENDOR_PROPERTIES := ro.vndk.version=$(PLATFORM_VNDK_VERSION) else ADDITIONAL_VENDOR_PROPERTIES := ro.vndk.version=$(BOARD_VNDK_VERSION) endif - endif - - # TODO(b/290159430): ro.vndk.deprecate is a temporal variable for deprecating VNDK. - # This variable will be removed once ro.vndk.version can be removed. - ifneq ($(KEEP_VNDK),true) - ADDITIONAL_SYSTEM_PROPERTIES += ro.vndk.deprecate=true - endif +endif endif # Add cpu properties for bionic and ART. diff --git a/core/soong_config.mk b/core/soong_config.mk index 7d03aa3104..7d1de9867a 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -147,8 +147,10 @@ $(call add_json_bool, ArtUseReadBarrier, $(call invert_bool,$(fi $(call add_json_str, BtConfigIncludeDir, $(BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR)) $(call add_json_list, DeviceKernelHeaders, $(TARGET_DEVICE_KERNEL_HEADERS) $(TARGET_BOARD_KERNEL_HEADERS) $(TARGET_PRODUCT_KERNEL_HEADERS)) $(call add_json_str, VendorApiLevel, $(BOARD_API_LEVEL)) +ifeq ($(KEEP_VNDK),true) $(call add_json_str, DeviceVndkVersion, $(BOARD_VNDK_VERSION)) $(call add_json_str, Platform_vndk_version, $(PLATFORM_VNDK_VERSION)) +endif $(call add_json_list, ExtraVndkVersions, $(PRODUCT_EXTRA_VNDK_VERSIONS)) $(call add_json_list, DeviceSystemSdkVersions, $(BOARD_SYSTEMSDK_VERSIONS)) $(call add_json_str, RecoverySnapshotVersion, $(RECOVERY_SNAPSHOT_VERSION)) diff --git a/core/version_util.mk b/core/version_util.mk index dfa0277993..0ed44996f6 100644 --- a/core/version_util.mk +++ b/core/version_util.mk @@ -157,21 +157,23 @@ ifndef DEFAULT_APP_TARGET_SDK endif .KATI_READONLY := DEFAULT_APP_TARGET_SDK -ifndef PLATFORM_VNDK_VERSION - # This is the definition of the VNDK version for the current VNDK libraries. - # With trunk stable, VNDK will not be frozen but deprecated. - # This version will be removed with the VNDK deprecation. - ifeq (REL,$(PLATFORM_VERSION_CODENAME)) - ifdef RELEASE_PLATFORM_VNDK_VERSION - PLATFORM_VNDK_VERSION := $(RELEASE_PLATFORM_VNDK_VERSION) +ifeq ($(KEEP_VNDK),true) + ifndef PLATFORM_VNDK_VERSION + # This is the definition of the VNDK version for the current VNDK libraries. + # With trunk stable, VNDK will not be frozen but deprecated. + # This version will be removed with the VNDK deprecation. + ifeq (REL,$(PLATFORM_VERSION_CODENAME)) + ifdef RELEASE_PLATFORM_VNDK_VERSION + PLATFORM_VNDK_VERSION := $(RELEASE_PLATFORM_VNDK_VERSION) + else + PLATFORM_VNDK_VERSION := $(PLATFORM_SDK_VERSION) + endif else - PLATFORM_VNDK_VERSION := $(PLATFORM_SDK_VERSION) + PLATFORM_VNDK_VERSION := $(PLATFORM_VERSION_CODENAME) endif - else - PLATFORM_VNDK_VERSION := $(PLATFORM_VERSION_CODENAME) endif + .KATI_READONLY := PLATFORM_VNDK_VERSION endif -.KATI_READONLY := PLATFORM_VNDK_VERSION ifndef PLATFORM_SYSTEMSDK_MIN_VERSION # This is the oldest version of system SDK that the platform supports. Contrary diff --git a/target/board/BoardConfigMainlineCommon.mk b/target/board/BoardConfigMainlineCommon.mk index 01ebe56ba6..c3878b8c04 100644 --- a/target/board/BoardConfigMainlineCommon.mk +++ b/target/board/BoardConfigMainlineCommon.mk @@ -21,8 +21,10 @@ BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4 # the devices with metadata parition BOARD_USES_METADATA_PARTITION := true +ifeq ($(KEEP_VNDK),true) # Default is current, but allow devices to override vndk version if needed. BOARD_VNDK_VERSION ?= current +endif # 64 bit mediadrmserver TARGET_ENABLE_MEDIADRM_64 := true diff --git a/target/product/gsi/Android.mk b/target/product/gsi/Android.mk index 007aabd3cd..54c84ea1c0 100644 --- a/target/product/gsi/Android.mk +++ b/target/product/gsi/Android.mk @@ -7,6 +7,7 @@ INTERNAL_VNDK_LIB_LIST := $(SOONG_VNDK_LIBRARIES_FILE) ##################################################################### # This is the up-to-date list of vndk libs. LATEST_VNDK_LIB_LIST := $(LOCAL_PATH)/current.txt +ifeq ($(KEEP_VNDK),true) UNFROZEN_VNDK := true ifeq (REL,$(PLATFORM_VERSION_CODENAME)) # Use frozen vndk lib list only if "34 >= PLATFORM_VNDK_VERSION" @@ -18,6 +19,7 @@ ifeq (REL,$(PLATFORM_VERSION_CODENAME)) UNFROZEN_VNDK := endif endif +endif ##################################################################### # Check the generate list against the latest list stored in the @@ -35,6 +37,8 @@ ifeq ($(TARGET_IS_64_BIT)|$(TARGET_2ND_ARCH),true|) check-vndk-list: ; else ifeq ($(TARGET_SKIP_CURRENT_VNDK),true) check-vndk-list: ; +else ifeq ($(BOARD_VNDK_VERSION),) +check-vndk-list: ; else check-vndk-list: $(check-vndk-list-timestamp) ifneq ($(SKIP_ABI_CHECKS),true) @@ -199,25 +203,14 @@ endif include $(BUILD_PHONY_PACKAGE) include $(CLEAR_VARS) -_vndk_versions := -ifeq ($(filter com.android.vndk.current.on_vendor, $(PRODUCT_PACKAGES)),) - _vndk_versions += $(if $(call math_is_number,$(PLATFORM_VNDK_VERSION)),\ - $(foreach vndk_ver,$(PRODUCT_EXTRA_VNDK_VERSIONS),\ - $(if $(call math_lt,$(vndk_ver),$(PLATFORM_VNDK_VERSION)),$(vndk_ver))),\ - $(PRODUCT_EXTRA_VNDK_VERSIONS)) -endif -ifneq ($(BOARD_VNDK_VERSION),current) - _vndk_versions += $(BOARD_VNDK_VERSION) -endif + LOCAL_MODULE := vndk_apex_snapshot_package LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 LOCAL_LICENSE_CONDITIONS := notice LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE -LOCAL_REQUIRED_MODULES := $(foreach vndk_ver,$(_vndk_versions),com.android.vndk.v$(vndk_ver)) +LOCAL_REQUIRED_MODULES := $(foreach vndk_ver,$(PRODUCT_EXTRA_VNDK_VERSIONS),com.android.vndk.v$(vndk_ver)) include $(BUILD_PHONY_PACKAGE) -_vndk_versions := - ##################################################################### # Define Phony module to install LLNDK modules which are installed in # the system image