releasetools: Fix secondary payload generation.

The change in [1] removed duplicating radio images from RADIO/ to
IMAGES/. When getting the target_files zip for generating secondary
payload, we need to additionally copy the files under RADIO/ over.

[1] commit 5277d1015f

Test: python -m unittest test_ota_from_target_files
Test: Generate an OTA with secondary payload (--include_secondary).
Change-Id: I096f1642a905fb764e63f5df2edc1396aa6befd8
This commit is contained in:
Tao Bao
2018-07-12 14:47:38 -07:00
parent 901d05469e
commit 1248980a8b
2 changed files with 32 additions and 2 deletions

View File

@@ -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)