summaryrefslogtreecommitdiffstats
path: root/bootloader_message (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-02-26Move libboot_control to boot_control 1.1Tianjie Xu1-102/+0
It should belong to the default /misc implementation of boot control 1.1. Right now, it's only used by cuttlefish. So move it over to reduce confusion in bootloader_message. Bug: 131775112 Test: build Change-Id: If09bc6f4cc8adf74c8798048c8e54ec94566abaa (cherry picked from commit dc4d2a70db40a302cb7001ddbc41816e7187d5c5)
2019-12-17Move libboot_control to boot_control 1.1Tianjie Xu1-102/+0
It should belong to the default /misc implementation of boot control 1.1. Right now, it's only used by cuttlefish. So move it over to reduce confusion in bootloader_message. Bug: 131775112 Test: build Change-Id: If09bc6f4cc8adf74c8798048c8e54ec94566abaa
2019-11-21bootloader_message: Add a magic header to the Virtual A/B message block.David Anderson1-2/+4
This adds a sanity check in addition to the version number in case misc contains random bits. Bug: 139156011 Test: manual test Change-Id: Ie4f3731d2b1795340881c88e0c4eec9cd4432653
2019-11-12Consolidate the vendor space misc usage for PixelsTianjie Xu2-42/+10
The layout of the vendor space /misc partition was pretty confusing and lead to some usage conflicts. To formalize the layout, we create a pixel specific library with the definition & offset of various flags. The new library also handles the R/W. As a result, we will leave system domain /misc definitions in the libbootloader_message. We also switch the misc_writer binary to use more specific options instead of writing an arbitrary hex string. So we can avoid redefining the string & offset in both init script and recovery ui. Bug: 131775112 Test: unit tests pass, run misc_writer and check contents of /misc Change-Id: I00f8842a81d1929e31a1de4d5eb09575ffad47c0
2019-11-09bootloader_message: Add helpers for handling IBootControl MergeStatus.David Anderson2-0/+69
Move merge_status from bootloader_control_ab, which is in vendor space, to a new generic AOSP struct in system space. This will allow more devices to share the same HAL implementation. This patch also changes libboot_control to compensate for merge_status moving out of vendor space. The reference HAL library now also provides separate helper functions for managing the merge status, so devices using a custom boot control HAL can still take advantage of the new misc implementation. Bug: 139156011 Test: manual test Change-Id: I5cd824e25f9d07aad1476301def5cdc3f506b029
2019-11-05bootloader_message: Carve out space reserved for system.David Anderson2-1/+11
This reduces the wipe space from 32K to 16K. The wipe space is now at the 16K-32K region. The 32K-64K region is now "system space", to complement the vendor space, for generic AOSP usage. Bug: 139156011 Test: manual test Change-Id: I1474bfa65a5f21049ab64ec0aee2f4585b55f60f
2019-09-05Add IBootControl 1.1 support to libboot_control.David Anderson1-1/+3
Bug: 138861550 Test: vts Change-Id: Id4a2963d6ab657d8ab076b7013492a691462b287
2019-08-30Make libboot_control vendor available.David Anderson1-0/+1
Bug: 138861550 Test: builds Change-Id: Ib745b59931c6258073e47b00def84c9157df90a7
2019-08-07bootloader_message: Remove global std::stringVic Yang1-3/+4
A global std::string, even if not used, pollutes the bss section unnecessarily. Since this object is only there for testing, make it std::optional<std::string>, which is constexpr constructible. Bug: 138856262 Test: Along with a fix in fs_mgr, see that the bss section for libbootloader_message.so is now clean on cuttlefish for several processes. Change-Id: I6df837dded88d979ffe14d5b2770b120bcf87341
2019-05-21Add misc_writer.Tao Bao3-6/+74
bootloader_message.h currently divides /misc into four segments. The space between 2K and 16K is reserved for vendor use (e.g. bootloader persists flags). This CL adds a vendor tool "misc_writer", to allow writing data to the vendor space in /misc, before getting a dedicated HAL for accessing /misc partition (b/131775112). Targets need to explicitly include the module, then invoke the executable to write data. For example, the following command will write 3-byte data ("0xABCDEF") to offset 4 in vendor space (i.e. 2048 + 4 in /misc). $ /vendor/bin/misc_writer --vendor-space-offset 4 --hex-string 0xABCDEF Bug: 132906936 Test: Run recovery_unit_test on crosshatch. Test: Call the command via init.hardware.rc on crosshatch. Check that the call finishes successfully. Then check the contents written to /misc (`dd bs=1 skip=2048 if=/dev/block/sda2 count=32 | xxd`). Change-Id: I79548fc63fc79b705a0320868690569c3106949f Merged-In: I79548fc63fc79b705a0320868690569c3106949f (cherry picked from commit 7ae01698424cc3adf635c324961b1405594f5156)
2019-05-21Add misc_writer.Tao Bao3-14/+75
bootloader_message.h currently divides /misc into four segments. The space between 2K and 16K is reserved for vendor use (e.g. bootloader persists flags). This CL adds a vendor tool "misc_writer", to allow writing data to the vendor space in /misc, before getting a dedicated HAL for accessing /misc partition (b/131775112). Targets need to explicitly include the module, then invoke the executable to write data. For example, the following command will write 3-byte data ("0xABCDEF") to offset 4 in vendor space (i.e. 2048 + 4 in /misc). $ /vendor/bin/misc_writer --vendor-space-offset 4 --hex-string 0xABCDEF Bug: 132906936 Test: Run recovery_unit_test on crosshatch. Test: Call the command via init.hardware.rc on crosshatch. Check that the call finishes successfully. Then check the contents written to /misc (`dd bs=1 skip=2048 if=/dev/block/sda2 count=32 | xxd`). Change-Id: I79548fc63fc79b705a0320868690569c3106949f
2019-05-06Disable libbootloader_message for darwinColin Cross1-1/+4
libfstab is not built for darwin, don't build libbootloader_message either. Bug: 131709594 Test: m PRODUCT-sdk-sdk sdk_repo Change-Id: I6e3b04f1c3e97d5aa6ac0452bf13e714f8dae437
2019-05-03libbootloader_message: host_supported.Yifan Hong2-4/+26
Also, strlcat is not available on host, so use std::string::operator+= instead. Test: cuttlefish Bug: 79094284 Change-Id: I1e69daeb522ca73f43e0c4855cf099a021ed4d47
2019-05-03libbootloader_message: write recovery to any deviceYifan Hong2-0/+13
Test: cuttlefish Bug: 79094284 Change-Id: If1a6460a8cbed2e2d22fa9e16e6d7ca84f4592d0
2019-01-31Add android::fs_mgr namespace for new Fstab codeTom Cherry1-0/+3
Also add libfstab dependencies where needed. Previously the `typedef struct FstabEntry Volume;` line served to both define a `struct FstabEntry` as well as alias Volume to it. With the new namespace for android::fs_mgr::FstabEntry, `struct FstabEntry` isn't compatible anymore, so we need to alias Volume to the real android::fs_mgr::FstabEntry. In doing so, we need to include <fstab/fstab.h> and this requires libfstab as a library, which a few modules did not have before. Test: treehugger Change-Id: I655209a0efb304b3e0568db0748bd5cf7cecbdb7
2018-12-04Move some small users of fstab to new C++ FstabTom Cherry1-9/+10
Bug: 62292478 Test: tree-hugger Change-Id: Ie2cc10e5168ef3b9dcc42f88e67a1ccd1175fcc5
2018-07-25bootloader_message: Build libbootloader_message as shared lib.Tao Bao1-2/+2
And uses the shared lib version of libbase and libfs_mgr. Bug: 78793464 Test: `m dist` Test: Run recovery_{unit,component}_test on marlin. Change-Id: I750c02d0bfccd6e58fb01f641de02532ace52e00
2018-07-23Revert "Make recovery libraries shared / recovery_available"Hridya Valsaraju1-3/+2
This reverts commit c936a6961940a15f7f95befcf35425bad8fa4f7c. Reason for revert: b/111734137 Change-Id: Ie9c1fdc75d6e87dba7019c4e6d1799af25c2f94a
2018-07-20Make recovery libraries shared / recovery_availableJerry Zhang1-2/+3
Test: compiles Bug: 78793464 Change-Id: Iff64bc1a597e70f749a9d825f7d386baa427be3d Merged-In: Iff64bc1a597e70f749a9d825f7d386baa427be3d (cherry picked from commit 92969c49dce519803ed0a1986781c474b1bbc82f)
2018-07-20Make recovery libraries shared / recovery_availableJerry Zhang1-2/+3
Test: compiles Bug: 78793464 Change-Id: Iff64bc1a597e70f749a9d825f7d386baa427be3d
2018-05-24Mark as recovery_available:trueJiyong Park1-0/+1
Libraries that are direct or indirect dependencies of modules installed to recovery partition (e.g. adbd) are marked as recovery_available: true. This allows a recovery variant of the lib is created when it is depended by other recovery or recovery_available modules. Bug: 79146551 Test: m -j Change-Id: I9ca07ef53fbd89e7c86c0ba269fa52bb48d6deb4
2018-01-23Add update_channel field to bootloader_message_ab.Sen Jiang1-1/+5
The update_channel field is used to store the Omaha update channel if update_engine is compiled with Omaha support. We need it to be in misc to persist through factory reset. Bug: 72332119 Test: mma Change-Id: Ied4fecc6e78cc69d33a36ba4d101d675100f9d82
2017-11-03Switch to bionic gtest in bootable/recoveryTianjie Xu2-16/+22
We encountered segfaults in Imgdiff host tests due to the failure to reset states of getopt. The problem can be solved by switching to use bionic's gtest where a new process is forked for each test. Also modify the recovery_component_test to make sure it runs in parallel. Changes include: 1. Merge the writes to misc partition into one single test. 2. Change the hard coded location "/cache/saved.file" into a configurable variable. Bug: 67849209 Test: recovery tests pass Change-Id: I165d313f32b83393fb7922c5078636ac40b50bc2
2017-10-02Use -Werror in bootable/recoveryChih-Hung Hsieh1-1/+1
* Move -Werror from cppflags to cflags. Bug: 66996870 Test: build with WITH_TIDY=1 Change-Id: I59147fe24d8b48a0403c67ba07d4d384b8e9c5a3
2017-08-29Turn on -Wall for recovery modulesTianjie Xu1-1/+4
Turn on -Wall for all modules. Also remove the obsolete file_cmp() in apply_patch test and now() in wear_ui. The only exception is lib_edify due to the unused functions in the intermediate cpp files generated from the lex files. It will be handled in a seperate CL. Bug: 64939312 Test: mma, unit tests pass Change-Id: Ic53f76b60b6401ab20db3d98130d674c08e3702f
2017-05-17libbootloader_message: convert to Android.bpTom Cherry2-25/+26
Test: build Change-Id: Ia0c2e141673e37eea29306817d2f4b2c944213b0
2017-04-03Boot control HAL based on the A/B headers.Alex Deymo2-0/+12
The added bootctrl.bcb module implement the legacy interface for the bootctrl HAL based on the Boot Control Block (BCB) and the headers already specified in the booloader_message library. This serves as a reference implementation of the boot_control HAL. Bug: 32707546 Test: Tested internally that a device can use this HAL to flip slots and recovery from a /misc wipe. Change-Id: Ic02e5aaf4de7d0a1780eac4e8705dae20d0b3e10
2017-03-27Revert "libbootloader_message: use different fstab paths for normal/recovery boot"Bowgo Tsai1-8/+2
This reverts commit 37bd44174bf2511320961f3f8cd1f698a1c72b66. The logic here is better to be moved into fs_mgr, not fs_mgr clients. Bug: 35811655 Bug: 36502022 Change-Id: Iae79bd8f7131516ad223f3323f1bc1d805206d51 Test: normal boot sailfish, go to Settings > System & tap on "Factory Data reset" Test: recovery boot sailfish
2017-03-25libbootloader_message: use different fstab paths for normal/recovery bootBowgo Tsai1-2/+8
libbootloader_message is used by both normal boot and recovery boot. It needs to use different fstab paths, respectively. Otherwise, factory reset will fail when we move /fstab.{ro.hardware} to /vendor/etc/. Recovery boot: fs_mgr_read_fstab_with_dt("/etc/recovery.fstab") Normal boot: fs_mgr_read_fstab_default() Bug: 35811655 Bug: 36502022 Test: normal boot sailfish, go to Settings > System & tap on "Factory Data reset" Test: recovery boot sailfish Change-Id: I253f5bdfb9be8a01f80856eb1194f85cdf992bbd
2017-03-10recovery: replacing fs_mgr_read_fstab() with new fs_mgr APIsBowgo Tsai1-18/+5
The fstab settings of early-mounted partitions (e.g., /vendor) will be in kernel device tree. Switch to the new API to get the whole settings with those in device tree: fs_mgr_read_fstab_with_dt("/etc/recovery.fstab") The original default /fstab.{ro.hardware} might be moved to /vendor/etc/. or /odm/etc/. Use another new API to get the default fstab instead of using the hard-coded /fstab.{ro.hardware}. This API also includes the settings from device tree: fs_mgr_read_fstab_default() Bug: 35811655 Test: boot sailfish recovery Change-Id: Iaa56ac7f7b4c4dfc7180c65f03e9a37b94f1de09
2016-12-15Add update_bootloader_message() to fix two-step OTAs.Tao Bao2-1/+27
This is a retry of commit 7e31f421a514da09b90e46dbd642a5e9b16e0003. Commit bd56f1590c967205dc45eb2ec298aa8d2aacb740 switches to calling write_bootloader_message(<options>) in get_args(), which unintentionally resets the stage field thus breaks two-step OTAs. This CL adds update_bootloader_message(<options>), which only sets the command field (to "boot-recovery") and the recovery field (with the specified options). Bug: 33534933 Test: Apply a two-step package. Test: recovery_component_test passes. Change-Id: Ie0b1ed4053d2d3c97d9cb84310d616b28fcfc72e
2016-12-14Remove the obsolete comments for firmware update.Tao Bao1-2/+3
The corresponding code was removed in commit e08991e02a7d678f2574e85289a34b2a9a537c82 in 2010 (Froyo). Test: N/A Change-Id: I2b296e1b07d54232bade79fda7501387d65a4c37
2016-12-13Revert "write_bootloader_message(<options>) should not reset stage field."Tao Bao2-9/+2
This reverts commit 7e31f421a514da09b90e46dbd642a5e9b16e0003. Bug: 33534933 Change-Id: Ib173f6b1e36a79deafc3592785195693a6779471
2016-12-06write_bootloader_message(<options>) should not reset stage field.Tao Bao2-2/+9
Commit bd56f1590c967205dc45eb2ec298aa8d2aacb740 switches to calling write_bootloader_message(<options>) in get_args(), which unintentionally resets the stage field thus breaks two-step OTAs. This CL changes write_bootloader_message(<options>) to only set the command field (to "boot-recovery") and the recovery field (with the specified options). Test: Apply a two-step package. Change-Id: I6905918812c7d3402cc1524688079066a4d22d29
2016-11-19bootloader_message: Remove the no-op blank line.Tao Bao1-1/+0
This single blank line was introduced by some cherry-pick, which is causing merge conflicts. Test: N/A Change-Id: Ida527b76fca7cc916499c5f888476c8e51ba3eaa
2016-11-18updater: Refactor set_stage() and get_stage() functions.Tao Bao2-23/+63
Add read_bootloader_message_from() and write_bootloader_message_to() to allow specifying the BCB device (/misc). Also add testcases for set_stage() and get_stage(). Test: recovery_component_test passes. Test: Build a recovery image and apply a two-step OTA package. Change-Id: If5ab06a1aaaea168d2a9e5dd63c07c0a3190e4ae
2016-11-10Add 'reboot bootloader' to bootloader_message.Vineela Tummalapalli2-0/+22
Add 'reboot bootloader' capability to the bootloader_message. BUG: https://issuetracker.google.com/issues/32474515 Change-Id: I01e8b2fad978bf7c8fc96ff6b08ad3e52533f504 Author: Vineela Tummalapalli <vineela.tummalapalli@intel.com> Signed-off-by: Vineela Tummalapalli <vineela.tummalapalli@intel.com> Signed-off-by: Bruce Beare <bruce.j.beare@intel.com> Reviewed-on: https://android.intel.com/548519
2016-10-19Fix bootloader_message.Yabin Cui1-1/+1
Bug: 29945717 Change-Id: I934fd6c52b0111937fa75455de2fa4157fb30f6f (cherry picked from commit 9da04d595fe01e4c0ac1baf39186ac090bf234b3)
2016-10-18Create bootloader_message static library.Yabin Cui3-0/+401
bootloader_messages merges bootloader_message_writer and bootloader.cpp, so we can use the same library to manage bootloader_message in normal boot and recovery mode. Bug: 29582118 Change-Id: I9efdf776ef8f02b53911ff43a518e035e0c29618 (cherry picked from commit 2f272c0551f984e83bc5abaf240e0dddb38a3326)
2016-09-30Turn on -Werror for recoveryTianjie Xu1-0/+1
Also remove the 0xff comparison when validating the bootloader message fields. As the fields won't be erased to 0xff after we remove the MTD support. Bug: 28202046 Test: The recovery folder compiles for aosp_x86-eng Change-Id: Ibb30ea1b2b28676fb08c7e92a1e5f7b6ef3247ab (cherry picked from commit 7aa88748f6ec4e53333d1a15747bc44826ccc410)
2016-09-24Switch to <android-base/properties.h>.Elliott Hughes1-6/+5
Bug: http://b/23102347 Test: boot into recovery. Change-Id: Ib2ca560f1312961c21fbaa294bb068de19cb883e
2016-07-06Fix bootloader_message.Yabin Cui1-1/+1
Bug: 29945717 Change-Id: I934fd6c52b0111937fa75455de2fa4157fb30f6f
2016-06-30Create bootloader_message static library.Yabin Cui3-0/+304
bootloader_messages merges bootloader_message_writer and bootloader.cpp, so we can use the same library to manage bootloader_message in normal boot and recovery mode. Bug: 29582118 Change-Id: I9efdf776ef8f02b53911ff43a518e035e0c29618