summaryrefslogtreecommitdiffstats
path: root/core/prebuilt.mk
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2009-08-26 18:22:43 -0700
committerDoug Zongker <dougz@android.com>2009-08-26 18:22:43 -0700
commit1b6d0a65fc62901f2c18d00c556bd5da50f35584 (patch)
tree52cb8d6c60f643727e904b0705d1bf8eaf686812 /core/prebuilt.mk
parent4ac1ba61075190fa9ced594c85285beff6293184 (diff)
downloadbuild-1b6d0a65fc62901f2c18d00c556bd5da50f35584.zip
build-1b6d0a65fc62901f2c18d00c556bd5da50f35584.tar.gz
build-1b6d0a65fc62901f2c18d00c556bd5da50f35584.tar.bz2
allow prebuilts to specify LOCAL_CERTIFICATE so they can be resigned
If a prebuilt specifies a LOCAL_CERTIFICATE, stick it in the PACKAGES.* collection so that the predexopt process can work on the file (which only works if the new .apk can be signed).
Diffstat (limited to 'core/prebuilt.mk')
-rw-r--r--core/prebuilt.mk15
1 files changed, 15 insertions, 0 deletions
diff --git a/core/prebuilt.mk b/core/prebuilt.mk
index 34d2453..4cbbb99 100644
--- a/core/prebuilt.mk
+++ b/core/prebuilt.mk
@@ -40,6 +40,21 @@ $(LOCAL_BUILT_MODULE) : $(LOCAL_PATH)/$(LOCAL_SRC_FILES) | $(ACP)
endif
endif
+ifeq ($(LOCAL_CERTIFICATE),)
+ # can't re-sign this package, so predexopt is not available.
+else
+
+# If this is not an absolute certificate, assign it to a generic one.
+ifeq ($(dir $(strip $(LOCAL_CERTIFICATE))),./)
+ LOCAL_CERTIFICATE := $(SRC_TARGET_DIR)/product/security/$(LOCAL_CERTIFICATE)
+endif
+
+PACKAGES.$(LOCAL_MODULE).PRIVATE_KEY := $(LOCAL_CERTIFICATE).pk8
+PACKAGES.$(LOCAL_MODULE).CERTIFICATE := $(LOCAL_CERTIFICATE).x509.pem
+PACKAGES := $(PACKAGES) $(LOCAL_MODULE)
+
+endif
+
ifneq ($(prebuilt_module_is_a_library),)
ifneq ($(LOCAL_IS_HOST_MODULE),)
$(transform-host-ranlib-copy-hack)