From a08a1015bc22df40f186337b0bf7c664809399f0 Mon Sep 17 00:00:00 2001 From: Jakub Adamek Date: Mon, 3 Oct 2016 09:56:16 +0100 Subject: [PATCH] Install runtime resource overlay without subdir. Runtime resource overlay is a bare APK with just the overlaid resources. There is no need for additional subdir. See http://go/sku-colors. Bug: 31692079 Change-Id: Iff3d58f941e764a7be3ec04cafeefd592bd8b944 --- core/base_rules.mk | 5 ++++- core/build_rro_package.mk | 22 ++++++++++++++++++++++ core/clear_vars.mk | 2 ++ core/config.mk | 1 + 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 core/build_rro_package.mk diff --git a/core/base_rules.mk b/core/base_rules.mk index 6722af4f2..6fc2935b2 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -210,7 +210,10 @@ ifneq (true,$(LOCAL_UNINSTALLABLE_MODULE)) # Apk and its attachments reside in its own subdir. ifeq ($(LOCAL_MODULE_CLASS),APPS) # framework-res.apk doesn't like the additional layer. - ifneq ($(LOCAL_NO_STANDARD_LIBRARIES),true) + ifeq ($(LOCAL_NO_STANDARD_LIBRARIES),true) + # Neither do Runtime Resource Overlay apks, which contain just the overlaid resources. + else ifeq ($(LOCAL_IS_RUNTIME_RESOURCE_OVERLAY),true) + else my_module_path := $(my_module_path)/$(LOCAL_MODULE) endif endif diff --git a/core/build_rro_package.mk b/core/build_rro_package.mk new file mode 100644 index 000000000..24cd9a3c4 --- /dev/null +++ b/core/build_rro_package.mk @@ -0,0 +1,22 @@ +######################################################################### +## Standard rules for installing runtime resouce overlay APKs. +## +## Set LOCAL_RRO_SKU to the SKU name if the package should apply only to +## a particular SKU as set by ro.boot.vendor.overlay.sku system property. +## +######################################################################### + +LOCAL_IS_RUNTIME_RESOURCE_OVERLAY := true + +ifneq ($(LOCAL_SRC_FILES),) + $(error runtime resource overlay package should not contain sources) +endif + +ifeq (S(LOCAL_RRO_SKU),) + LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/overlay +else + LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/overlay/$(LOCAL_RRO_SKU) +endif + +include $(BUILD_SYSTEM)/package.mk + diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 588661058..fdaa624fc 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -363,6 +363,8 @@ LOCAL_CLANG_64:= LOCAL_INIT_RC_32:= LOCAL_INIT_RC_64:= LOCAL_JAVA_LANGUAGE_VERSION:= +LOCAL_IS_RUNTIME_RESOURCE_OVERLAY:= +LOCAL_RRO_SKU:= # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to # iterate over thousands of entries every time. diff --git a/core/config.mk b/core/config.mk index 94c880f7a..61520605b 100644 --- a/core/config.mk +++ b/core/config.mk @@ -85,6 +85,7 @@ BUILD_EXECUTABLE:= $(BUILD_SYSTEM)/executable.mk BUILD_HOST_EXECUTABLE:= $(BUILD_SYSTEM)/host_executable.mk BUILD_PACKAGE:= $(BUILD_SYSTEM)/package.mk BUILD_PHONY_PACKAGE:= $(BUILD_SYSTEM)/phony_package.mk +BUILD_RRO_PACKAGE:= $(BUILD_SYSTEM)/build_rro_package.mk BUILD_HOST_PREBUILT:= $(BUILD_SYSTEM)/host_prebuilt.mk BUILD_PREBUILT:= $(BUILD_SYSTEM)/prebuilt.mk BUILD_MULTI_PREBUILT:= $(BUILD_SYSTEM)/multi_prebuilt.mk