ANDROID: AVB error handler to invalidate vbmeta partition.
authorDavid Zeuthen <zeuthen@google.com>
Tue, 24 Jan 2017 18:17:01 +0000 (13:17 -0500)
committerAlistair Strachan <astrachan@google.com>
Fri, 10 Aug 2018 17:43:14 +0000 (17:43 +0000)
commitc37a593cdbbf5ef7700a5c9c24d1fc78eb473d19
tree64581c13df5f0244a4ac049cdce9b700eb0477aa
parent6bc6256a4dc8d7dc7328255631cb7e5cef7e6bda
ANDROID: AVB error handler to invalidate vbmeta partition.

If androidboot.vbmeta.invalidate_on_error is 'yes' and
androidboot.vbmeta.device is set and points to a device with vbmeta
magic, this header will be overwritten upon an irrecoverable dm-verity
error. The side-effect of this is that the slot will fail to verify on
next reboot, effectively triggering the boot loader to fallback to
another slot. This work both if the vbmeta struct is at the start of a
partition or if there's an AVB footer at the end.

This code is based on drivers/md/dm-verity-chromeos.c from ChromiumOS.

Bug: 31622239
Test: Manually tested (other arch).
Change-Id: I571b5a75461da38ad832a9bea33c298bef859e26
Signed-off-by: David Zeuthen <zeuthen@google.com>
drivers/md/Kconfig
drivers/md/Makefile
drivers/md/dm-verity-avb.c [new file with mode: 0644]
drivers/md/dm-verity-target.c
drivers/md/dm-verity.h