Fix unsparse image reuse bug.

This would cause an existing sparse image to be reused by a
subsequent build, leading to verity failures.

Change-Id: I2082df3dfba014515c9267e02189fe9987a56830
This commit is contained in:
Geremy Condra 2013-12-05 17:09:18 -08:00
parent e64a7058c9
commit 6e8f53c276
1 changed files with 6 additions and 3 deletions

View File

@ -130,12 +130,15 @@ def BuildVerifiedImage(data_image_path, verity_image_path, verity_metadata_path)
return False
return True
def UnsparseImage(sparse_image_path):
def UnsparseImage(sparse_image_path, replace=True):
img_dir = os.path.dirname(sparse_image_path)
unsparse_image_path = "unsparse_" + os.path.basename(sparse_image_path)
unsparse_image_path = os.path.join(img_dir, unsparse_image_path)
if os.path.exists(unsparse_image_path):
return True, unsparse_image_path
if replace:
os.unlink(unsparse_image_path)
else:
return True, unsparse_image_path
inflate_command = ["simg2img", sparse_image_path, unsparse_image_path]
exit_code = RunCommand(inflate_command)
if exit_code != 0:
@ -256,7 +259,7 @@ def BuildImage(in_dir, prop_dict, out_file):
return False
if run_fsck and prop_dict.get("skip_fsck") != "true":
success, unsparse_image = UnsparseImage(out_file)
success, unsparse_image = UnsparseImage(out_file, replace=False)
if not success:
return False