Define VendorApiLevelPropOverride for GRF prop
Soong must read BOARD_API_LEVEL_PROP_OVERRIDE to generate build props
for vendor image. If this value is provided, ro.board.api_level will
be set to this value.
Bug: 374333106
Test: read product_config
Change-Id: Ifbeea76596ea7b22928ae58467bb05cffeb5da1f
diff --git a/android/variable.go b/android/variable.go
index 34a3d30..c352942 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -241,7 +241,8 @@
DeviceMaxPageSizeSupported *string `json:",omitempty"`
DeviceNoBionicPageSizeMacro *bool `json:",omitempty"`
- VendorApiLevel *string `json:",omitempty"`
+ VendorApiLevel *string `json:",omitempty"`
+ VendorApiLevelPropOverride *string `json:",omitempty"`
DeviceSecondaryArch *string `json:",omitempty"`
DeviceSecondaryArchVariant *string `json:",omitempty"`
diff --git a/scripts/gen_build_prop.py b/scripts/gen_build_prop.py
index c08a3fd..df9e98d 100644
--- a/scripts/gen_build_prop.py
+++ b/scripts/gen_build_prop.py
@@ -429,7 +429,9 @@
# Build system set BOARD_API_LEVEL to show the api level of the vendor API surface.
# This must not be altered outside of build system.
if config["VendorApiLevel"]:
- props.append(f"ro.board.api_level={config['VendorApiLevel']}")
+ props.append(f"ro.board.api_level?={config['VendorApiLevel']}")
+ if config["VendorApiLevelPropOverride"]:
+ props.append(f"ro.board.api_level={config['VendorApiLevelPropOverride']}")
# RELEASE_BOARD_API_LEVEL_FROZEN is true when the vendor API surface is frozen.
if build_flags["RELEASE_BOARD_API_LEVEL_FROZEN"]: