From ee4c970eb0094f88613d183ab017e6002445a5a5 Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Fri, 21 Dec 2018 15:36:00 +0000 Subject: [PATCH] System-specific product sysprops This change makes it possible for products to specify the values of the ro.product.system.X sysprops independently from the corresponding sysprops on the other partitions. Leave the fingerprint as-is for now. It will be changed to follow suit in a followup change. Bug: 110206836 Test: make Change-Id: Id30012e1948df792778b102203116d4ae3f68e56 --- core/Makefile | 26 +++++++++++++++++++------- core/product.mk | 5 +++++ core/product_config.mk | 25 +++++++++++++++++++++++-- 3 files changed, 47 insertions(+), 9 deletions(-) diff --git a/core/Makefile b/core/Makefile index dca4200f4f..e90b3ac742 100644 --- a/core/Makefile +++ b/core/Makefile @@ -222,10 +222,22 @@ FINAL_VENDOR_DEFAULT_PROPERTIES := $(call uniq-pairs-by-first-component, \ BUILDINFO_SH := build/make/tools/buildinfo.sh BUILDINFO_COMMON_SH := build/make/tools/buildinfo_common.sh -# Generates a set of common build system properties to a file. + +# Generates a set of sysprops common to all partitions to a file. # $(1): Partition name # $(2): Output file name define generate-common-build-props + PRODUCT_BRAND="$(PRODUCT_BRAND)" \ + PRODUCT_DEVICE="$(TARGET_DEVICE)" \ + PRODUCT_MANUFACTURER="$(PRODUCT_MANUFACTURER)" \ + PRODUCT_MODEL="$(PRODUCT_MODEL)" \ + PRODUCT_NAME="$(TARGET_PRODUCT)" \ + $(call generate-common-build-props-with-product-vars-set,$(1),$(2)) +endef + +# Like the above macro, but requiring the relevant PRODUCT_ environment +# variables to be set when called. +define generate-common-build-props-with-product-vars-set BUILD_FINGERPRINT="$(BUILD_FINGERPRINT_FROM_FILE)" \ BUILD_ID="$(BUILD_ID)" \ BUILD_NUMBER="$(BUILD_NUMBER_FROM_FILE)" \ @@ -233,11 +245,6 @@ define generate-common-build-props DATE="$(DATE_FROM_FILE)" \ PLATFORM_SDK_VERSION="$(PLATFORM_SDK_VERSION)" \ PLATFORM_VERSION="$(PLATFORM_VERSION)" \ - PRODUCT_BRAND="$(PRODUCT_BRAND)" \ - PRODUCT_DEVICE="$(TARGET_DEVICE)" \ - PRODUCT_MANUFACTURER="$(PRODUCT_MANUFACTURER)" \ - PRODUCT_MODEL="$(PRODUCT_MODEL)" \ - PRODUCT_NAME="$(TARGET_PRODUCT)" \ TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \ bash $(BUILDINFO_COMMON_SH) "$(1)" >> $(2) endef @@ -426,7 +433,12 @@ ifneq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_OEM_PROPERTIES),) $(hide) $(foreach prop,$(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_OEM_PROPERTIES), \ echo "import /oem/oem.prop $(prop)" >> $@;) endif - $(hide) $(call generate-common-build-props,system,$@) + $(hide) PRODUCT_BRAND="$(PRODUCT_SYSTEM_BRAND)" \ + PRODUCT_MANUFACTURER="$(PRODUCT_SYSTEM_MANUFACTURER)" \ + PRODUCT_MODEL="$(PRODUCT_SYSTEM_MODEL)" \ + PRODUCT_NAME="$(PRODUCT_SYSTEM_NAME)" \ + PRODUCT_DEVICE="$(PRODUCT_SYSTEM_DEVICE)" \ + $(call generate-common-build-props-with-product-vars-set,system,$@) $(hide) TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \ TARGET_BUILD_FLAVOR="$(TARGET_BUILD_FLAVOR)" \ TARGET_DEVICE="$(TARGET_DEVICE)" \ diff --git a/core/product.mk b/core/product.mk index a367a6bd20..bb63ab8288 100644 --- a/core/product.mk +++ b/core/product.mk @@ -126,6 +126,11 @@ _product_var_list := \ PRODUCT_DEVICE \ PRODUCT_MANUFACTURER \ PRODUCT_BRAND \ + PRODUCT_SYSTEM_NAME \ + PRODUCT_SYSTEM_MODEL \ + PRODUCT_SYSTEM_DEVICE \ + PRODUCT_SYSTEM_BRAND \ + PRODUCT_SYSTEM_MANUFACTURER \ PRODUCT_PROPERTY_OVERRIDES \ PRODUCT_DEFAULT_PROPERTY_OVERRIDES \ PRODUCT_PRODUCT_PROPERTIES \ diff --git a/core/product_config.mk b/core/product_config.mk index cff42dbe0b..7ab1d6d17c 100644 --- a/core/product_config.mk +++ b/core/product_config.mk @@ -299,18 +299,39 @@ PRODUCT_AAPT_CONFIG_SP := $(PRODUCT_AAPT_CONFIG) PRODUCT_AAPT_CONFIG := \ $(subst $(space),$(comma),$(strip $(PRODUCT_AAPT_CONFIG))) +PRODUCT_SYSTEM_NAME := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_NAME)) +ifndef PRODUCT_SYSTEM_NAME + PRODUCT_SYSTEM_NAME := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_NAME)) +endif + +PRODUCT_SYSTEM_DEVICE := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_DEVICE)) +ifndef PRODUCT_SYSTEM_DEVICE + PRODUCT_SYSTEM_DEVICE := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_DEVICE) +endif + PRODUCT_BRAND := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_BRAND)) +PRODUCT_SYSTEM_BRAND := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_BRAND)) +ifndef PRODUCT_SYSTEM_BRAND + PRODUCT_SYSTEM_BRAND := $(PRODUCT_BRAND) +endif PRODUCT_MODEL := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_MODEL)) ifndef PRODUCT_MODEL PRODUCT_MODEL := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_NAME)) endif +PRODUCT_SYSTEM_MODEL := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_MODEL)) +ifndef PRODUCT_SYSTEM_MODEL + PRODUCT_SYSTEM_MODEL := $(PRODUCT_MODEL) +endif -PRODUCT_MANUFACTURER := \ - $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_MANUFACTURER)) +PRODUCT_MANUFACTURER := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_MANUFACTURER)) ifndef PRODUCT_MANUFACTURER PRODUCT_MANUFACTURER := unknown endif +PRODUCT_SYSTEM_MANUFACTURER := $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_MANUFACTURER)) +ifndef PRODUCT_SYSTEM_MANUFACTURER + PRODUCT_SYSTEM_MANUFACTURER := $(PRODUCT_MANUFACTURER) +endif ifeq ($(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_CHARACTERISTICS),) TARGET_AAPT_CHARACTERISTICS := default