181 lines
6.8 KiB
Makefile
181 lines
6.8 KiB
Makefile
# ADDITIONAL_<partition>_PROPERTIES are properties that are determined by the
|
|
# build system itself. Don't let it be defined from outside of the core build
|
|
# system like Android.mk or <product>.mk files.
|
|
_additional_prop_var_names := \
|
|
ADDITIONAL_SYSTEM_PROPERTIES \
|
|
ADDITIONAL_VENDOR_PROPERTIES \
|
|
ADDITIONAL_ODM_PROPERTIES \
|
|
ADDITIONAL_PRODUCT_PROPERTIES
|
|
|
|
$(foreach name, $(_additional_prop_var_names),\
|
|
$(if $($(name)),\
|
|
$(error $(name) must not set before here. $($(name)))\
|
|
,)\
|
|
$(eval $(name) :=)\
|
|
)
|
|
_additional_prop_var_names :=
|
|
|
|
$(KATI_obsolete_var ADDITIONAL_SYSTEM_PROPERTIES,Use build/soong/scripts/gen_build_prop.py instead)
|
|
|
|
# Add the system server compiler filter if they are specified for the product.
|
|
ifneq (,$(PRODUCT_SYSTEM_SERVER_COMPILER_FILTER))
|
|
ADDITIONAL_PRODUCT_PROPERTIES += dalvik.vm.systemservercompilerfilter=$(PRODUCT_SYSTEM_SERVER_COMPILER_FILTER)
|
|
endif
|
|
|
|
# Add the 16K developer option if it is defined for the product.
|
|
ifeq ($(PRODUCT_16K_DEVELOPER_OPTION),true)
|
|
ADDITIONAL_PRODUCT_PROPERTIES += ro.product.build.16k_page.enabled=true
|
|
else
|
|
ADDITIONAL_PRODUCT_PROPERTIES += ro.product.build.16k_page.enabled=false
|
|
endif
|
|
|
|
ifeq ($(TARGET_BOOTS_16K),true)
|
|
ADDITIONAL_PRODUCT_PROPERTIES += ro.product.page_size=16384
|
|
else
|
|
ADDITIONAL_PRODUCT_PROPERTIES += ro.product.page_size=4096
|
|
endif
|
|
|
|
# Add cpu properties for bionic and ART.
|
|
ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.arch=$(TARGET_ARCH)
|
|
ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.cpu_variant=$(TARGET_CPU_VARIANT_RUNTIME)
|
|
ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.2nd_arch=$(TARGET_2ND_ARCH)
|
|
ADDITIONAL_VENDOR_PROPERTIES += ro.bionic.2nd_cpu_variant=$(TARGET_2ND_CPU_VARIANT_RUNTIME)
|
|
|
|
ADDITIONAL_VENDOR_PROPERTIES += persist.sys.dalvik.vm.lib.2=libart.so
|
|
ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_ARCH).variant=$(DEX2OAT_TARGET_CPU_VARIANT_RUNTIME)
|
|
ifneq ($(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES),)
|
|
ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_ARCH).features=$(DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
|
|
endif
|
|
|
|
ifdef TARGET_2ND_ARCH
|
|
ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_2ND_ARCH).variant=$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_CPU_VARIANT_RUNTIME)
|
|
ifneq ($($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES),)
|
|
ADDITIONAL_VENDOR_PROPERTIES += dalvik.vm.isa.$(TARGET_2ND_ARCH).features=$($(TARGET_2ND_ARCH_VAR_PREFIX)DEX2OAT_TARGET_INSTRUCTION_SET_FEATURES)
|
|
endif
|
|
endif
|
|
|
|
# Although these variables are prefixed with TARGET_RECOVERY_, they are also needed under charger
|
|
# mode (via libminui).
|
|
ifdef TARGET_RECOVERY_DEFAULT_ROTATION
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.minui.default_rotation=$(TARGET_RECOVERY_DEFAULT_ROTATION)
|
|
endif
|
|
ifdef TARGET_RECOVERY_OVERSCAN_PERCENT
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.minui.overscan_percent=$(TARGET_RECOVERY_OVERSCAN_PERCENT)
|
|
endif
|
|
ifdef TARGET_RECOVERY_PIXEL_FORMAT
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.minui.pixel_format=$(TARGET_RECOVERY_PIXEL_FORMAT)
|
|
endif
|
|
|
|
ifdef PRODUCT_USE_DYNAMIC_PARTITIONS
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.boot.dynamic_partitions=$(PRODUCT_USE_DYNAMIC_PARTITIONS)
|
|
endif
|
|
|
|
ifdef PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.boot.dynamic_partitions_retrofit=$(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS)
|
|
endif
|
|
|
|
ifdef PRODUCT_SHIPPING_API_LEVEL
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.product.first_api_level=$(PRODUCT_SHIPPING_API_LEVEL)
|
|
endif
|
|
|
|
ifdef PRODUCT_SHIPPING_VENDOR_API_LEVEL
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.vendor.api_level=$(PRODUCT_SHIPPING_VENDOR_API_LEVEL)
|
|
endif
|
|
|
|
ifneq ($(TARGET_BUILD_VARIANT),user)
|
|
ifdef PRODUCT_SET_DEBUGFS_RESTRICTIONS
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.product.debugfs_restrictions.enabled=$(PRODUCT_SET_DEBUGFS_RESTRICTIONS)
|
|
endif
|
|
endif
|
|
|
|
# Vendors with GRF must define BOARD_SHIPPING_API_LEVEL for the vendor API level.
|
|
# This must not be defined for the non-GRF devices.
|
|
# The values of the GRF properties will be verified by post_process_props.py
|
|
ifdef BOARD_SHIPPING_API_LEVEL
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.board.first_api_level=$(BOARD_SHIPPING_API_LEVEL)
|
|
endif
|
|
|
|
# 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.
|
|
ifdef BOARD_API_LEVEL
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.board.api_level=$(BOARD_API_LEVEL)
|
|
endif
|
|
# RELEASE_BOARD_API_LEVEL_FROZEN is true when the vendor API surface is frozen.
|
|
ifdef RELEASE_BOARD_API_LEVEL_FROZEN
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.board.api_frozen=$(RELEASE_BOARD_API_LEVEL_FROZEN)
|
|
endif
|
|
|
|
# Set build prop. This prop is read by ota_from_target_files when generating OTA,
|
|
# to decide if VABC should be disabled.
|
|
ifeq ($(BOARD_DONT_USE_VABC_OTA),true)
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.vendor.build.dont_use_vabc=true
|
|
endif
|
|
|
|
# Set the flag in vendor. So VTS would know if the new fingerprint format is in use when
|
|
# the system images are replaced by GSI.
|
|
ifeq ($(BOARD_USE_VBMETA_DIGTEST_IN_FINGERPRINT),true)
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.vendor.build.fingerprint_has_digest=1
|
|
endif
|
|
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.vendor.build.security_patch=$(VENDOR_SECURITY_PATCH) \
|
|
ro.product.board=$(TARGET_BOOTLOADER_BOARD_NAME) \
|
|
ro.board.platform=$(TARGET_BOARD_PLATFORM) \
|
|
ro.hwui.use_vulkan=$(TARGET_USES_VULKAN)
|
|
|
|
ifdef TARGET_SCREEN_DENSITY
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.sf.lcd_density=$(TARGET_SCREEN_DENSITY)
|
|
endif
|
|
|
|
ifdef AB_OTA_UPDATER
|
|
ADDITIONAL_VENDOR_PROPERTIES += \
|
|
ro.build.ab_update=$(AB_OTA_UPDATER)
|
|
endif
|
|
|
|
ADDITIONAL_PRODUCT_PROPERTIES += ro.build.characteristics=$(TARGET_AAPT_CHARACTERISTICS)
|
|
|
|
ifeq ($(AB_OTA_UPDATER),true)
|
|
ADDITIONAL_PRODUCT_PROPERTIES += ro.product.ab_ota_partitions=$(subst $(space),$(comma),$(sort $(AB_OTA_PARTITIONS)))
|
|
ADDITIONAL_VENDOR_PROPERTIES += ro.vendor.build.ab_ota_partitions=$(subst $(space),$(comma),$(sort $(AB_OTA_PARTITIONS)))
|
|
endif
|
|
|
|
# Set this property for VTS to skip large page size tests on unsupported devices.
|
|
ADDITIONAL_PRODUCT_PROPERTIES += \
|
|
ro.product.cpu.pagesize.max=$(TARGET_MAX_PAGE_SIZE_SUPPORTED)
|
|
|
|
ifeq ($(PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO),true)
|
|
ADDITIONAL_PRODUCT_PROPERTIES += ro.product.build.no_bionic_page_size_macro=true
|
|
endif
|
|
|
|
user_variant := $(filter user userdebug,$(TARGET_BUILD_VARIANT))
|
|
|
|
config_enable_uffd_gc := \
|
|
$(firstword $(OVERRIDE_ENABLE_UFFD_GC) $(PRODUCT_ENABLE_UFFD_GC) default)
|
|
|
|
# This is a temporary system property that controls the ART module. The plan is
|
|
# to remove it by Aug 2025, at which time Mainline updates of the ART module
|
|
# will ignore it as well.
|
|
# If the value is "default", it will be mangled by post_process_props.py.
|
|
ADDITIONAL_PRODUCT_PROPERTIES += ro.dalvik.vm.enable_uffd_gc=$(config_enable_uffd_gc)
|
|
|
|
ADDITIONAL_PRODUCT_PROPERTIES := $(strip $(ADDITIONAL_PRODUCT_PROPERTIES))
|
|
ADDITIONAL_VENDOR_PROPERTIES := $(strip $(ADDITIONAL_VENDOR_PROPERTIES))
|
|
|
|
.KATI_READONLY += \
|
|
ADDITIONAL_PRODUCT_PROPERTIES \
|
|
ADDITIONAL_VENDOR_PROPERTIES
|