build_image: don't call append2simg for FEC
append2simg can be slow, so generate error correction data before verity data is appended, and append all metadata to the image at the same time. Needs matching changes from I09349368925e5e2f2a7961a712a1e933eb0b9ec8 Bug: 26251929 Change-Id: Iea8cee0aee353b4d029d9581e8fbd68ec7b7dd4b
This commit is contained in:
@@ -129,8 +129,8 @@ def AdjustPartitionSizeForVerity(partition_size, fec_supported):
|
||||
|
||||
AdjustPartitionSizeForVerity.results = {}
|
||||
|
||||
def BuildVerityFEC(sparse_image_path, verity_fec_path, prop_dict):
|
||||
cmd = "fec -e %s %s" % (sparse_image_path, verity_fec_path)
|
||||
def BuildVerityFEC(sparse_image_path, verity_path, verity_fec_path):
|
||||
cmd = "fec -e %s %s %s" % (sparse_image_path, verity_path, verity_fec_path)
|
||||
print cmd
|
||||
status, output = commands.getstatusoutput(cmd)
|
||||
if status:
|
||||
@@ -192,10 +192,21 @@ def Append(target, file_to_append, error_message):
|
||||
return True
|
||||
|
||||
def BuildVerifiedImage(data_image_path, verity_image_path,
|
||||
verity_metadata_path):
|
||||
verity_metadata_path, verity_fec_path,
|
||||
fec_supported):
|
||||
if not Append(verity_image_path, verity_metadata_path,
|
||||
"Could not append verity metadata!"):
|
||||
return False
|
||||
|
||||
if fec_supported:
|
||||
# build FEC for the entire partition, including metadata
|
||||
if not BuildVerityFEC(data_image_path, verity_image_path,
|
||||
verity_fec_path):
|
||||
return False
|
||||
|
||||
if not Append(verity_image_path, verity_fec_path, "Could not append FEC!"):
|
||||
return False
|
||||
|
||||
if not Append2Simg(data_image_path, verity_image_path,
|
||||
"Could not append verity data!"):
|
||||
return False
|
||||
@@ -261,20 +272,12 @@ def MakeVerityEnabledImage(out_file, fec_supported, prop_dict):
|
||||
# build the full verified image
|
||||
if not BuildVerifiedImage(out_file,
|
||||
verity_image_path,
|
||||
verity_metadata_path):
|
||||
verity_metadata_path,
|
||||
verity_fec_path,
|
||||
fec_supported):
|
||||
shutil.rmtree(tempdir_name, ignore_errors=True)
|
||||
return False
|
||||
|
||||
if fec_supported:
|
||||
# build FEC for the entire partition, including metadata
|
||||
if not BuildVerityFEC(out_file, verity_fec_path, prop_dict):
|
||||
shutil.rmtree(tempdir_name, ignore_errors=True)
|
||||
return False
|
||||
|
||||
if not Append2Simg(out_file, verity_fec_path, "Could not append FEC!"):
|
||||
shutil.rmtree(tempdir_name, ignore_errors=True)
|
||||
return False
|
||||
|
||||
shutil.rmtree(tempdir_name, ignore_errors=True)
|
||||
return True
|
||||
|
||||
|
Reference in New Issue
Block a user