OSDN Git Service

allow prebuilts to specify LOCAL_CERTIFICATE so they can be resigned
authorDoug Zongker <dougz@android.com>
Thu, 27 Aug 2009 01:22:43 +0000 (18:22 -0700)
committerDoug Zongker <dougz@android.com>
Thu, 27 Aug 2009 01:22:43 +0000 (18:22 -0700)
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).

core/prebuilt.mk

index 34d2453..4cbbb99 100644 (file)
@@ -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)