AVB: decouple vbmeta.img from recovery.img for non-A/B devices
For following cases: Case 1: A/B devices: no change Case 2: non-A/B devices, with unsigned recovery image: not allowed anymore by mandating BOARD_AVB_RECOVERY_KEY_PATH Case 3: non-A/B devices, with signed recovery image: vbmeta.img should not include ChainPartitionDescriptor of recovery.img, otherwise device can not even boot into normal mode if recovery partition is damaged This CL will cause a build break if BOARD_AVB_RECOVERY_KEY_PATH is not set for non-A/B targets with recovery.img The following is an example to fix the build break by specifying AVB signing configs for the recovery.img. BOARD_AVB_RECOVERY_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem BOARD_AVB_RECOVERY_ALGORITHM := SHA256_RSA2048 BOARD_AVB_RECOVERY_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) BOARD_AVB_RECOVERY_ROLLBACK_INDEX_LOCATION := 2 Also note that libavb in bootloader needs an update to include this commit Iaa886037edb18c2ff6c60fa2a7f883ab7303ba1a, to support verifying recovery.img independently (not through vbmeta.img). Bug: 130351427 Test (Case 3): normal mode: avb_slot_verify(flags=AVB_SLOT_VERIFY_FLAGS_NONE) recovery mode: avb_slot_verify(flags=AVB_SLOT_VERIFY_FLAGS_NO_VBMETA_PARTITION) Test: PYTHONPATH=build/make/tools/releasetools \ python -m unittest test_validate_target_files Test: Use a lunch'd target. `atest --host releasetools_test releasetools_py3_test` Test: validate_target_files.py with Case-3 target files Change-Id: I2a73252b385fa463b4abd444923a8acc473df0b4
Loading
Please register or sign in to comment