Allow PLATFORM_BASE_OS override from product config

PLATFORM_BASE_OS is used to set value for
ro.build.version.base_os which is used to qualify
a device build as SMR (Security Maintenance Release)
during APFE (Android Partner Approval) to optimize the test span.
See ag/26859560 on how we plan to use this variable.

Add PRODUCT_BASE_OS that can be used to override
PLATFORM_BASE_OS value before making it read_only.

Plan is to set the value for PRODUCT_BASE_OS using build flags.
This way, it can be easily set per device when making on-demand
SMR releases. In future, move it to be set via soong variable
during build process once build system side is ready.

Test: None
Bug: 155105803
(cherry picked from https://android-review.googlesource.com/q/commit:c4baa3aa7240e1b0cb013f853669aa419e55ee1e)
Merged-In: I7c4a1f291bb426ad599e1dc937e6ecd3889b5820
Change-Id: I7c4a1f291bb426ad599e1dc937e6ecd3889b5820
This commit is contained in:
Lokesh Kumar Goel 2024-02-09 01:05:51 +00:00 committed by Android Build Coastguard Worker
parent 36777736f4
commit b9da7e704e
3 changed files with 20 additions and 8 deletions

View file

@ -26,6 +26,7 @@ _product_single_value_vars += PRODUCT_NAME
_product_single_value_vars += PRODUCT_MODEL
_product_single_value_vars += PRODUCT_NAME_FOR_ATTESTATION
_product_single_value_vars += PRODUCT_MODEL_FOR_ATTESTATION
_product_single_value_vars += PRODUCT_BASE_OS
# Defines the ELF segment alignment for binaries (executables and shared libraries).
# The ELF segment alignment has to be a PAGE_SIZE multiple. For example, if

View file

@ -311,6 +311,14 @@ endif
TARGET_DEVICE := $(PRODUCT_DEVICE)
# Allow overriding PLATFORM_BASE_OS when PRODUCT_BASE_OS is defined
ifdef PRODUCT_BASE_OS
PLATFORM_BASE_OS := $(PRODUCT_BASE_OS)
else
PLATFORM_BASE_OS := $(PLATFORM_BASE_OS_ENV_INPUT)
endif
.KATI_READONLY := PLATFORM_BASE_OS
# TODO: also keep track of things like "port", "land" in product files.
# Figure out which resoure configuration options to use for this

View file

@ -183,14 +183,17 @@ ifndef PLATFORM_SECURITY_PATCH_TIMESTAMP
endif
.KATI_READONLY := PLATFORM_SECURITY_PATCH_TIMESTAMP
ifndef PLATFORM_BASE_OS
# Used to indicate the base os applied to the device.
# Can be an arbitrary string, but must be a single word.
#
# If there is no $PLATFORM_BASE_OS set, keep it empty.
PLATFORM_BASE_OS :=
endif
.KATI_READONLY := PLATFORM_BASE_OS
# PLATFORM_BASE_OS is used to indicate the base os applied
# to the device. Can be an arbitrary string, but must be a
# single word.
#
# If there is no $PLATFORM_BASE_OS set, keep it empty.
#
# PLATFORM_BASE_OS can either be set via an enviornment
# variable, or set via the PRODUCT_BASE_OS product variable.
PLATFORM_BASE_OS_ENV_INPUT := $(PLATFORM_BASE_OS)
.KATI_READONLY := PLATFORM_BASE_OS_ENV_INPUT
PLATFORM_BASE_OS :=
ifndef BUILD_ID
# Used to signify special builds. E.g., branches and/or releases,