Merge "Add all apexes to apex_info" into main am: 28007ce2e1

Original change: https://android-review.googlesource.com/c/platform/build/+/2918805

Change-Id: Ic65f8af790333163357f982d0cac36e5b68ad85a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2024-01-22 22:45:38 +00:00
committed by Automerger Merge Worker
4 changed files with 14 additions and 10 deletions

View File

@@ -835,8 +835,7 @@ def HasPartition(partition_name):
def AddApexInfo(output_zip):
apex_infos = GetApexInfoFromTargetFiles(OPTIONS.input_tmp, 'system',
compressed_only=False)
apex_infos = GetApexInfoFromTargetFiles(OPTIONS.input_tmp)
apex_metadata_proto = ota_metadata_pb2.ApexMetadata()
apex_metadata_proto.apex_info.extend(apex_infos)
apex_info_bytes = apex_metadata_proto.SerializeToString()

View File

@@ -534,22 +534,28 @@ def SignApex(avbtool, apex_data, payload_key, container_key, container_pw,
'Failed to get type for {}:\n{}'.format(apex_file, e))
def GetApexInfoFromTargetFiles(input_file, partition, compressed_only=True):
def GetApexInfoFromTargetFiles(input_file):
"""
Get information about system APEX stored in the input_file zip
Get information about APEXes stored in the input_file zip
Args:
input_file: The filename of the target build target-files zip or directory.
Return:
A list of ota_metadata_pb2.ApexInfo() populated using the APEX stored in
/system partition of the input_file
each partition of the input_file
"""
# Extract the apex files so that we can run checks on them
if not isinstance(input_file, str):
raise RuntimeError("must pass filepath to target-files zip or directory")
apex_infos = []
for partition in ['system', 'system_ext', 'product', 'vendor']:
apex_infos.extend(GetApexInfoForPartition(input_file, partition))
return apex_infos
def GetApexInfoForPartition(input_file, partition):
apex_subdir = os.path.join(partition.upper(), 'apex')
if os.path.isdir(input_file):
tmp_dir = input_file
@@ -607,7 +613,6 @@ def GetApexInfoFromTargetFiles(input_file, partition, compressed_only=True):
'--output', decompressed_file_path])
apex_info.decompressed_size = os.path.getsize(decompressed_file_path)
if not compressed_only or apex_info.is_compressed:
apex_infos.append(apex_info)
apex_infos.append(apex_info)
return apex_infos

View File

@@ -190,8 +190,8 @@ def CheckApexDuplicatePackages(target_files_dir, partition_map):
apex_packages = set()
for partition in partition_map.keys():
try:
apex_info = apex_utils.GetApexInfoFromTargetFiles(
target_files_dir, partition, compressed_only=False)
apex_info = apex_utils.GetApexInfoForPartition(
target_files_dir, partition)
except RuntimeError as err:
errors.append(str(err))
apex_info = []

View File

@@ -299,7 +299,7 @@ class OtaFromTargetFilesTest(test_utils.ReleaseToolsTestCase):
@test_utils.SkipIfExternalToolsUnavailable()
def test_GetApexInfoFromTargetFiles(self):
target_files = construct_target_files(compressedApex=True)
apex_infos = GetApexInfoFromTargetFiles(target_files, 'system')
apex_infos = GetApexInfoFromTargetFiles(target_files)
self.assertEqual(len(apex_infos), 1)
self.assertEqual(apex_infos[0].package_name, "com.android.apex.compressed")
self.assertEqual(apex_infos[0].version, 1)