Merge "Use product-based inclusive rule for enforcing RRO" into oc-dev
diff --git a/core/main.mk b/core/main.mk
index 4fbfc73..8768b0b 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -503,7 +503,7 @@
 ADDITIONAL_BUILD_PROPERTIES := $(strip $(ADDITIONAL_BUILD_PROPERTIES))
 .KATI_READONLY := ADDITIONAL_BUILD_PROPERTIES
 
-ifeq ($(BOARD_ENFORCE_RRO),true)
+ifneq ($(PRODUCT_ENFORCE_RRO_TARGETS),)
 ENFORCE_RRO_SOURCES :=
 endif
 
@@ -577,7 +577,7 @@
 # Enforce to generate all RRO packages for modules having resource
 # overlays.
 # -------------------------------------------------------------------
-ifeq ($(BOARD_ENFORCE_RRO),true)
+ifneq ($(PRODUCT_ENFORCE_RRO_TARGETS),)
 $(call generate_all_enforce_rro_packages)
 endif
 
diff --git a/core/package_internal.mk b/core/package_internal.mk
index 8a31552..bcdc72e 100644
--- a/core/package_internal.mk
+++ b/core/package_internal.mk
@@ -97,9 +97,11 @@
       $(addprefix $(dir)/, $(LOCAL_RESOURCE_DIR)))))
 
 enforce_rro_enabled :=
-ifeq ($(BOARD_ENFORCE_RRO),true)
-  ifeq (,$(filter $(LOCAL_PACKAGE_NAME), $(BOARD_ENFORCE_RRO_EXEMPT_SOURCES)))
-    ifneq ($(package_resource_overlays),)
+ifneq ($(PRODUCT_ENFORCE_RRO_TARGETS),)
+  ifneq ($(package_resource_overlays),)
+    ifeq ($(PRODUCT_ENFORCE_RRO_TARGETS),*)
+      enforce_rro_enabled := true
+    else ifneq (,$(filter $(LOCAL_PACKAGE_NAME), $(PRODUCT_ENFORCE_RRO_TARGETS)))
       enforce_rro_enabled := true
     endif
   endif
@@ -702,4 +704,4 @@
     $(enforce_rro_use_res_lib), \
     $(package_resource_overlays) \
     )
-endif  # enforce_rro_enabled
\ No newline at end of file
+endif  # enforce_rro_enabled
diff --git a/core/product.mk b/core/product.mk
index eeaf700..1e5a30e 100644
--- a/core/product.mk
+++ b/core/product.mk
@@ -94,6 +94,7 @@
     PRODUCT_EXTRA_RECOVERY_KEYS \
     PRODUCT_PACKAGE_OVERLAYS \
     DEVICE_PACKAGE_OVERLAYS \
+    PRODUCT_ENFORCE_RRO_TARGETS \
     PRODUCT_SDK_ATREE_FILES \
     PRODUCT_SDK_ADDON_NAME \
     PRODUCT_SDK_ADDON_COPY_FILES \
diff --git a/core/product_config.mk b/core/product_config.mk
index 5675f2f..57b7669 100644
--- a/core/product_config.mk
+++ b/core/product_config.mk
@@ -425,3 +425,7 @@
 # Whether the product is an Android Things variant.
 PRODUCT_IOT := \
     $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_IOT))
+
+# Package list to apply enforcing RRO.
+PRODUCT_ENFORCE_RRO_TARGETS := \
+    $(strip $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_ENFORCE_RRO_TARGETS))