Allow disabling AVB on special vbmeta partitions

The vbmeta partition might have additional prefix
(e.g., guest_vbmeta_a) on some virtual machine
environment. Allowing rewriting the disable-verity/
disable-verification bits in the vbmeta image upon
flash under such use case.

Bug: https://partnerissuetracker.corp.google.com/u/1/issues/181791553
Test: manual tests with different names of vbmeta partition
Change-Id: Iacadaf587fce1e1e7fef946f56bbfc7f4e8233d8
This commit is contained in:
Paweł Grabas 2021-03-04 13:11:25 +01:00 committed by Kamaljeet Maini
parent eb710bfa72
commit ff9cfac08e
1 changed files with 5 additions and 1 deletions

View File

@ -1084,7 +1084,11 @@ static void flash_buf(const std::string& partition, struct fastboot_buffer *buf)
// Rewrite vbmeta if that's what we're flashing and modification has been requested.
if (g_disable_verity || g_disable_verification) {
if (partition == "vbmeta" || partition == "vbmeta_a" || partition == "vbmeta_b") {
// The vbmeta partition might have additional prefix if running in virtual machine
// e.g., guest_vbmeta_a.
if (android::base::EndsWith(partition, "vbmeta") ||
android::base::EndsWith(partition, "vbmeta_a") ||
android::base::EndsWith(partition, "vbmeta_b")) {
rewrite_vbmeta_buffer(buf, false /* vbmeta_in_boot */);
} else if (!has_vbmeta_partition() &&
(partition == "boot" || partition == "boot_a" || partition == "boot_b")) {