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
diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py
index afb1c2f..e6ad18b 100755
--- a/tools/releasetools/build_image.py
+++ b/tools/releasetools/build_image.py
@@ -129,8 +129,8 @@
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 @@
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 @@
# 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