Revert "Always turn on compatible property"
This reverts commit 9994e96c7d5833c6619a5b089dcf288fcbe7ee97.
Reason for revert: broken targets on the internal branch
Change-Id: Ic440fb1ca6ae5774a1d51e8fe1f3724426511841
diff --git a/core/config.mk b/core/config.mk
index 9c04fe0..f860c43 100644
--- a/core/config.mk
+++ b/core/config.mk
@@ -605,9 +605,13 @@
APICHECK_COMMAND := $(JAVA) -Xmx4g -jar $(APICHECK) --no-banner --compatible-output=no
# Boolean variable determining if the allow list for compatible properties is enabled
-PRODUCT_COMPATIBLE_PROPERTY := true
-ifeq ($(PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE),false)
- $(error PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE is obsolete)
+PRODUCT_COMPATIBLE_PROPERTY := false
+ifneq ($(PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE),)
+ PRODUCT_COMPATIBLE_PROPERTY := $(PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE)
+else ifeq ($(PRODUCT_SHIPPING_API_LEVEL),)
+ #$(warning no product shipping level defined)
+else ifneq ($(call math_lt,27,$(PRODUCT_SHIPPING_API_LEVEL)),)
+ PRODUCT_COMPATIBLE_PROPERTY := true
endif
.KATI_READONLY := \
diff --git a/core/main.mk b/core/main.mk
index 60f0bfa..9b19761 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -193,7 +193,11 @@
# 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
+ifeq ($(PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE),true)
+ADDITIONAL_SYSTEM_PROPERTIES += ro.actionable_compatible_property.enabled=false
+else
+ADDITIONAL_SYSTEM_PROPERTIES += ro.actionable_compatible_property.enabled=${PRODUCT_COMPATIBLE_PROPERTY}
+endif
# Add the system server compiler filter if they are specified for the product.
ifneq (,$(PRODUCT_SYSTEM_SERVER_COMPILER_FILTER))
diff --git a/core/product.mk b/core/product.mk
index b903115..666e390 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -315,6 +315,9 @@
# Whether the Scudo hardened allocator is disabled platform-wide
_product_single_value_vars += PRODUCT_DISABLE_SCUDO
+# A flag to override PRODUCT_COMPATIBLE_PROPERTY
+_product_single_value_vars += PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE
+
# List of extra VNDK versions to be included
_product_list_vars += PRODUCT_EXTRA_VNDK_VERSIONS
@@ -322,6 +325,9 @@
# partitions uses PLATFORM_VNDK_VERSION.
_product_single_value_vars += PRODUCT_PRODUCT_VNDK_VERSION
+# Whether the list of allowed of actionable compatible properties should be disabled or not
+_product_single_value_vars += PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE
+
_product_single_value_vars += PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS
_product_single_value_vars += PRODUCT_ENFORCE_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT
_product_list_vars += PRODUCT_ARTIFACT_SYSTEM_CERTIFICATE_REQUIREMENT_ALLOW_LIST
diff --git a/core/soong_config.mk b/core/soong_config.mk
index fdc526b..809a4d6 100644
--- a/core/soong_config.mk
+++ b/core/soong_config.mk
@@ -197,6 +197,7 @@
$(call add_json_list, ProductPublicSepolicyDirs, $(PRODUCT_PUBLIC_SEPOLICY_DIRS))
$(call add_json_list, ProductPrivateSepolicyDirs, $(PRODUCT_PRIVATE_SEPOLICY_DIRS))
+$(call add_json_bool, ProductCompatibleProperty, $(PRODUCT_COMPATIBLE_PROPERTY))
$(call add_json_list, TargetFSConfigGen, $(TARGET_FS_CONFIG_GEN))