Merge "releasetools: Fix an issue in common.GetAvbPartitionArg."

am: 323a460d5b

Change-Id: I2cd550847a7aceeae04e83600fe0e79cd82e6a14
This commit is contained in:
Tao Bao 2019-10-16 14:14:18 -07:00 committed by android-build-merger
commit e54c3c3781
2 changed files with 34 additions and 1 deletions

View file

@ -882,7 +882,7 @@ def GetAvbPartitionArg(partition, image, info_dict=None):
# boot chain, to be verified with AVB_SLOT_VERIFY_FLAGS_NO_VBMETA_PARTITION. # boot chain, to be verified with AVB_SLOT_VERIFY_FLAGS_NO_VBMETA_PARTITION.
# See details at # See details at
# https://android.googlesource.com/platform/external/avb/+/master/README.md#booting-into-recovery. # https://android.googlesource.com/platform/external/avb/+/master/README.md#booting-into-recovery.
if OPTIONS.info_dict.get("ab_update") != "true" and partition == "recovery": if info_dict.get("ab_update") != "true" and partition == "recovery":
return [] return []
# Otherwise chain the partition into vbmeta. # Otherwise chain the partition into vbmeta.

View file

@ -1373,6 +1373,39 @@ class CommonUtilsTest(test_utils.ReleaseToolsTestCase):
self.assertEqual('5', chained_partition_args[1]) self.assertEqual('5', chained_partition_args[1])
self.assertTrue(os.path.exists(chained_partition_args[2])) self.assertTrue(os.path.exists(chained_partition_args[2]))
@test_utils.SkipIfExternalToolsUnavailable()
def test_AppendVBMetaArgsForPartition_recoveryAsChainedPartition_nonAb(self):
testdata_dir = test_utils.get_testdata_dir()
pubkey = os.path.join(testdata_dir, 'testkey.pubkey.pem')
info_dict = {
'avb_avbtool': 'avbtool',
'avb_recovery_key_path': pubkey,
'avb_recovery_rollback_index_location': 3,
}
cmd = common.GetAvbPartitionArg(
'recovery', '/path/to/recovery.img', info_dict)
self.assertFalse(cmd)
@test_utils.SkipIfExternalToolsUnavailable()
def test_AppendVBMetaArgsForPartition_recoveryAsChainedPartition_ab(self):
testdata_dir = test_utils.get_testdata_dir()
pubkey = os.path.join(testdata_dir, 'testkey.pubkey.pem')
info_dict = {
'ab_update': 'true',
'avb_avbtool': 'avbtool',
'avb_recovery_key_path': pubkey,
'avb_recovery_rollback_index_location': 3,
}
cmd = common.GetAvbPartitionArg(
'recovery', '/path/to/recovery.img', info_dict)
self.assertEqual(2, len(cmd))
self.assertEqual('--chain_partition', cmd[0])
chained_partition_args = cmd[1].split(':')
self.assertEqual(3, len(chained_partition_args))
self.assertEqual('recovery', chained_partition_args[0])
self.assertEqual('3', chained_partition_args[1])
self.assertTrue(os.path.exists(chained_partition_args[2]))
class InstallRecoveryScriptFormatTest(test_utils.ReleaseToolsTestCase): class InstallRecoveryScriptFormatTest(test_utils.ReleaseToolsTestCase):
"""Checks the format of install-recovery.sh. """Checks the format of install-recovery.sh.