xref: /aosp_15_r20/build/make/core/sysprop_config.mk (revision 9e94795a3d4ef5c1d47486f9a02bb378756cea8a)
1# ADDITIONAL_<partition>_PROPERTIES are properties that are determined by the
2# build system itself. Don't let it be defined from outside of the core build
3# system like Android.mk or <product>.mk files.
4_additional_prop_var_names := \
5    ADDITIONAL_SYSTEM_PROPERTIES \
6    ADDITIONAL_VENDOR_PROPERTIES \
7    ADDITIONAL_ODM_PROPERTIES \
8    ADDITIONAL_PRODUCT_PROPERTIES
9
10$(foreach name, $(_additional_prop_var_names),\
11  $(if $($(name)),\
12    $(error $(name) must not set before here. $($(name)))\
13  ,)\
14  $(eval $(name) :=)\
15)
16_additional_prop_var_names :=
17
18$(KATI_obsolete_var ADDITIONAL_SYSTEM_PROPERTIES,Use build/soong/scripts/gen_build_prop.py instead)
19$(KATI_obsolete_var ADDITIONAL_ODM_PROPERTIES,Use build/soong/scripts/gen_build_prop.py instead)
20$(KATI_obsolete_var ADDITIONAL_PRODUCT_PROPERTIES,Use build/soong/scripts/gen_build_prop.py instead)
21
22# Add cpu properties for bionic and ART.
23ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.arch=$(TARGET_ARCH)
24ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.cpu_variant=$(TARGET_CPU_VARIANT_RUNTIME)
25ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.2nd_arch=$(TARGET_2ND_ARCH)
26ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.2nd_cpu_variant=$(TARGET_2ND_CPU_VARIANT_RUNTIME)
27
28ADDITIONAL_VENDOR_PROPERTIES += persist.sys.dalvik.vm.lib.2=libart.so
29ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_ARCH).variant=$(DEX2OAT_TARGET_CPU_VARIANT_RUNTIME)
30ifneq ($(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES),)
31  ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_ARCH).features=$(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
32endif
33
34ifdef TARGET_2ND_ARCH
35  ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_2ND_ARCH).variant=$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT_RUNTIME)
36  ifneq ($($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES),)
37    ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_2ND_ARCH).features=$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
38  endif
39endif
40
41# Although these variables are prefixed with TARGET_RECOVERY_, they are also needed under charger
42# mode (via libminui).
43ifdef TARGET_RECOVERY_DEFAULT_ROTATION
44ADDITIONAL_VENDOR_PROPERTIES += \
45    ro.minui.default_rotation=$(TARGET_RECOVERY_DEFAULT_ROTATION)
46endif
47ifdef TARGET_RECOVERY_OVERSCAN_PERCENT
48ADDITIONAL_VENDOR_PROPERTIES += \
49    ro.minui.overscan_percent=$(TARGET_RECOVERY_OVERSCAN_PERCENT)
50endif
51ifdef TARGET_RECOVERY_PIXEL_FORMAT
52ADDITIONAL_VENDOR_PROPERTIES += \
53    ro.minui.pixel_format=$(TARGET_RECOVERY_PIXEL_FORMAT)
54endif
55
56ifdef PRODUCT_USE_DYNAMIC_PARTITIONS
57ADDITIONAL_VENDOR_PROPERTIES += \
58    ro.boot.dynamic_partitions=$(PRODUCT_USE_DYNAMIC_PARTITIONS)
59endif
60
61ifdef PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
62ADDITIONAL_VENDOR_PROPERTIES += \
63    ro.boot.dynamic_partitions_retrofit=$(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS)
64endif
65
66ifdef PRODUCT_SHIPPING_API_LEVEL
67ADDITIONAL_VENDOR_PROPERTIES += \
68    ro.product.first_api_level=$(PRODUCT_SHIPPING_API_LEVEL)
69endif
70
71ifdef PRODUCT_SHIPPING_VENDOR_API_LEVEL
72ADDITIONAL_VENDOR_PROPERTIES += \
73    ro.vendor.api_level=$(PRODUCT_SHIPPING_VENDOR_API_LEVEL)
74endif
75
76ifneq ($(TARGET_BUILD_VARIANT),user)
77  ifdef PRODUCT_SET_DEBUGFS_RESTRICTIONS
78    ADDITIONAL_VENDOR_PROPERTIES += \
79      ro.product.debugfs_restrictions.enabled=$(PRODUCT_SET_DEBUGFS_RESTRICTIONS)
80  endif
81endif
82
83# Vendors with GRF must define BOARD_SHIPPING_API_LEVEL for the vendor API level.
84# This must not be defined for the non-GRF devices.
85# The values of the GRF properties will be verified by post_process_props.py
86ifdef BOARD_SHIPPING_API_LEVEL
87ADDITIONAL_VENDOR_PROPERTIES += \
88    ro.board.first_api_level=$(BOARD_SHIPPING_API_LEVEL)
89endif
90
91# Build system set BOARD_API_LEVEL to show the api level of the vendor API surface.
92# This must not be altered outside of build system.
93ifdef BOARD_API_LEVEL
94  ADDITIONAL_VENDOR_PROPERTIES += \
95    ro.board.api_level?=$(BOARD_API_LEVEL)
96  ifdef BOARD_API_LEVEL_PROP_OVERRIDE
97    ADDITIONAL_VENDOR_PROPERTIES += \
98      ro.board.api_level=$(BOARD_API_LEVEL_PROP_OVERRIDE)
99  endif
100endif
101# RELEASE_BOARD_API_LEVEL_FROZEN is true when the vendor API surface is frozen.
102ifdef RELEASE_BOARD_API_LEVEL_FROZEN
103ADDITIONAL_VENDOR_PROPERTIES += \
104    ro.board.api_frozen=$(RELEASE_BOARD_API_LEVEL_FROZEN)
105endif
106
107# Set build prop. This prop is read by ota_from_target_files when generating OTA,
108# to decide if VABC should be disabled.
109ifeq ($(BOARD_DONT_USE_VABC_OTA),true)
110ADDITIONAL_VENDOR_PROPERTIES += \
111    ro.vendor.build.dont_use_vabc=true
112endif
113
114# Set the flag in vendor. So VTS would know if the new fingerprint format is in use when
115# the system images are replaced by GSI.
116ifeq ($(BOARD_USE_VBMETA_DIGTEST_IN_FINGERPRINT),true)
117ADDITIONAL_VENDOR_PROPERTIES += \
118    ro.vendor.build.fingerprint_has_digest=1
119endif
120
121ADDITIONAL_VENDOR_PROPERTIES += \
122    ro.vendor.build.security_patch=$(VENDOR_SECURITY_PATCH) \
123    ro.product.board=$(TARGET_BOOTLOADER_BOARD_NAME) \
124    ro.board.platform=$(TARGET_BOARD_PLATFORM) \
125    ro.hwui.use_vulkan=$(TARGET_USES_VULKAN)
126
127ifdef TARGET_SCREEN_DENSITY
128ADDITIONAL_VENDOR_PROPERTIES += \
129    ro.sf.lcd_density=$(TARGET_SCREEN_DENSITY)
130endif
131
132ifdef AB_OTA_UPDATER
133ADDITIONAL_VENDOR_PROPERTIES += \
134    ro.build.ab_update=$(AB_OTA_UPDATER)
135endif
136
137ifeq ($(AB_OTA_UPDATER),true)
138ADDITIONAL_VENDOR_PROPERTIES += ro.vendor.build.ab_ota_partitions=$(subst $(space),$(comma),$(sort $(AB_OTA_PARTITIONS)))
139endif
140
141user_variant := $(filter user userdebug,$(TARGET_BUILD_VARIANT))
142
143config_enable_uffd_gc := \
144  $(firstword $(OVERRIDE_ENABLE_UFFD_GC) $(PRODUCT_ENABLE_UFFD_GC) default)
145
146ADDITIONAL_VENDOR_PROPERTIES := $(strip $(ADDITIONAL_VENDOR_PROPERTIES))
147
148.KATI_READONLY += \
149    ADDITIONAL_VENDOR_PROPERTIES
150