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

Commit 242a9e5f 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
Merged-In: I1f4066c5b3fec595b10cab10283d62c1c5a6c624
(cherry picked from commit 63e2f49f)
parent 42293db3
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -57,7 +57,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):
@@ -94,6 +94,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')

@@ -198,10 +203,10 @@ def main(argv):
  logging.info("Unzipping the input target_files.zip: %s", args[0])
  input_tmp = common.UnzipTemp(args[0])

  info_dict = common.LoadInfoDict(input_tmp)
  with zipfile.ZipFile(args[0], '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)

  # TODO: Check if the OTA keys have been properly updated (the ones on /system,