Allow products to define their own hidden api stubs
This enables other verticals/products to expand the list of APIs that
apps can call on those devices.
Bug: 112190341
Test: local test with app
Merged-In: I4dc983273a1beb83d0b81ab026945880a10bbd8c
Change-Id: I4dc983273a1beb83d0b81ab026945880a10bbd8c
(cherry picked from commit f9bf755d0a7d4e77061995b045ad5ef42b3ebd78)
diff --git a/core/dex_preopt.mk b/core/dex_preopt.mk
index 6c0a4b4..a7caac1 100644
--- a/core/dex_preopt.mk
+++ b/core/dex_preopt.mk
@@ -107,6 +107,19 @@
HIDDENAPI_STUBS_TEST := \
$(call hiddenapi_stubs_jar,android_test_stubs_current)
+# Allow products to define their own stubs for custom product jars that apps can use.
+ifdef PRODUCT_HIDDENAPI_STUBS
+ HIDDENAPI_STUBS += $(foreach stub,$(PRODUCT_HIDDENAPI_STUBS), $(call hiddenapi_stubs_jar,$(stub)))
+endif
+
+ifdef PRODUCT_HIDDENAPI_STUBS_SYSTEM
+ HIDDENAPI_STUBS_SYSTEM += $(foreach stub,$(PRODUCT_HIDDENAPI_STUBS_SYSTEM), $(call hiddenapi_stubs_jar,$(stub)))
+endif
+
+ifdef PRODUCT_HIDDENAPI_STUBS_TEST
+ HIDDENAPI_STUBS_TEST += $(foreach stub,$(PRODUCT_HIDDENAPI_STUBS_TEST), $(call hiddenapi_stubs_jar,$(stub)))
+endif
+
# Singleton rule which applies $(HIDDENAPI) on all boot class path dex files.
# Inputs are filled with `hiddenapi-copy-dex-files` rules.
$(INTERNAL_PLATFORM_HIDDENAPI_PRIVATE_LIST): PRIVATE_HIDDENAPI_STUBS := $(HIDDENAPI_STUBS)