Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63e2f49f authored by Tao Bao's avatar Tao Bao
Browse files

releasetools: Skip validating non-sparse images.

Targets can define 'TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true' to
generate non-sparse system images, but validate_target_files.py doesn't
work with such images. This CL adds a workaround to temporarily skip the
file consistency check for such images.

Bug: 79616357
Test: Run validate_target_files.py on a target_files.zip that's not
      using sparse image.
Test: Run validate_target_files.py on marlin target_files.zip (which
      uses sparse image).
Change-Id: I1f4066c5b3fec595b10cab10283d62c1c5a6c624
parent fc56b59d
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ def ValidateFileAgainstSha1(input_tmp, file_name, file_path, expected_sha1):
          file_name, actual_sha1, expected_sha1)


def ValidateFileConsistency(input_zip, input_tmp):
def ValidateFileConsistency(input_zip, input_tmp, info_dict):
  """Compare the files from image files and unpacked folders."""

  def CheckAllFiles(which):
@@ -103,6 +103,11 @@ def ValidateFileConsistency(input_zip, input_tmp):

  logging.info('Validating file consistency.')

  # TODO(b/79617342): Validate non-sparse images.
  if info_dict.get('extfs_sparse_flag') != '-s':
    logging.warning('Skipped due to target using non-sparse images')
    return

  # Verify IMAGES/system.img.
  CheckAllFiles('system')

@@ -324,10 +329,10 @@ def main():
  logging.info("Unzipping the input target_files.zip: %s", args.target_files)
  input_tmp = common.UnzipTemp(args.target_files)

  info_dict = common.LoadInfoDict(input_tmp)
  with zipfile.ZipFile(args.target_files, 'r') as input_zip:
    ValidateFileConsistency(input_zip, input_tmp)
    ValidateFileConsistency(input_zip, input_tmp, info_dict)

  info_dict = common.LoadInfoDict(input_tmp)
  ValidateInstallRecoveryScript(input_tmp, info_dict)

  ValidateVerifiedBootImages(input_tmp, info_dict, options)