summaryrefslogtreecommitdiff
path: root/tools/releasetools/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/releasetools/common.py')
-rw-r--r--tools/releasetools/common.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/tools/releasetools/common.py b/tools/releasetools/common.py
index cc75d2c9cd..bbdff6e50b 100644
--- a/tools/releasetools/common.py
+++ b/tools/releasetools/common.py
@@ -2865,7 +2865,7 @@ def ZipWriteStr(zip_file, zinfo_or_arcname, data, perms=None,
zipfile.ZIP64_LIMIT = saved_zip64_limit
-def ZipDelete(zip_filename, entries):
+def ZipDelete(zip_filename, entries, force=False):
"""Deletes entries from a ZIP file.
Since deleting entries from a ZIP file is not supported, it shells out to
@@ -2883,8 +2883,15 @@ def ZipDelete(zip_filename, entries):
# If list is empty, nothing to do
if not entries:
return
- cmd = ["zip", "-d", zip_filename] + entries
- RunAndCheckOutput(cmd)
+ if force:
+ cmd = ["zip", "-q", "-d", zip_filename] + entries
+ else:
+ cmd = ["zip", "-d", zip_filename] + entries
+ if force:
+ p = Run(cmd)
+ p.wait()
+ else:
+ RunAndCheckOutput(cmd)
def ZipClose(zip_file):
@@ -3979,6 +3986,8 @@ def GetBootImageTimestamp(boot_img):
def IsSparseImage(filepath):
+ if not os.path.exists(filepath):
+ return False
with open(filepath, 'rb') as fp:
# Magic for android sparse image format
# https://source.android.com/devices/bootloader/images