diff options
author | David Anderson <dvander@google.com> | 2019-11-05 23:16:16 +0100 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-11-05 23:16:16 +0100 |
commit | 8243388d57dab69f41c9c2b494d7c19de775aecb (patch) | |
tree | f7c07f319ed2dd7cd0dfa48815fde9c296273055 | |
parent | Merge "Start adbd in user mode if bootloader is unlocked" (diff) | |
parent | bootloader_message: Carve out space reserved for system. (diff) | |
download | android_bootable_recovery-8243388d57dab69f41c9c2b494d7c19de775aecb.tar android_bootable_recovery-8243388d57dab69f41c9c2b494d7c19de775aecb.tar.gz android_bootable_recovery-8243388d57dab69f41c9c2b494d7c19de775aecb.tar.bz2 android_bootable_recovery-8243388d57dab69f41c9c2b494d7c19de775aecb.tar.lz android_bootable_recovery-8243388d57dab69f41c9c2b494d7c19de775aecb.tar.xz android_bootable_recovery-8243388d57dab69f41c9c2b494d7c19de775aecb.tar.zst android_bootable_recovery-8243388d57dab69f41c9c2b494d7c19de775aecb.zip |
-rw-r--r-- | bootloader_message/bootloader_message.cpp | 7 | ||||
-rw-r--r-- | bootloader_message/include/bootloader_message/bootloader_message.h | 5 |
2 files changed, 11 insertions, 1 deletions
diff --git a/bootloader_message/bootloader_message.cpp b/bootloader_message/bootloader_message.cpp index b15a9b9fd..f838930fd 100644 --- a/bootloader_message/bootloader_message.cpp +++ b/bootloader_message/bootloader_message.cpp @@ -250,6 +250,13 @@ bool write_wipe_package(const std::string& package_data, std::string* err) { if (misc_blk_device.empty()) { return false; } + static constexpr size_t kMaximumWipePackageSize = + SYSTEM_SPACE_OFFSET_IN_MISC - WIPE_PACKAGE_OFFSET_IN_MISC; + if (package_data.size() > kMaximumWipePackageSize) { + *err = "Wipe package size " + std::to_string(package_data.size()) + " exceeds " + + std::to_string(kMaximumWipePackageSize) + " bytes"; + return false; + } return write_misc_partition(package_data.data(), package_data.size(), misc_blk_device, WIPE_PACKAGE_OFFSET_IN_MISC, err); } diff --git a/bootloader_message/include/bootloader_message/bootloader_message.h b/bootloader_message/include/bootloader_message/bootloader_message.h index b78783083..e3425fc8b 100644 --- a/bootloader_message/include/bootloader_message/bootloader_message.h +++ b/bootloader_message/include/bootloader_message/bootloader_message.h @@ -25,12 +25,15 @@ // 0 - 2K For bootloader_message // 2K - 16K Used by Vendor's bootloader (the 2K - 4K range may be optionally used // as bootloader_message_ab struct) -// 16K - 64K Used by uncrypt and recovery to store wipe_package for A/B devices +// 16K - 32K Used by uncrypt and recovery to store wipe_package for A/B devices +// 32K - 64K System space, used for miscellanious AOSP features. See below. // Note that these offsets are admitted by bootloader,recovery and uncrypt, so they // are not configurable without changing all of them. constexpr size_t BOOTLOADER_MESSAGE_OFFSET_IN_MISC = 0; constexpr size_t VENDOR_SPACE_OFFSET_IN_MISC = 2 * 1024; constexpr size_t WIPE_PACKAGE_OFFSET_IN_MISC = 16 * 1024; +constexpr size_t SYSTEM_SPACE_OFFSET_IN_MISC = 32 * 1024; +constexpr size_t SYSTEM_SPACE_SIZE_IN_MISC = 32 * 1024; /* Bootloader Message (2-KiB) * |