am 15604b84: use imgdiff -z to diff zipfiles

Merge commit '15604b84e246514da6c9721266919003f734380b' into eclair-plus-aosp

* commit '15604b84e246514da6c9721266919003f734380b':
  use imgdiff -z to diff zipfiles
diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files
index afd31aa..fc6a4c6 100755
--- a/tools/releasetools/ota_from_target_files
+++ b/tools/releasetools/ota_from_target_files
@@ -481,6 +481,15 @@
     except KeyError:
       return 0
 
+
+DIFF_METHOD_BY_EXT = {
+    ".gz" : "imgdiff",
+    ".zip" : ["imgdiff", "-z"],
+    ".jar" : ["imgdiff", "-z"],
+    ".apk" : ["imgdiff", "-z"],
+    }
+
+
 def WriteIncrementalOTAPackage(target_zip, source_zip, output_zip):
   source_version = GetRecoveryAPIVersion(source_zip)
 
@@ -526,9 +535,8 @@
       verbatim_targets.append((fn, tf.size))
     elif tf.sha1 != sf.sha1:
       # File is different; consider sending as a patch
-      diff_method = "bsdiff"
-      if tf.name.endswith(".gz"):
-        diff_method = "imgdiff"
+      ext = os.path.splitext(tf.name)[1]
+      diff_method = DIFF_METHOD_BY_EXT.get(ext, "bsdiff")
       d = Difference(tf, sf, diff_method)
       if d is not None:
         print fn, tf.size, len(d), (float(len(d)) / tf.size)