Fix a failure in signing test

Pixel moved away from sparse images, so validate_target_files is failing
because it expects sparse images.

Test: th
Change-Id: I322ff10c2afbacfb4d78991be60c11aac92a6d4c
This commit is contained in:
Kelvin Zhang 2021-11-02 14:31:10 -07:00
parent 1e392720c2
commit 2639048c21
3 changed files with 20 additions and 11 deletions

View file

@ -3953,3 +3953,10 @@ def AddCareMapForAbOta(output_file, ab_partitions, image_paths):
OPTIONS.replace_updated_files_list.append(care_map_path)
else:
ZipWrite(output_file, temp_care_map, arcname=care_map_path)
def IsSparseImage(filepath):
with open(filepath, 'rb') as fp:
# Magic for android sparse image format
# https://source.android.com/devices/bootloader/images
return fp.read(4) == b'\x3A\xFF\x26\xED'

View file

@ -251,6 +251,7 @@ import common
import ota_utils
from ota_utils import (UNZIP_PATTERN, FinalizeMetadata, GetPackageMetadata,
PropertyFiles, SECURITY_PATCH_LEVEL_PROP_NAME, GetZipEntryOffset)
from common import IsSparseImage
import target_files_diff
from check_target_files_vintf import CheckVintfIfTrebleEnabled
from non_ab_ota import GenerateNonAbOtaPackage
@ -1021,13 +1022,6 @@ def GeneratePartitionTimestampFlagsDowngrade(
]
def IsSparseImage(filepath):
with open(filepath, 'rb') as fp:
# Magic for android sparse image format
# https://source.android.com/devices/bootloader/images
return fp.read(4) == b'\x3A\xFF\x26\xED'
def SupportsMainlineGkiUpdates(target_file):
"""Return True if the build supports MainlineGKIUpdates.

View file

@ -36,7 +36,9 @@ import logging
import os.path
import re
import zipfile
from hashlib import sha1
from common import IsSparseImage
import common
import rangelib
@ -71,10 +73,16 @@ def ValidateFileConsistency(input_zip, input_tmp, info_dict):
def CheckAllFiles(which):
logging.info('Checking %s image.', which)
# Allow having shared blocks when loading the sparse image, because allowing
# that doesn't affect the checks below (we will have all the blocks on file,
# unless it's skipped due to the holes).
image = common.GetSparseImage(which, input_tmp, input_zip, True)
path = os.path.join(input_tmp, "IMAGES", which + ".img")
if not IsSparseImage(path):
logging.info("%s is non-sparse image", which)
image = common.GetNonSparseImage(which, input_tmp)
else:
logging.info("%s is sparse image", which)
# Allow having shared blocks when loading the sparse image, because allowing
# that doesn't affect the checks below (we will have all the blocks on file,
# unless it's skipped due to the holes).
image = common.GetSparseImage(which, input_tmp, input_zip, True)
prefix = '/' + which
for entry in image.file_map:
# Skip entries like '__NONZERO-0'.