From 641e61cb536be283fea7c368d8c390f72ab9f502 Mon Sep 17 00:00:00 2001 From: Shinichiro Hamaji Date: Fri, 13 May 2016 16:03:24 +0900 Subject: [PATCH] Make apks depend on their certificates Bug: 27954979 Change-Id: I02db576cb80cbb9dd684d931da02e1b3b3efdf37 --- core/dpi_specific_apk.mk | 5 +++-- core/package_internal.mk | 5 +++-- core/prebuilt_internal.mk | 3 +++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/core/dpi_specific_apk.mk b/core/dpi_specific_apk.mk index dfd55cd55..2f81ba072 100644 --- a/core/dpi_specific_apk.mk +++ b/core/dpi_specific_apk.mk @@ -5,6 +5,7 @@ dpi_apk_name := $(LOCAL_MODULE)_$(my_dpi) dpi_intermediate := $(call intermediates-dir-for,APPS,$(dpi_apk_name)) built_dpi_apk := $(dpi_intermediate)/package.apk +additional_certificates := $(foreach c,$(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8) # Set up all the target-specific variables. $(built_dpi_apk): PRIVATE_MODULE := $(dpi_apk_name) @@ -27,8 +28,8 @@ $(built_dpi_apk): PRIVATE_JNI_SHARED_LIBRARIES := $(jni_shared_libraries_with_ab $(built_dpi_apk): PRIVATE_JNI_SHARED_LIBRARIES_ABI := $(jni_shared_libraries_abis) $(built_dpi_apk): PRIVATE_PRIVATE_KEY := $(private_key) $(built_dpi_apk): PRIVATE_CERTIFICATE := $(certificate) -$(built_dpi_apk): PRIVATE_ADDITIONAL_CERTIFICATES := $(foreach c,\ - $(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8) +$(built_dpi_apk): $(additional_certificates) +$(built_dpi_apk): PRIVATE_ADDITIONAL_CERTIFICATES := $(additional_certificates) ifneq ($(full_classes_jar),) $(built_dpi_apk): PRIVATE_JACK_INTERMEDIATES_DIR := $(intermediates.COMMON)/jack-rsc diff --git a/core/package_internal.mk b/core/package_internal.mk index 69666256e..e0df32554 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -369,6 +369,7 @@ ifeq ($(dir $(strip $(LOCAL_CERTIFICATE))),./) endif private_key := $(LOCAL_CERTIFICATE).pk8 certificate := $(LOCAL_CERTIFICATE).x509.pem +additional_certificates := $(foreach c,$(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8) $(LOCAL_BUILT_MODULE): $(private_key) $(certificate) $(SIGNAPK_JAR) $(LOCAL_BUILT_MODULE): PRIVATE_PRIVATE_KEY := $(private_key) @@ -377,8 +378,8 @@ $(LOCAL_BUILT_MODULE): PRIVATE_CERTIFICATE := $(certificate) PACKAGES.$(LOCAL_PACKAGE_NAME).PRIVATE_KEY := $(private_key) PACKAGES.$(LOCAL_PACKAGE_NAME).CERTIFICATE := $(certificate) -$(LOCAL_BUILT_MODULE): PRIVATE_ADDITIONAL_CERTIFICATES := $(foreach c,\ - $(LOCAL_ADDITIONAL_CERTIFICATES), $(c).x509.pem $(c).pk8) +$(LOCAL_BUILT_MODULE): $(additional_certificates) +$(LOCAL_BUILT_MODULE): PRIVATE_ADDITIONAL_CERTIFICATES := $(additional_certificates) # Define the rule to build the actual package. $(LOCAL_BUILT_MODULE): $(AAPT) diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk index 22fa6a659..c4f1a7a82 100644 --- a/core/prebuilt_internal.mk +++ b/core/prebuilt_internal.mk @@ -178,6 +178,7 @@ ifeq ($(LOCAL_CERTIFICATE),EXTERNAL) LOCAL_CERTIFICATE := $(DEFAULT_SYSTEM_DEV_CERTIFICATE) PACKAGES.$(LOCAL_MODULE).EXTERNAL_KEY := 1 + $(built_module) : $(LOCAL_CERTIFICATE).pk8 $(LOCAL_CERTIFICATE).x509.pem $(built_module) : PRIVATE_PRIVATE_KEY := $(LOCAL_CERTIFICATE).pk8 $(built_module) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem endif @@ -204,6 +205,7 @@ else PACKAGES.$(LOCAL_MODULE).CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem PACKAGES := $(PACKAGES) $(LOCAL_MODULE) + $(built_module) : $(LOCAL_CERTIFICATE).pk8 $(LOCAL_CERTIFICATE).x509.pem $(built_module) : PRIVATE_PRIVATE_KEY := $(LOCAL_CERTIFICATE).pk8 $(built_module) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem endif @@ -283,6 +285,7 @@ $(error You must put all the split source apks in the same folder: $(LOCAL_PACKA endif my_src_dir := $(LOCAL_PATH)/$(my_src_dir) +$(built_apk_splits) : $(LOCAL_CERTIFICATE).pk8 $(LOCAL_CERTIFICATE).x509.pem $(built_apk_splits) : PRIVATE_PRIVATE_KEY := $(LOCAL_CERTIFICATE).pk8 $(built_apk_splits) : PRIVATE_CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem $(built_apk_splits) : $(built_module_path)/%.apk : $(my_src_dir)/%.apk | $(AAPT) -- 2.11.0