blob: 543b86b0e0f9c67b8d32b7e3de420b6a3b35dc42 [file] [log] [blame]
Inseob Kim85b83a92024-05-08 11:13:26 +09001# 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
Inseob Kimb97c96b2024-07-31 02:00:41 +000018$(KATI_obsolete_var ADDITIONAL_SYSTEM_PROPERTIES,Use build/soong/scripts/gen_build_prop.py instead)
Inseob Kim85b83a92024-05-08 11:13:26 +090019
20# Add the system server compiler filter if they are specified for the product.
21ifneq (,$(PRODUCT_SYSTEM_SERVER_COMPILER_FILTER))
22ADDITIONAL_PRODUCT_PROPERTIES += dalvik.vm.systemservercompilerfilter=$(PRODUCT_SYSTEM_SERVER_COMPILER_FILTER)
23endif
24
25# Add the 16K developer option if it is defined for the product.
26ifeq ($(PRODUCT_16K_DEVELOPER_OPTION),true)
27ADDITIONAL_PRODUCT_PROPERTIES += ro.product.build.16k_page.enabled=true
28else
29ADDITIONAL_PRODUCT_PROPERTIES += ro.product.build.16k_page.enabled=false
30endif
31
Pawan Wagha08472f2024-07-08 22:55:33 +000032ifeq ($(TARGET_BOOTS_16K),true)
33ADDITIONAL_PRODUCT_PROPERTIES += ro.product.page_size=16384
34else
35ADDITIONAL_PRODUCT_PROPERTIES += ro.product.page_size=4096
36endif
37
Inseob Kim85b83a92024-05-08 11:13:26 +090038# Add cpu properties for bionic and ART.
39ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.arch=$(TARGET_ARCH)
40ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.cpu_variant=$(TARGET_CPU_VARIANT_RUNTIME)
41ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.2nd_arch=$(TARGET_2ND_ARCH)
42ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.2nd_cpu_variant=$(TARGET_2ND_CPU_VARIANT_RUNTIME)
43
44ADDITIONAL_VENDOR_PROPERTIES += persist.sys.dalvik.vm.lib.2=libart.so
45ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_ARCH).variant=$(DEX2OAT_TARGET_CPU_VARIANT_RUNTIME)
46ifneq ($(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES),)
47 ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_ARCH).features=$(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
48endif
49
50ifdef TARGET_2ND_ARCH
51 ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_2ND_ARCH).variant=$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT_RUNTIME)
52 ifneq ($($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES),)
53 ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_2ND_ARCH).features=$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
54 endif
55endif
56
57# Although these variables are prefixed with TARGET_RECOVERY_, they are also needed under charger
58# mode (via libminui).
59ifdef TARGET_RECOVERY_DEFAULT_ROTATION
60ADDITIONAL_VENDOR_PROPERTIES += \
61 ro.minui.default_rotation=$(TARGET_RECOVERY_DEFAULT_ROTATION)
62endif
63ifdef TARGET_RECOVERY_OVERSCAN_PERCENT
64ADDITIONAL_VENDOR_PROPERTIES += \
65 ro.minui.overscan_percent=$(TARGET_RECOVERY_OVERSCAN_PERCENT)
66endif
67ifdef TARGET_RECOVERY_PIXEL_FORMAT
68ADDITIONAL_VENDOR_PROPERTIES += \
69 ro.minui.pixel_format=$(TARGET_RECOVERY_PIXEL_FORMAT)
70endif
71
72ifdef PRODUCT_USE_DYNAMIC_PARTITIONS
73ADDITIONAL_VENDOR_PROPERTIES += \
74 ro.boot.dynamic_partitions=$(PRODUCT_USE_DYNAMIC_PARTITIONS)
75endif
76
77ifdef PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
78ADDITIONAL_VENDOR_PROPERTIES += \
79 ro.boot.dynamic_partitions_retrofit=$(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS)
80endif
81
82ifdef PRODUCT_SHIPPING_API_LEVEL
83ADDITIONAL_VENDOR_PROPERTIES += \
84 ro.product.first_api_level=$(PRODUCT_SHIPPING_API_LEVEL)
85endif
86
87ifdef PRODUCT_SHIPPING_VENDOR_API_LEVEL
88ADDITIONAL_VENDOR_PROPERTIES += \
89 ro.vendor.api_level=$(PRODUCT_SHIPPING_VENDOR_API_LEVEL)
90endif
91
92ifneq ($(TARGET_BUILD_VARIANT),user)
93 ifdef PRODUCT_SET_DEBUGFS_RESTRICTIONS
94 ADDITIONAL_VENDOR_PROPERTIES += \
95 ro.product.debugfs_restrictions.enabled=$(PRODUCT_SET_DEBUGFS_RESTRICTIONS)
96 endif
97endif
98
99# Vendors with GRF must define BOARD_SHIPPING_API_LEVEL for the vendor API level.
100# This must not be defined for the non-GRF devices.
101# The values of the GRF properties will be verified by post_process_props.py
102ifdef BOARD_SHIPPING_API_LEVEL
103ADDITIONAL_VENDOR_PROPERTIES += \
104 ro.board.first_api_level=$(BOARD_SHIPPING_API_LEVEL)
105endif
106
107# Build system set BOARD_API_LEVEL to show the api level of the vendor API surface.
108# This must not be altered outside of build system.
109ifdef BOARD_API_LEVEL
110ADDITIONAL_VENDOR_PROPERTIES += \
111 ro.board.api_level=$(BOARD_API_LEVEL)
112endif
113# RELEASE_BOARD_API_LEVEL_FROZEN is true when the vendor API surface is frozen.
114ifdef RELEASE_BOARD_API_LEVEL_FROZEN
115ADDITIONAL_VENDOR_PROPERTIES += \
116 ro.board.api_frozen=$(RELEASE_BOARD_API_LEVEL_FROZEN)
117endif
118
119# Set build prop. This prop is read by ota_from_target_files when generating OTA,
120# to decide if VABC should be disabled.
121ifeq ($(BOARD_DONT_USE_VABC_OTA),true)
122ADDITIONAL_VENDOR_PROPERTIES += \
123 ro.vendor.build.dont_use_vabc=true
124endif
125
126# Set the flag in vendor. So VTS would know if the new fingerprint format is in use when
127# the system images are replaced by GSI.
128ifeq ($(BOARD_USE_VBMETA_DIGTEST_IN_FINGERPRINT),true)
129ADDITIONAL_VENDOR_PROPERTIES += \
130 ro.vendor.build.fingerprint_has_digest=1
131endif
132
133ADDITIONAL_VENDOR_PROPERTIES += \
134 ro.vendor.build.security_patch=$(VENDOR_SECURITY_PATCH) \
135 ro.product.board=$(TARGET_BOOTLOADER_BOARD_NAME) \
136 ro.board.platform=$(TARGET_BOARD_PLATFORM) \
137 ro.hwui.use_vulkan=$(TARGET_USES_VULKAN)
138
139ifdef TARGET_SCREEN_DENSITY
140ADDITIONAL_VENDOR_PROPERTIES += \
141 ro.sf.lcd_density=$(TARGET_SCREEN_DENSITY)
142endif
143
144ifdef AB_OTA_UPDATER
145ADDITIONAL_VENDOR_PROPERTIES += \
146 ro.build.ab_update=$(AB_OTA_UPDATER)
147endif
148
149ADDITIONAL_PRODUCT_PROPERTIES += ro.build.characteristics=$(TARGET_AAPT_CHARACTERISTICS)
150
151ifeq ($(AB_OTA_UPDATER),true)
152ADDITIONAL_PRODUCT_PROPERTIES += ro.product.ab_ota_partitions=$(subst $(space),$(comma),$(sort $(AB_OTA_PARTITIONS)))
153ADDITIONAL_VENDOR_PROPERTIES += ro.vendor.build.ab_ota_partitions=$(subst $(space),$(comma),$(sort $(AB_OTA_PARTITIONS)))
154endif
155
156# Set this property for VTS to skip large page size tests on unsupported devices.
157ADDITIONAL_PRODUCT_PROPERTIES += \
158 ro.product.cpu.pagesize.max=$(TARGET_MAX_PAGE_SIZE_SUPPORTED)
159
160ifeq ($(PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO),true)
161ADDITIONAL_PRODUCT_PROPERTIES += ro.product.build.no_bionic_page_size_macro=true
162endif
163
164user_variant := $(filter user userdebug,$(TARGET_BUILD_VARIANT))
Inseob Kim85b83a92024-05-08 11:13:26 +0900165
166config_enable_uffd_gc := \
167 $(firstword $(OVERRIDE_ENABLE_UFFD_GC) $(PRODUCT_ENABLE_UFFD_GC) default)
168
Martin Stjernholma8c687f2024-05-15 16:42:02 +0100169# This is a temporary system property that controls the ART module. The plan is
170# to remove it by Aug 2025, at which time Mainline updates of the ART module
171# will ignore it as well.
Inseob Kim85b83a92024-05-08 11:13:26 +0900172# If the value is "default", it will be mangled by post_process_props.py.
173ADDITIONAL_PRODUCT_PROPERTIES += ro.dalvik.vm.enable_uffd_gc=$(config_enable_uffd_gc)
174
Inseob Kim85b83a92024-05-08 11:13:26 +0900175ADDITIONAL_PRODUCT_PROPERTIES := $(strip $(ADDITIONAL_PRODUCT_PROPERTIES))
176ADDITIONAL_VENDOR_PROPERTIES := $(strip $(ADDITIONAL_VENDOR_PROPERTIES))
177
178.KATI_READONLY += \
Inseob Kim85b83a92024-05-08 11:13:26 +0900179 ADDITIONAL_PRODUCT_PROPERTIES \
180 ADDITIONAL_VENDOR_PROPERTIES