f636a80888
Current build system will include AVB metadata from each partition and
store them into /vbmeta partiton when BOARD_AVB_ENABLE is set, which makes
each partition tightly-coupled.
Add the support for 'chain partition':
- The vbmeta of each partition is stored on the same partition itself.
- The public key used to verify each partition is stored in /vbmeta.
For example, the following build variables are required to enable chain
partition for system partition:
- BOARD_AVB_SYSTEM_KEY_PATH := path/to/system_private_key
- BOARD_AVB_SYSTEM_ALGORITHM := SHA512_RSA8192
- BOARD_AVB_SYSTEM_ROLLBACK_INDEX := 1
- BOARD_AVB_SYSTEM_ROLLBACK_INDEX_LOCATION := 2
The corresponding settings will be added into META/misc_info.txt for
build_image.py and/or add_img_to_target_files.py:
- avb_system_key_path=path/to/system_private_key
- avb_system_algorithm=SHA512_RSA8192
- avb_system_add_hashtree_footer_args=--rollback_index 1
- avb_system_rollback_index_location=2
To enable chain partition for other partitions, just replace SYSTEM with
BOOT, VENDOR and/or DTBO in the build variables.
Also switch from `avbtool make_vbmeta_image --setup_rootfs_from_kernel system.img ...`
to `avbtool add_hashtree_footer --image system.img --setup_as_rootfs_from_kernel...`
when BOARD_BUILD_SYSTEM_ROOT_IMAGE is true. This works for both chained
and no-chained:
- chained: `avbtool add_hashtree_footer --setup_as_rootfs_from_kernel` will
add dm-verity kernel cmdline descriptor to system.img
- no-chained: `avbtool make_vbmeta_image --include_descriptors_from_image
system.img` will include the kernel cmdline descriptor from system.img into
vbmeta.img
Bug: 38399657
Test: `make` pass, flash images from $OUT and boot device without chain partitions
Test: `make` pass, flash images from $OUT and boot device with chain partitions
Test: `make dist` pass, flash images from TF.zip and boot device without chain partitions
Test: `make dist` pass, flash images from TF.zip and boot device with chain partitions
Test: follow the same steps in
https://android-review.googlesource.com/#/c/407572/
Change-Id: I344f79290743d7d47b5e7441b3a21df812a69099
Merged-In: I344f79290743d7d47b5e7441b3a21df812a69099
(cherry picked from commit
|
||
---|---|---|
.. | ||
acp | ||
apicheck | ||
atree | ||
droiddoc | ||
fs_config | ||
fs_get_stats | ||
ijar | ||
libhost | ||
makeparallel | ||
releasetools | ||
signapk | ||
signtos | ||
zipalign | ||
ziptime | ||
adbs | ||
Android.mk | ||
brillo-clang-format | ||
buildinfo.sh | ||
check_builds.sh | ||
check_link_type.py | ||
check_radio_versions.py | ||
checkowners.py | ||
compare_fileslist.py | ||
dump-package-stats | ||
event_log_tags.py | ||
fat16copy.py | ||
fileslist_util.py | ||
filter-product-graph.py | ||
findleaves.py | ||
fixlinebreaks.sh | ||
generate-enforce-rro-android-manifest.py | ||
generate-notice-files.py | ||
java-event-log-tags.py | ||
java-layers.py | ||
merge-event-log-tags.py | ||
mktarball.sh | ||
normalize_path.py | ||
parsedeps.py | ||
post_process_props.py | ||
print_module_licenses.sh | ||
product_debug.py | ||
soong_to_convert.py | ||
vendor_buildinfo.sh | ||
warn.py |