Merge "build_image.py: Verity support for flashing non partition spanning fs"
This commit is contained in:
commit
6ddc360065
1 changed files with 20 additions and 3 deletions
|
@ -231,11 +231,14 @@ def BuildImage(in_dir, prop_dict, out_file):
|
||||||
fs_type = prop_dict.get("fs_type", "")
|
fs_type = prop_dict.get("fs_type", "")
|
||||||
run_fsck = False
|
run_fsck = False
|
||||||
|
|
||||||
|
fs_spans_partition = True
|
||||||
|
if fs_type.startswith("squash"):
|
||||||
|
fs_spans_partition = False
|
||||||
|
|
||||||
is_verity_partition = "verity_block_device" in prop_dict
|
is_verity_partition = "verity_block_device" in prop_dict
|
||||||
verity_supported = prop_dict.get("verity") == "true"
|
verity_supported = prop_dict.get("verity") == "true"
|
||||||
# adjust the partition size to make room for the hashes if this is to be
|
# adjust the partition size to make room for the hashes if this is to be verified
|
||||||
# verified
|
if verity_supported and is_verity_partition and fs_spans_partition:
|
||||||
if verity_supported and is_verity_partition:
|
|
||||||
partition_size = int(prop_dict.get("partition_size"))
|
partition_size = int(prop_dict.get("partition_size"))
|
||||||
adjusted_size = AdjustPartitionSizeForVerity(partition_size)
|
adjusted_size = AdjustPartitionSizeForVerity(partition_size)
|
||||||
if not adjusted_size:
|
if not adjusted_size:
|
||||||
|
@ -301,6 +304,20 @@ def BuildImage(in_dir, prop_dict, out_file):
|
||||||
if exit_code != 0:
|
if exit_code != 0:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
if not fs_spans_partition:
|
||||||
|
mount_point = prop_dict.get("mount_point")
|
||||||
|
partition_size = int(prop_dict.get("partition_size"))
|
||||||
|
image_size = os.stat(out_file).st_size
|
||||||
|
if image_size > partition_size:
|
||||||
|
print "Error: %s image size of %d is larger than partition size of %d" % (mount_point, image_size, partition_size)
|
||||||
|
return False
|
||||||
|
if verity_supported and is_verity_partition:
|
||||||
|
if 2 * image_size - AdjustPartitionSizeForVerity(image_size) > partition_size:
|
||||||
|
print "Error: No more room on %s to fit verity data" % mount_point
|
||||||
|
return False
|
||||||
|
prop_dict["original_partition_size"] = prop_dict["partition_size"]
|
||||||
|
prop_dict["partition_size"] = str(image_size)
|
||||||
|
|
||||||
# create the verified image if this is to be verified
|
# create the verified image if this is to be verified
|
||||||
if verity_supported and is_verity_partition:
|
if verity_supported and is_verity_partition:
|
||||||
if not MakeVerityEnabledImage(out_file, prop_dict):
|
if not MakeVerityEnabledImage(out_file, prop_dict):
|
||||||
|
|
Loading…
Reference in a new issue