summaryrefslogtreecommitdiff
path: root/lib/libavb
AgeCommit message (Collapse)Author
2026-07-27libavb: update to AOSP 1.3.0Igor Opaniuk
Re-sync the vendored libavb from AOSP external/avb, moving from the ~2019 snapshot (v1.1.0) to v1.3.0. v1.1.0 rejected any vbmeta whose required libavb minor version was greater than 1 with UNSUPPORTED_VERSION; this lifts that ceiling and picks up the accumulated upstream fixes. Synced from commit a1fe228b8654 ("libavb: support chain partition no ab"), which is where AVB version 1.3.0 was introduced; the vendored files match this commit verbatim except for the -Wstrict-prototypes fixup noted below. For more details check [1]. Functionality now parsed by the library: - AvbVBMetaImageHeader.rollback_index_location (v1.2) - AvbChainPartitionDescriptor flags / DO_NOT_USE_AB (v1.3) - AvbHashtreeDescriptor FLAGS_CHECK_AT_MOST_ONCE - AVB_HASHTREE_ERROR_MODE_PANIC The AvbOps callback set is unchanged, so the integration layer in common/avb_verify.c needs no changes. U-Boot-specific adaptations are preserved rather than pulling upstream's BoringSSL-oriented crypto restructure (sha/, boringssl/): the U-Boot port in avb_sysdeps.h / avb_sysdeps_posix.c and the flat avb_sha.h / avb_sha256.c / avb_sha512.c are kept as-is. The SHA API signatures are unchanged, so the retained implementation is compatible with the updated code. Imported files keep U-Boot's SPDX-License-Identifier header style and their upstream per-file licenses (avb_rsa.c stays MIT OR BSD-3-Clause). The unused, Apache-2.0-licensed avb_crc32.c is not imported. The import keeps U-Boot's existing local fix from commit fbfcb614e05 ("libavb: Fix a warning with clang-15"): avb_new_cmdline_subst_list() is kept with a (void) parameter list instead of reverting to upstream's empty () form, which clang rejects under -Werror,-Wstrict-prototypes. [1] https://android.googlesource.com/platform/external/avb/+/a1fe228b86543a21739c51352f5ce72f134fccfa Signed-off-by: Igor Opaniuk <[email protected]>
2024-07-15lib: Remove duplicate newlinesMarek Vasut
Drop all duplicate newlines. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2023-12-21global: Drop common.h inclusionTom Rini
In order to make it easier to move on to dropping common.h from code directly, remove common.h inclusion from the rest of the header file which had been including it. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2023-03-22libavb: Fix a warning with clang-15Tom Rini
With clang-15 we now will get warnings such as: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes] And it is easy enough to address this warning here, as we aren't concerned with re-syncing with an upstream. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-05-18common: Drop log.h from common headerSimon Glass
Move this header out of the common header. Signed-off-by: Simon Glass <[email protected]>
2020-02-05dm: core: Create a new header file for 'compat' featuresSimon Glass
At present dm/device.h includes the linux-compatible features. This requires including linux/compat.h which in turn includes a lot of headers. One of these is malloc.h which we thus end up including in every file in U-Boot. Apart from the inefficiency of this, it is problematic for sandbox which needs to use the system malloc() in some files. Move the compatibility features into a separate header file. Signed-off-by: Simon Glass <[email protected]>
2020-01-17common: Move hang() to the same header as panic()Simon Glass
At present panic() is in the vsprintf.h header file. That does not seem like an obvious choice for hang(), even though it relates to panic(). So let's put hang() in its own header. Signed-off-by: Simon Glass <[email protected]> [trini: Migrate a few more files] Signed-off-by: Tom Rini <[email protected]>
2019-10-31libavb: Fix build warnings after updating the libSam Protsenko
After updating libavb to most recent version from AOSP/master, two new warnings appear: Warning #1: lib/libavb/avb_cmdline.c: In function 'avb_append_options': lib/libavb/avb_cmdline.c:365:15: warning: 'dm_verity_mode' may be used uninitialized in this function [-Wmaybe-uninitialized] new_ret = avb_replace( ^~~~~~~~~~~~ slot_data->cmdline, "$(ANDROID_VERITY_MODE)", dm_verity_mode); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/libavb/avb_cmdline.c:374:8: warning: 'verity_mode' may be used uninitialized in this function [-Wmaybe-uninitialized] if (!cmdline_append_option( ^~~~~~~~~~~~~~~~~~~~~~ slot_data, "androidboot.veritymode", verity_mode)) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Warning #2: lib/libavb/avb_slot_verify.c: In function 'avb_slot_verify': lib/libavb/avb_slot_verify.c:1349:23: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] AvbSlotVerifyResult ret; ^~~ Fix those by providing default return values to affected functions. Signed-off-by: Sam Protsenko <[email protected]>
2019-10-31libavb: Update libavb to current AOSP masterSam Protsenko
Update libavb to commit 5fbb42a189aa in AOSP/master, because new version has support for super partition [1], which we need for implementing Android dynamic partitions. All changes from previous patches for libavb in U-Boot are accounted for in this commit: - commit ecc6f6bea6a2 ("libavb: Handle wrong hashtree_error_mode in avb_append_options()") - commit 897a1d947e7e ("libavb: Update SPDX tag style") - commit d8f9d2af96b3 ("avb2.0: add Android Verified Boot 2.0 library") Tested on X15: ## Android Verified Boot 2.0 version 1.1.0 read_is_device_unlocked not supported yet read_rollback_index not supported yet read_is_device_unlocked not supported yet Verification passed successfully AVB verification OK. Unit test passes: $ ./test/py/test.py --bd sandbox --build -k test_avb test/py/tests/test_android/test_avb.py ss..s. [1] https://android.googlesource.com/platform/external/avb/+/49936b4c0109411fdd38bd4ba3a32a01c40439a9 Signed-off-by: Sam Protsenko <[email protected]> Reviewed-by: Eugeniu Rosca <[email protected]> Acked-by: Igor Opaniuk <[email protected]>
2018-08-24libavb: Handle wrong hashtree_error_mode in avb_append_options()Ievgen Maliarenko
Exit with AVB_SLOT_VERIFY_RESULT_ERROR_INVALID_ARGUMENT when hashtree_error_mode value passed to avb_append_options() is unknown (not from AvbHashtreeErrorMode enum). Otherwise, default value is not handled in the switch(hashtree_error_mode), which causes below compile warning: lib/libavb/avb_cmdline.c: In function ‘avb_append_options’: lib/libavb/avb_cmdline.c:354:13: warning: ‘dm_verity_mode’ may be used uninitialized in this function [-Wmaybe-uninitialized] new_ret = avb_replace( ~~~~~~~~^~~~~~~~~~~~~~ slot_data->cmdline, "$(ANDROID_VERITY_MODE)", dm_verity_mode); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/libavb/avb_cmdline.c:363:8: warning: ‘verity_mode’ may be used uninitialized in this function [-Wmaybe-uninitialized] if (!cmdline_append_option( ^~~~~~~~~~~~~~~~~~~~~~ slot_data, "androidboot.veritymode", verity_mode)) { Signed-off-by: Ievgen Maliarenko <[email protected]> Signed-off-by: Eugeniu Rosca <[email protected]> Reviewed-by: Igor Opaniuk <[email protected]>
2018-06-19libavb: Update SPDX tag styleTom Rini
Signed-off-by: Tom Rini <[email protected]>
2018-06-18avb2.0: integrate avb 2.0 into the build systemIgor Opaniuk
Integrate libavb into the build system. Introduce CONFIG_LIBAVB build option. Signed-off-by: Igor Opaniuk <[email protected]>
2018-06-18avb2.0: add Android Verified Boot 2.0 libraryIgor Opaniuk
Add libavb lib (3rd party library from AOSP), that implements support of AVB 2.0. This library is used for integrity checking of Android partitions on eMMC. libavb was added as it is and minimal changes were introduced to reduce maintenance cost, because it will be deviated from AOSP upstream in the future. Changes: - license headers changed to conform SPDX-style - avb_crc32.c dropped - updates in avb_sysdeps_posix.c/avb_sysdeps.h For additional details check [1] AVB 2.0 README. [1] https://android.googlesource.com/platform/external/avb/+/master/README.md Signed-off-by: Igor Opaniuk <[email protected]>