Move sysprop assignments to separate mk file
core/sysprop_config.mk is added to separate code setting ADDITIONAL_*_PROPERTIES variables. This should be a no-op for now but it will help migrate build.prop generation to Soong. Bug: 322090587 Test: compare build.prop files before and after Change-Id: I57a1ae899865027bcadddc2071fcd2afcf2703bc
This commit is contained in:
@@ -19,8 +19,6 @@ ifeq (,$(filter default true false,$(config_enable_uffd_gc)))
|
||||
endif
|
||||
|
||||
ENABLE_UFFD_GC := $(config_enable_uffd_gc)
|
||||
# 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)
|
||||
|
||||
# Create APEX_BOOT_JARS_EXCLUDED which is a list of jars to be removed from
|
||||
# ApexBoorJars when built from mainline prebuilts.
|
||||
|
@@ -1231,6 +1231,8 @@ BUILD_WARNING_BAD_OPTIONAL_USES_LIBS_ALLOWLIST := LegacyCamera Gallery2
|
||||
# in the source tree.
|
||||
dont_bother_goals := out product-graph
|
||||
|
||||
include $(BUILD_SYSTEM)/sysprop_config.mk
|
||||
|
||||
# Make ANDROID Soong config variables visible to Android.mk files, for
|
||||
# consistency with those defined in BoardConfig.mk files.
|
||||
include $(BUILD_SYSTEM)/android_soong_config_vars.mk
|
||||
|
269
core/main.mk
269
core/main.mk
@@ -113,37 +113,8 @@ ifdef TARGET_ARCH_SUITE
|
||||
# $(error TARGET_ARCH_SUITE is not supported in kati/make builds)
|
||||
endif
|
||||
|
||||
# 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_BUILD_PROPERTIES, Please use ADDITIONAL_SYSTEM_PROPERTIES)
|
||||
|
||||
#
|
||||
# -----------------------------------------------------------------
|
||||
# Add the product-defined properties to the build properties.
|
||||
ifneq ($(BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED), true)
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += $(PRODUCT_PROPERTY_OVERRIDES)
|
||||
else
|
||||
ifndef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += $(PRODUCT_PROPERTY_OVERRIDES)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
# Bring in standard build system definitions.
|
||||
include $(BUILD_SYSTEM)/definitions.mk
|
||||
|
||||
@@ -175,178 +146,8 @@ endif
|
||||
# PDK builds are no longer supported, this is always platform
|
||||
TARGET_BUILD_JAVA_SUPPORT_LEVEL :=$= platform
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.treble.enabled=${PRODUCT_FULL_TREBLE}
|
||||
|
||||
$(KATI_obsolete_var PRODUCT_FULL_TREBLE,\
|
||||
Code should be written to work regardless of a device being Treble)
|
||||
|
||||
# Set ro.llndk.api_level to show the maximum vendor API level that the LLNDK in
|
||||
# the system partition supports.
|
||||
ifdef RELEASE_BOARD_API_LEVEL
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.llndk.api_level=$(RELEASE_BOARD_API_LEVEL)
|
||||
endif
|
||||
|
||||
# Sets ro.actionable_compatible_property.enabled to know on runtime whether the
|
||||
# allowed list of actionable compatible properties is enabled or not.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.actionable_compatible_property.enabled=true
|
||||
|
||||
# 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
|
||||
|
||||
# Enable core platform API violation warnings on userdebug and eng builds.
|
||||
ifneq ($(TARGET_BUILD_VARIANT),user)
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += persist.debug.dalvik.vm.core_platform_api_policy=just-warn
|
||||
endif
|
||||
|
||||
# Define ro.sanitize.<name> properties for all global sanitizers.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += $(foreach s,$(SANITIZE_TARGET),ro.sanitize.$(s)=true)
|
||||
|
||||
# Sets the default value of ro.postinstall.fstab.prefix to /system.
|
||||
# Device board config should override the value to /product when needed by:
|
||||
#
|
||||
# PRODUCT_PRODUCT_PROPERTIES += ro.postinstall.fstab.prefix=/product
|
||||
#
|
||||
# It then uses ${ro.postinstall.fstab.prefix}/etc/fstab.postinstall to
|
||||
# mount system_other partition.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.postinstall.fstab.prefix=/system
|
||||
|
||||
# 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
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
###
|
||||
### In this section we set up the things that are different
|
||||
@@ -359,66 +160,15 @@ ifneq ($(filter sdk sdk_addon,$(MAKECMDGOALS)),)
|
||||
is_sdk_build := true
|
||||
endif
|
||||
|
||||
## user/userdebug ##
|
||||
|
||||
user_variant := $(filter user userdebug,$(TARGET_BUILD_VARIANT))
|
||||
enable_target_debugging := true
|
||||
tags_to_install :=
|
||||
ifneq (,$(user_variant))
|
||||
# Target is secure in user builds.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.secure=1
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += security.perf_harden=1
|
||||
|
||||
ifeq ($(user_variant),user)
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.adb.secure=1
|
||||
endif
|
||||
|
||||
ifeq ($(user_variant),userdebug)
|
||||
# Pick up some extra useful tools
|
||||
tags_to_install += debug
|
||||
else
|
||||
# Disable debugging in plain user builds.
|
||||
enable_target_debugging :=
|
||||
endif
|
||||
|
||||
# Disallow mock locations by default for user builds
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.allow.mock.location=0
|
||||
|
||||
else # !user_variant
|
||||
# Turn on checkjni for non-user builds.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.kernel.android.checkjni=1
|
||||
# Set device insecure for non-user builds.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.secure=0
|
||||
# Allow mock locations by default for non user builds
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.allow.mock.location=1
|
||||
endif # !user_variant
|
||||
|
||||
ifeq (true,$(strip $(enable_target_debugging)))
|
||||
# Target is more debuggable and adbd is on by default
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.debuggable=1
|
||||
# Enable Dalvik lock contention logging.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += dalvik.vm.lockprof.threshold=500
|
||||
else # !enable_target_debugging
|
||||
# Target is less debuggable and adbd is off by default
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.debuggable=0
|
||||
endif # !enable_target_debugging
|
||||
|
||||
## eng ##
|
||||
ifeq ($(TARGET_BUILD_VARIANT),userdebug)
|
||||
# Pick up some extra useful tools
|
||||
tags_to_install := debug
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_BUILD_VARIANT),eng)
|
||||
tags_to_install := debug eng
|
||||
ifneq ($(filter ro.setupwizard.mode=ENABLED, $(call collapse-pairs, $(ADDITIONAL_SYSTEM_PROPERTIES))),)
|
||||
# Don't require the setup wizard on eng builds
|
||||
ADDITIONAL_SYSTEM_PROPERTIES := $(filter-out ro.setupwizard.mode=%,\
|
||||
$(call collapse-pairs, $(ADDITIONAL_SYSTEM_PROPERTIES))) \
|
||||
ro.setupwizard.mode=OPTIONAL
|
||||
endif
|
||||
ifndef is_sdk_build
|
||||
# To speedup startup of non-preopted builds, don't verify or compile the boot image.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += dalvik.vm.image-dex2oat-filter=extract
|
||||
endif
|
||||
# b/323566535
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += init.svc_debug.no_fatal.zygote=true
|
||||
endif
|
||||
|
||||
## asan ##
|
||||
@@ -454,18 +204,11 @@ endif
|
||||
# TODO: this should be eng I think. Since the sdk is built from the eng
|
||||
# variant.
|
||||
tags_to_install := debug eng
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += xmpp.auto-presence=true
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.config.nocheckin=yes
|
||||
else # !sdk
|
||||
endif
|
||||
|
||||
BUILD_WITHOUT_PV := true
|
||||
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += net.bt.name=Android
|
||||
|
||||
# This property is set by flashing debug boot image, so default to false.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.force.debuggable=0
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Define a function that, given a list of module tags, returns
|
||||
# non-empty if that module should be installed in /system.
|
||||
@@ -506,10 +249,6 @@ include $(BUILD_SYSTEM)/dex_preopt.mk
|
||||
|
||||
# Strip and readonly a few more variables so they won't be modified.
|
||||
$(readonly-final-product-vars)
|
||||
ADDITIONAL_SYSTEM_PROPERTIES := $(strip $(ADDITIONAL_SYSTEM_PROPERTIES))
|
||||
.KATI_READONLY := ADDITIONAL_SYSTEM_PROPERTIES
|
||||
ADDITIONAL_PRODUCT_PROPERTIES := $(strip $(ADDITIONAL_PRODUCT_PROPERTIES))
|
||||
.KATI_READONLY := ADDITIONAL_PRODUCT_PROPERTIES
|
||||
|
||||
ifneq ($(PRODUCT_ENFORCE_RRO_TARGETS),)
|
||||
ENFORCE_RRO_SOURCES :=
|
||||
|
278
core/sysprop_config.mk
Normal file
278
core/sysprop_config.mk
Normal file
@@ -0,0 +1,278 @@
|
||||
# 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 :=
|
||||
|
||||
#
|
||||
# -----------------------------------------------------------------
|
||||
# Add the product-defined properties to the build properties.
|
||||
ifneq ($(BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED), true)
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += $(PRODUCT_PROPERTY_OVERRIDES)
|
||||
else
|
||||
ifndef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += $(PRODUCT_PROPERTY_OVERRIDES)
|
||||
endif
|
||||
endif
|
||||
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.treble.enabled=${PRODUCT_FULL_TREBLE}
|
||||
|
||||
# Set ro.llndk.api_level to show the maximum vendor API level that the LLNDK in
|
||||
# the system partition supports.
|
||||
ifdef RELEASE_BOARD_API_LEVEL
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.llndk.api_level=$(RELEASE_BOARD_API_LEVEL)
|
||||
endif
|
||||
|
||||
# Sets ro.actionable_compatible_property.enabled to know on runtime whether the
|
||||
# allowed list of actionable compatible properties is enabled or not.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.actionable_compatible_property.enabled=true
|
||||
|
||||
# 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
|
||||
|
||||
# Enable core platform API violation warnings on userdebug and eng builds.
|
||||
ifneq ($(TARGET_BUILD_VARIANT),user)
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += persist.debug.dalvik.vm.core_platform_api_policy=just-warn
|
||||
endif
|
||||
|
||||
# Define ro.sanitize.<name> properties for all global sanitizers.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += $(foreach s,$(SANITIZE_TARGET),ro.sanitize.$(s)=true)
|
||||
|
||||
# Sets the default value of ro.postinstall.fstab.prefix to /system.
|
||||
# Device board config should override the value to /product when needed by:
|
||||
#
|
||||
# PRODUCT_PRODUCT_PROPERTIES += ro.postinstall.fstab.prefix=/product
|
||||
#
|
||||
# It then uses ${ro.postinstall.fstab.prefix}/etc/fstab.postinstall to
|
||||
# mount system_other partition.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.postinstall.fstab.prefix=/system
|
||||
|
||||
# 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))
|
||||
enable_target_debugging := true
|
||||
ifneq (,$(user_variant))
|
||||
# Target is secure in user builds.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.secure=1
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += security.perf_harden=1
|
||||
|
||||
ifeq ($(user_variant),user)
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.adb.secure=1
|
||||
endif
|
||||
|
||||
ifneq ($(user_variant),userdebug)
|
||||
# Disable debugging in plain user builds.
|
||||
enable_target_debugging :=
|
||||
endif
|
||||
|
||||
# Disallow mock locations by default for user builds
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.allow.mock.location=0
|
||||
|
||||
else # !user_variant
|
||||
# Turn on checkjni for non-user builds.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.kernel.android.checkjni=1
|
||||
# Set device insecure for non-user builds.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.secure=0
|
||||
# Allow mock locations by default for non user builds
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.allow.mock.location=1
|
||||
endif # !user_variant
|
||||
|
||||
ifeq (true,$(strip $(enable_target_debugging)))
|
||||
# Target is more debuggable and adbd is on by default
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.debuggable=1
|
||||
# Enable Dalvik lock contention logging.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += dalvik.vm.lockprof.threshold=500
|
||||
else # !enable_target_debugging
|
||||
# Target is less debuggable and adbd is off by default
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.debuggable=0
|
||||
endif # !enable_target_debugging
|
||||
|
||||
ifneq ($(filter sdk sdk_addon,$(MAKECMDGOALS)),)
|
||||
_is_sdk_build := true
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_BUILD_VARIANT),eng)
|
||||
ifneq ($(filter ro.setupwizard.mode=ENABLED, $(call collapse-pairs, $(ADDITIONAL_SYSTEM_PROPERTIES))),)
|
||||
# Don't require the setup wizard on eng builds
|
||||
ADDITIONAL_SYSTEM_PROPERTIES := $(filter-out ro.setupwizard.mode=%,\
|
||||
$(call collapse-pairs, $(ADDITIONAL_SYSTEM_PROPERTIES))) \
|
||||
ro.setupwizard.mode=OPTIONAL
|
||||
endif
|
||||
ifndef _is_sdk_build
|
||||
# To speedup startup of non-preopted builds, don't verify or compile the boot image.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += dalvik.vm.image-dex2oat-filter=extract
|
||||
endif
|
||||
# b/323566535
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += init.svc_debug.no_fatal.zygote=true
|
||||
endif
|
||||
|
||||
ifdef _is_sdk_build
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += xmpp.auto-presence=true
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.config.nocheckin=yes
|
||||
endif
|
||||
|
||||
_is_sdk_build :=
|
||||
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += net.bt.name=Android
|
||||
|
||||
# This property is set by flashing debug boot image, so default to false.
|
||||
ADDITIONAL_SYSTEM_PROPERTIES += ro.force.debuggable=0
|
||||
|
||||
config_enable_uffd_gc := \
|
||||
$(firstword $(OVERRIDE_ENABLE_UFFD_GC) $(PRODUCT_ENABLE_UFFD_GC) default)
|
||||
|
||||
# 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_SYSTEM_PROPERTIES := $(strip $(ADDITIONAL_SYSTEM_PROPERTIES))
|
||||
ADDITIONAL_PRODUCT_PROPERTIES := $(strip $(ADDITIONAL_PRODUCT_PROPERTIES))
|
||||
ADDITIONAL_VENDOR_PROPERTIES := $(strip $(ADDITIONAL_VENDOR_PROPERTIES))
|
||||
|
||||
.KATI_READONLY += \
|
||||
ADDITIONAL_SYSTEM_PROPERTIES \
|
||||
ADDITIONAL_PRODUCT_PROPERTIES \
|
||||
ADDITIONAL_VENDOR_PROPERTIES
|
Reference in New Issue
Block a user