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

Commit c26dea96 authored by Tao Bao's avatar Tao Bao Committed by Gerrit Code Review
Browse files

Merge "releasetools: Fix secondary payload generation."

parents 5787711e 1248980a
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1657,9 +1657,15 @@ def GetTargetFilesZipForSecondaryImages(input_file, skip_postinstall=False):
  target_file = common.MakeTempFile(prefix="targetfiles-", suffix=".zip")
  target_zip = zipfile.ZipFile(target_file, 'w', allowZip64=True)

  input_tmp = common.UnzipTemp(input_file, UNZIP_PATTERN)
  with zipfile.ZipFile(input_file, 'r') as input_zip:
    infolist = input_zip.infolist()
    namelist = input_zip.namelist()

  # Additionally unzip 'RADIO/*' if exists.
  unzip_pattern = UNZIP_PATTERN[:]
  if any([entry.startswith('RADIO/') for entry in namelist]):
    unzip_pattern.append('RADIO/*')
  input_tmp = common.UnzipTemp(input_file, unzip_pattern)

  for info in infolist:
    unzipped_file = os.path.join(input_tmp, *info.filename.split('/'))
@@ -1675,7 +1681,7 @@ def GetTargetFilesZipForSecondaryImages(input_file, skip_postinstall=False):
    elif skip_postinstall and info.filename == POSTINSTALL_CONFIG:
      pass

    elif info.filename.startswith(('META/', 'IMAGES/')):
    elif info.filename.startswith(('META/', 'IMAGES/', 'RADIO/')):
      common.ZipWrite(target_zip, unzipped_file, arcname=info.filename)

  common.ZipClose(target_zip)
+24 −0
Original line number Diff line number Diff line
@@ -566,6 +566,8 @@ class OtaFromTargetFilesTest(unittest.TestCase):
    self.assertIn('IMAGES/boot.img', namelist)
    self.assertIn('IMAGES/system.img', namelist)
    self.assertIn('IMAGES/vendor.img', namelist)
    self.assertIn('RADIO/bootloader.img', namelist)
    self.assertIn('RADIO/modem.img', namelist)
    self.assertIn(POSTINSTALL_CONFIG, namelist)

    self.assertNotIn('IMAGES/system_other.img', namelist)
@@ -583,11 +585,33 @@ class OtaFromTargetFilesTest(unittest.TestCase):
    self.assertIn('IMAGES/boot.img', namelist)
    self.assertIn('IMAGES/system.img', namelist)
    self.assertIn('IMAGES/vendor.img', namelist)
    self.assertIn('RADIO/bootloader.img', namelist)
    self.assertIn('RADIO/modem.img', namelist)

    self.assertNotIn('IMAGES/system_other.img', namelist)
    self.assertNotIn('IMAGES/system.map', namelist)
    self.assertNotIn(POSTINSTALL_CONFIG, namelist)

  def test_GetTargetFilesZipForSecondaryImages_withoutRadioImages(self):
    input_file = construct_target_files(secondary=True)
    common.ZipDelete(input_file, 'RADIO/bootloader.img')
    common.ZipDelete(input_file, 'RADIO/modem.img')
    target_file = GetTargetFilesZipForSecondaryImages(input_file)

    with zipfile.ZipFile(target_file) as verify_zip:
      namelist = verify_zip.namelist()

    self.assertIn('META/ab_partitions.txt', namelist)
    self.assertIn('IMAGES/boot.img', namelist)
    self.assertIn('IMAGES/system.img', namelist)
    self.assertIn('IMAGES/vendor.img', namelist)
    self.assertIn(POSTINSTALL_CONFIG, namelist)

    self.assertNotIn('IMAGES/system_other.img', namelist)
    self.assertNotIn('IMAGES/system.map', namelist)
    self.assertNotIn('RADIO/bootloader.img', namelist)
    self.assertNotIn('RADIO/modem.img', namelist)

  def test_GetTargetFilesZipWithoutPostinstallConfig(self):
    input_file = construct_target_files()
    target_file = GetTargetFilesZipWithoutPostinstallConfig(input_file)