OSDN Git Service

fix signing user builds
authorDoug Zongker <dougz@android.com>
Fri, 21 Aug 2009 00:38:42 +0000 (17:38 -0700)
committerDoug Zongker <dougz@android.com>
Fri, 21 Aug 2009 01:02:47 +0000 (18:02 -0700)
When unzipping a target-files which has been signed with OTA key
replacement, you'll get "overwrite this file?" prompts because the key
files appear in the zip files twice.  Suppress these prompts.

Many developer phone products don't define PRODUCT_OTA_PUBLIC_KEYS, so
add a default key.

This change doesn't affect device code.

tools/releasetools/common.py
tools/releasetools/sign_target_files_apks

index 5e5b856..2e3138c 100644 (file)
@@ -144,7 +144,7 @@ def UnzipTemp(filename):
 
   tmp = tempfile.mkdtemp(prefix="targetfiles-")
   OPTIONS.tempfiles.append(tmp)
-  p = Run(["unzip", "-q", filename, "-d", tmp], stdout=subprocess.PIPE)
+  p = Run(["unzip", "-o", "-q", filename, "-d", tmp], stdout=subprocess.PIPE)
   p.communicate()
   if p.returncode != 0:
     raise ExternalError("failed to unzip input target-files \"%s\"" %
index 6dd8ede..158845c 100755 (executable)
@@ -272,8 +272,13 @@ def ReplaceOtaKeys(input_tf_zip, output_tf_zip):
     k = m.group(1)
     mapped_keys.append(OPTIONS.key_map.get(k, k) + ".x509.pem")
 
-  print "using:\n   ", "\n   ".join(mapped_keys)
-  print "for OTA package verification"
+  if mapped_keys:
+    print "using:\n   ", "\n   ".join(mapped_keys)
+    print "for OTA package verification"
+  else:
+    mapped_keys.append(
+        OPTIONS.key_map["build/target/product/security/testkey"] + ".x509.pem")
+    print "META/otakeys.txt has no keys; using", mapped_keys[0]
 
   # recovery uses a version of the key that has been slightly
   # predigested (by DumpPublicKey.java) and put in res/keys.