Merge "Minor refactor tools/releasetools/common.py" into main
This commit is contained in:
@@ -20,7 +20,6 @@ import copy
|
|||||||
import datetime
|
import datetime
|
||||||
import errno
|
import errno
|
||||||
import fnmatch
|
import fnmatch
|
||||||
from genericpath import isdir
|
|
||||||
import getopt
|
import getopt
|
||||||
import getpass
|
import getpass
|
||||||
import gzip
|
import gzip
|
||||||
@@ -34,12 +33,13 @@ import re
|
|||||||
import shlex
|
import shlex
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
|
||||||
import stat
|
import stat
|
||||||
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
import zipfile
|
import zipfile
|
||||||
|
from genericpath import isdir
|
||||||
from hashlib import sha1, sha256
|
from hashlib import sha1, sha256
|
||||||
|
|
||||||
import images
|
import images
|
||||||
@@ -112,13 +112,18 @@ SPECIAL_CERT_STRINGS = ("PRESIGNED", "EXTERNAL")
|
|||||||
# descriptor into vbmeta.img. When adding a new entry here, the
|
# descriptor into vbmeta.img. When adding a new entry here, the
|
||||||
# AVB_FOOTER_ARGS_BY_PARTITION in sign_target_files_apks need to be updated
|
# AVB_FOOTER_ARGS_BY_PARTITION in sign_target_files_apks need to be updated
|
||||||
# accordingly.
|
# accordingly.
|
||||||
AVB_PARTITIONS = ('boot', 'init_boot', 'dtbo', 'odm', 'product', 'pvmfw', 'recovery',
|
AVB_PARTITIONS = ('boot', 'init_boot', 'dtbo', 'odm', 'product', 'pvmfw',
|
||||||
'system', 'system_ext', 'vendor', 'vendor_boot', 'vendor_kernel_boot',
|
'recovery', 'system', 'system_ext', 'vendor', 'vendor_boot',
|
||||||
'vendor_dlkm', 'odm_dlkm', 'system_dlkm')
|
'vendor_kernel_boot', 'vendor_dlkm', 'odm_dlkm',
|
||||||
|
'system_dlkm')
|
||||||
|
|
||||||
# Chained VBMeta partitions.
|
# Chained VBMeta partitions.
|
||||||
AVB_VBMETA_PARTITIONS = ('vbmeta_system', 'vbmeta_vendor')
|
AVB_VBMETA_PARTITIONS = ('vbmeta_system', 'vbmeta_vendor')
|
||||||
|
|
||||||
|
# avbtool arguments name
|
||||||
|
AVB_ARG_NAME_INCLUDE_DESC_FROM_IMG = '--include_descriptors_from_image'
|
||||||
|
AVB_ARG_NAME_CHAIN_PARTITION = '--chain_partition'
|
||||||
|
|
||||||
# Partitions that should have their care_map added to META/care_map.pb
|
# Partitions that should have their care_map added to META/care_map.pb
|
||||||
PARTITIONS_WITH_CARE_MAP = [
|
PARTITIONS_WITH_CARE_MAP = [
|
||||||
'system',
|
'system',
|
||||||
@@ -1467,7 +1472,7 @@ def GetAvbPartitionArg(partition, image, info_dict=None):
|
|||||||
# Check if chain partition is used.
|
# Check if chain partition is used.
|
||||||
key_path = info_dict.get("avb_" + partition + "_key_path")
|
key_path = info_dict.get("avb_" + partition + "_key_path")
|
||||||
if not key_path:
|
if not key_path:
|
||||||
return ["--include_descriptors_from_image", image]
|
return [AVB_ARG_NAME_INCLUDE_DESC_FROM_IMG, image]
|
||||||
|
|
||||||
# For a non-A/B device, we don't chain /recovery nor include its descriptor
|
# For a non-A/B device, we don't chain /recovery nor include its descriptor
|
||||||
# into vbmeta.img. The recovery image will be configured on an independent
|
# into vbmeta.img. The recovery image will be configured on an independent
|
||||||
@@ -1479,7 +1484,7 @@ def GetAvbPartitionArg(partition, image, info_dict=None):
|
|||||||
|
|
||||||
# Otherwise chain the partition into vbmeta.
|
# Otherwise chain the partition into vbmeta.
|
||||||
chained_partition_arg = GetAvbChainedPartitionArg(partition, info_dict)
|
chained_partition_arg = GetAvbChainedPartitionArg(partition, info_dict)
|
||||||
return ["--chain_partition", chained_partition_arg]
|
return [AVB_ARG_NAME_CHAIN_PARTITION, chained_partition_arg]
|
||||||
|
|
||||||
|
|
||||||
def GetAvbChainedPartitionArg(partition, info_dict, key=None):
|
def GetAvbChainedPartitionArg(partition, info_dict, key=None):
|
||||||
@@ -1598,7 +1603,7 @@ def BuildVBMeta(image_path, partitions, name, needed_partitions):
|
|||||||
# same location when running this script (we have the input target_files
|
# same location when running this script (we have the input target_files
|
||||||
# zip only). For such cases, we additionally scan other locations (e.g.
|
# zip only). For such cases, we additionally scan other locations (e.g.
|
||||||
# IMAGES/, RADIO/, etc) before bailing out.
|
# IMAGES/, RADIO/, etc) before bailing out.
|
||||||
if arg == '--include_descriptors_from_image':
|
if arg == AVB_ARG_NAME_INCLUDE_DESC_FROM_IMG:
|
||||||
chained_image = split_args[index + 1]
|
chained_image = split_args[index + 1]
|
||||||
if os.path.exists(chained_image):
|
if os.path.exists(chained_image):
|
||||||
continue
|
continue
|
||||||
|
@@ -1585,7 +1585,8 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
|
|||||||
info_dict = {}
|
info_dict = {}
|
||||||
cmd = common.GetAvbPartitionArg('system', '/path/to/system.img', info_dict)
|
cmd = common.GetAvbPartitionArg('system', '/path/to/system.img', info_dict)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
['--include_descriptors_from_image', '/path/to/system.img'], cmd)
|
[common.AVB_ARG_NAME_INCLUDE_DESC_FROM_IMG, '/path/to/system.img'],
|
||||||
|
cmd)
|
||||||
|
|
||||||
@test_utils.SkipIfExternalToolsUnavailable()
|
@test_utils.SkipIfExternalToolsUnavailable()
|
||||||
def test_AppendVBMetaArgsForPartition_vendorAsChainedPartition(self):
|
def test_AppendVBMetaArgsForPartition_vendorAsChainedPartition(self):
|
||||||
@@ -1598,7 +1599,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
|
|||||||
}
|
}
|
||||||
cmd = common.GetAvbPartitionArg('vendor', '/path/to/vendor.img', info_dict)
|
cmd = common.GetAvbPartitionArg('vendor', '/path/to/vendor.img', info_dict)
|
||||||
self.assertEqual(2, len(cmd))
|
self.assertEqual(2, len(cmd))
|
||||||
self.assertEqual('--chain_partition', cmd[0])
|
self.assertEqual(common.AVB_ARG_NAME_CHAIN_PARTITION, cmd[0])
|
||||||
chained_partition_args = cmd[1].split(':')
|
chained_partition_args = cmd[1].split(':')
|
||||||
self.assertEqual(3, len(chained_partition_args))
|
self.assertEqual(3, len(chained_partition_args))
|
||||||
self.assertEqual('vendor', chained_partition_args[0])
|
self.assertEqual('vendor', chained_partition_args[0])
|
||||||
@@ -1631,7 +1632,7 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
|
|||||||
cmd = common.GetAvbPartitionArg(
|
cmd = common.GetAvbPartitionArg(
|
||||||
'recovery', '/path/to/recovery.img', info_dict)
|
'recovery', '/path/to/recovery.img', info_dict)
|
||||||
self.assertEqual(2, len(cmd))
|
self.assertEqual(2, len(cmd))
|
||||||
self.assertEqual('--chain_partition', cmd[0])
|
self.assertEqual(common.AVB_ARG_NAME_CHAIN_PARTITION, cmd[0])
|
||||||
chained_partition_args = cmd[1].split(':')
|
chained_partition_args = cmd[1].split(':')
|
||||||
self.assertEqual(3, len(chained_partition_args))
|
self.assertEqual(3, len(chained_partition_args))
|
||||||
self.assertEqual('recovery', chained_partition_args[0])
|
self.assertEqual('recovery', chained_partition_args[0])
|
||||||
|
Reference in New Issue
Block a user