From 960de8efcd1d4faa5b0d25c91eb7f7f6fbf97693 Mon Sep 17 00:00:00 2001 From: Adam Lesinski <adamlesinski@google.com> Date: Wed, 16 Aug 2017 15:52:53 -0700 Subject: [PATCH] Enable apps to build with resource namespaces Setting LOCAL_AAPT_NAMESPACES := true enables namespaces for an app and requires any library resources to be fully qualified by their package. Test: manual Bug: 73885582 Change-Id: Ia6bfc82ee8b8d6335f8e7c2abe94ce36467a012d Merged-In: Ia6bfc82ee8b8d6335f8e7c2abe94ce36467a012d --- core/clear_vars.mk | 1 + core/package_internal.mk | 7 ++++++- core/static_java_library.mk | 5 ++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/core/clear_vars.mk b/core/clear_vars.mk index fc6b83c6d..1022693cc 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -7,6 +7,7 @@ LOCAL_32_BIT_ONLY:= LOCAL_AAPT2_ONLY:= LOCAL_AAPT_FLAGS:= LOCAL_AAPT_INCLUDE_ALL_RESOURCES:= +LOCAL_AAPT_NAMESPACES:= LOCAL_ADDITIONAL_CERTIFICATES:= LOCAL_ADDITIONAL_DEPENDENCIES:= LOCAL_ADDITIONAL_HTML_DIR:= diff --git a/core/package_internal.mk b/core/package_internal.mk index 0938c991f..b731bfaa3 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -407,8 +407,13 @@ endif # renderscript_target_api < 21 endif # renderscript_target_api is set my_asset_dirs := $(LOCAL_ASSET_DIR) my_full_asset_paths := $(all_assets) + # Add AAPT2 link specific flags. -$(my_res_package): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --no-static-lib-packages +$(my_res_package): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) +ifndef LOCAL_AAPT_NAMESPACES + $(my_res_package): PRIVATE_AAPT_FLAGS += --no-static-lib-packages +endif + include $(BUILD_SYSTEM)/aapt2.mk else # LOCAL_USE_AAPT2 diff --git a/core/static_java_library.mk b/core/static_java_library.mk index 77bb498e9..d92d8c086 100644 --- a/core/static_java_library.mk +++ b/core/static_java_library.mk @@ -131,7 +131,10 @@ endif # add --non-constant-id to prevent inlining constants. # AAR needs text symbol file R.txt. ifdef LOCAL_USE_AAPT2 -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --static-lib --no-static-lib-packages +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS := $(LOCAL_AAPT_FLAGS) --static-lib +ifndef LOCAL_AAPT_NAMESPACES + $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_AAPT_FLAGS += --no-static-lib-packages +endif $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_PRODUCT_AAPT_CONFIG := $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_PRODUCT_AAPT_PREF_CONFIG := $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_AAPT_CHARACTERISTICS :=