Merge "Add all apexes to apex_info" into main
This commit is contained in:
@@ -835,8 +835,7 @@ def HasPartition(partition_name):
|
|||||||
|
|
||||||
|
|
||||||
def AddApexInfo(output_zip):
|
def AddApexInfo(output_zip):
|
||||||
apex_infos = GetApexInfoFromTargetFiles(OPTIONS.input_tmp, 'system',
|
apex_infos = GetApexInfoFromTargetFiles(OPTIONS.input_tmp)
|
||||||
compressed_only=False)
|
|
||||||
apex_metadata_proto = ota_metadata_pb2.ApexMetadata()
|
apex_metadata_proto = ota_metadata_pb2.ApexMetadata()
|
||||||
apex_metadata_proto.apex_info.extend(apex_infos)
|
apex_metadata_proto.apex_info.extend(apex_infos)
|
||||||
apex_info_bytes = apex_metadata_proto.SerializeToString()
|
apex_info_bytes = apex_metadata_proto.SerializeToString()
|
||||||
|
@@ -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))
|
'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:
|
Args:
|
||||||
input_file: The filename of the target build target-files zip or directory.
|
input_file: The filename of the target build target-files zip or directory.
|
||||||
|
|
||||||
Return:
|
Return:
|
||||||
A list of ota_metadata_pb2.ApexInfo() populated using the APEX stored in
|
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
|
# Extract the apex files so that we can run checks on them
|
||||||
if not isinstance(input_file, str):
|
if not isinstance(input_file, str):
|
||||||
raise RuntimeError("must pass filepath to target-files zip or directory")
|
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')
|
apex_subdir = os.path.join(partition.upper(), 'apex')
|
||||||
if os.path.isdir(input_file):
|
if os.path.isdir(input_file):
|
||||||
tmp_dir = input_file
|
tmp_dir = input_file
|
||||||
@@ -607,7 +613,6 @@ def GetApexInfoFromTargetFiles(input_file, partition, compressed_only=True):
|
|||||||
'--output', decompressed_file_path])
|
'--output', decompressed_file_path])
|
||||||
apex_info.decompressed_size = os.path.getsize(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
|
return apex_infos
|
||||||
|
@@ -190,8 +190,8 @@ def CheckApexDuplicatePackages(target_files_dir, partition_map):
|
|||||||
apex_packages = set()
|
apex_packages = set()
|
||||||
for partition in partition_map.keys():
|
for partition in partition_map.keys():
|
||||||
try:
|
try:
|
||||||
apex_info = apex_utils.GetApexInfoFromTargetFiles(
|
apex_info = apex_utils.GetApexInfoForPartition(
|
||||||
target_files_dir, partition, compressed_only=False)
|
target_files_dir, partition)
|
||||||
except RuntimeError as err:
|
except RuntimeError as err:
|
||||||
errors.append(str(err))
|
errors.append(str(err))
|
||||||
apex_info = []
|
apex_info = []
|
||||||
|
@@ -299,7 +299,7 @@ class OtaFromTargetFilesTest(test_utils.ReleaseToolsTestCase):
|
|||||||
@test_utils.SkipIfExternalToolsUnavailable()
|
@test_utils.SkipIfExternalToolsUnavailable()
|
||||||
def test_GetApexInfoFromTargetFiles(self):
|
def test_GetApexInfoFromTargetFiles(self):
|
||||||
target_files = construct_target_files(compressedApex=True)
|
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(len(apex_infos), 1)
|
||||||
self.assertEqual(apex_infos[0].package_name, "com.android.apex.compressed")
|
self.assertEqual(apex_infos[0].package_name, "com.android.apex.compressed")
|
||||||
self.assertEqual(apex_infos[0].version, 1)
|
self.assertEqual(apex_infos[0].version, 1)
|
||||||
|
Reference in New Issue
Block a user