From 7b96c59751db3ea295ea1677374525e6c4b59cc4 Mon Sep 17 00:00:00 2001 From: Jiyong Park Date: Fri, 1 May 2020 10:29:09 +0900 Subject: [PATCH] Stem names are used in apkcerts.txt _apkcerts_write_line has assumed that the stem name of a package is the same as the module of it. That assumption however breaks for APK-in-APEX, in which case the stem name is Foo while the module name is Foo.com.android.bar (where com.android.bar is the name of the APEX where the APK is in). Fixing the issue by recording the stem name and use it. Bug: 155440232 Test: OVERRIDE_TARGET_FLATTEN_APEX=true m apkcerts-list and check the generat4ed apkcerts txt file to see that it has Tethering.apk instead of Tethering.com.android.tethering.apex Exempt-From-Owner-Approval: cherry-pick from AOSP Merged-In: I56bc55e2231eb946617a9d6f97d55c9b61f3bff7 (cherry picked from commit f58fd52b1435b87b11539ab792b7651d10801231) Change-Id: I56bc55e2231eb946617a9d6f97d55c9b61f3bff7 --- core/Makefile | 6 +++--- core/soong_app_prebuilt.mk | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/core/Makefile b/core/Makefile index 048a0f9519..69ee80ff12 100644 --- a/core/Makefile +++ b/core/Makefile @@ -874,7 +874,7 @@ endif # ----------------------------------------------------------------- # Cert-to-package mapping. Used by the post-build signing tools. # Use a macro to add newline to each echo command -# $1 package name +# $1 stem name of the package # $2 certificate # $3 private key # $4 compressed @@ -904,8 +904,8 @@ $(APKCERTS_FILE): @rm -f $@ $(foreach p,$(sort $(PACKAGES)),\ $(if $(PACKAGES.$(p).EXTERNAL_KEY),\ - $(call _apkcerts_write_line,$(p),"EXTERNAL","",$(PACKAGES.$(p).COMPRESSED),$(PACKAGES.$(p).PARTITION),$@),\ - $(call _apkcerts_write_line,$(p),$(PACKAGES.$(p).CERTIFICATE),$(PACKAGES.$(p).PRIVATE_KEY),$(PACKAGES.$(p).COMPRESSED),$(PACKAGES.$(p).PARTITION),$@))) + $(call _apkcerts_write_line,$(PACKAGES.$(p).STEM),"EXTERNAL","",$(PACKAGES.$(p).COMPRESSED),$(PACKAGES.$(p).PARTITION),$@),\ + $(call _apkcerts_write_line,$(PACKAGES.$(p).STEM),$(PACKAGES.$(p).CERTIFICATE),$(PACKAGES.$(p).PRIVATE_KEY),$(PACKAGES.$(p).COMPRESSED),$(PACKAGES.$(p).PARTITION),$@))) # In case value of PACKAGES is empty. $(hide) touch $@ diff --git a/core/soong_app_prebuilt.mk b/core/soong_app_prebuilt.mk index 6dc396c9ef..a3de688ee2 100644 --- a/core/soong_app_prebuilt.mk +++ b/core/soong_app_prebuilt.mk @@ -157,6 +157,12 @@ endif include $(BUILD_SYSTEM)/app_certificate_validate.mk PACKAGES.$(LOCAL_MODULE).OVERRIDES := $(strip $(LOCAL_OVERRIDES_PACKAGES)) +ifneq ($(LOCAL_MODULE_STEM),) + PACKAGES.$(LOCAL_MODULE).STEM := $(LOCAL_MODULE_STEM) +else + PACKAGES.$(LOCAL_MODULE).STEM := $(LOCAL_MODULE) +endif + # Set a actual_partition_tag (calculated in base_rules.mk) for the package. PACKAGES.$(LOCAL_MODULE).PARTITION := $(actual_partition_tag)