diff options
author | David Anderson <dvander@google.com> | 2019-11-21 00:47:07 +0100 |
---|---|---|
committer | David Anderson <dvander@google.com> | 2019-11-21 01:23:52 +0100 |
commit | 682d2a5db2a61a6f97c09d7c143e023fe2bd4e14 (patch) | |
tree | 9d2c83c32caf346061fd81cc7e390c513dad4dc3 | |
parent | Merge "Clear the warm_reset flag after boot is successful" (diff) | |
download | android_bootable_recovery-682d2a5db2a61a6f97c09d7c143e023fe2bd4e14.tar android_bootable_recovery-682d2a5db2a61a6f97c09d7c143e023fe2bd4e14.tar.gz android_bootable_recovery-682d2a5db2a61a6f97c09d7c143e023fe2bd4e14.tar.bz2 android_bootable_recovery-682d2a5db2a61a6f97c09d7c143e023fe2bd4e14.tar.lz android_bootable_recovery-682d2a5db2a61a6f97c09d7c143e023fe2bd4e14.tar.xz android_bootable_recovery-682d2a5db2a61a6f97c09d7c143e023fe2bd4e14.tar.zst android_bootable_recovery-682d2a5db2a61a6f97c09d7c143e023fe2bd4e14.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, |