diff options
author | David Anderson <dvander@google.com> | 2019-11-22 21:22:11 +0100 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-11-22 21:22:11 +0100 |
commit | 1c4c878740bfa9c7216cb359d3893dc85b4ed459 (patch) | |
tree | 7bc15d8f2749bb75524470b3f7be7f4d9c99fd17 | |
parent | Merge "Clear the warm_reset flag after boot is successful" am: ca18e7fe5a (diff) | |
parent | Merge "bootloader_message: Add a magic header to the Virtual A/B message block." (diff) | |
download | android_bootable_recovery-1c4c878740bfa9c7216cb359d3893dc85b4ed459.tar android_bootable_recovery-1c4c878740bfa9c7216cb359d3893dc85b4ed459.tar.gz android_bootable_recovery-1c4c878740bfa9c7216cb359d3893dc85b4ed459.tar.bz2 android_bootable_recovery-1c4c878740bfa9c7216cb359d3893dc85b4ed459.tar.lz android_bootable_recovery-1c4c878740bfa9c7216cb359d3893dc85b4ed459.tar.xz android_bootable_recovery-1c4c878740bfa9c7216cb359d3893dc85b4ed459.tar.zst android_bootable_recovery-1c4c878740bfa9c7216cb359d3893dc85b4ed459.zip |
-rw-r--r-- | boot_control/libboot_control.cpp | 4 | ||||
-rw-r--r-- | bootloader_message/include/bootloader_message/bootloader_message.h | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/boot_control/libboot_control.cpp b/boot_control/libboot_control.cpp index 702183979..ab9ce971b 100644 --- a/boot_control/libboot_control.cpp +++ b/boot_control/libboot_control.cpp @@ -365,13 +365,15 @@ bool InitMiscVirtualAbMessageIfNeeded() { return false; } - if (message.version == MISC_VIRTUAL_AB_MESSAGE_VERSION) { + if (message.version == MISC_VIRTUAL_AB_MESSAGE_VERSION && + message.magic == MISC_VIRTUAL_AB_MAGIC_HEADER) { // Already initialized. return true; } message = {}; message.version = MISC_VIRTUAL_AB_MESSAGE_VERSION; + message.magic = MISC_VIRTUAL_AB_MAGIC_HEADER; if (!WriteMiscVirtualAbMessage(message, &err)) { LOG(ERROR) << "Could not write merge status: " << err; return false; diff --git a/bootloader_message/include/bootloader_message/bootloader_message.h b/bootloader_message/include/bootloader_message/bootloader_message.h index a27e80bcc..9a482d423 100644 --- a/bootloader_message/include/bootloader_message/bootloader_message.h +++ b/bootloader_message/include/bootloader_message/bootloader_message.h @@ -189,12 +189,14 @@ static_assert(sizeof(struct bootloader_control) == // must be added to the end. struct misc_virtual_ab_message { uint8_t version; + uint32_t magic; uint8_t merge_status; // IBootControl 1.1, MergeStatus enum. uint8_t source_slot; // Slot number when merge_status was written. - uint8_t reserved[61]; + uint8_t reserved[57]; } __attribute__((packed)); -#define MISC_VIRTUAL_AB_MESSAGE_VERSION 1 +#define MISC_VIRTUAL_AB_MESSAGE_VERSION 2 +#define MISC_VIRTUAL_AB_MAGIC_HEADER 0x56740AB0 #if (__STDC_VERSION__ >= 201112L) || defined(__cplusplus) static_assert(sizeof(struct misc_virtual_ab_message) == 64, |