Skip to content

avb_verify: Ignore partition error during upgrade#9

Merged
xiaoxiang781216 merged 1 commit intoopen-vela:devfrom
JianyuWang0623:br_wjy_ota_ignore_partition_error_250404
Apr 5, 2025
Merged

avb_verify: Ignore partition error during upgrade#9
xiaoxiang781216 merged 1 commit intoopen-vela:devfrom
JianyuWang0623:br_wjy_ota_ignore_partition_error_250404

Conversation

@JianyuWang0623
Copy link
Member

@JianyuWang0623 JianyuWang0623 commented Apr 4, 2025

Not committed to Gerrit yet

Summary

Ignore partition verfication error during upgrade verfication, because there may be abnormal exit during non-A/B upgrade.

Impact

  • frameworks/system/ota

Testing

Test commands

dd if=/dev/random of=1MB_1.1 bs=1MB count=1
../tools/avb_sign.sh 1MB_1.1 0 -P ./1MB_1.1 -o --dynamic_partition_size -o "--rollback_index_location 1" -o "--rollback_index 1"
dd if=/dev/random of=1MB_1.2 bs=1MB count=1
../tools/avb_sign.sh 1MB_1.2 0 -P ./1MB_1.2 -o --dynamic_partition_size -o "--rollback_index_location 1" -o "--rollback_index 2"

./avb_verify -I ./1MB_1.1
./avb_verify -I ./1MB_1.2

echo -n "1. Upgrade test: "
./avb_verify -U ./1MB_1.2 ./1MB_1.1 ../tools/keys/key.avb && echo PASSED || echo FAILED

echo -n "2. Same version test: "
./avb_verify -U ./1MB_1.2 ./1MB_1.2 ../tools/keys/key.avb && echo PASSED || echo FAILED

echo -n "3. Downgrade test: "
./avb_verify -U ./1MB_1.1 ./1MB_1.2 ../tools/keys/key.avb && echo FAILED || echo PASSED

dd if=/dev/random of=./1MB_1.1 bs=512K count=1 conv=notrunc

echo -n "4. Broken partition verification test: "
./avb_verify ./1MB_1.1 ../tools/keys/key.avb && echo FAILED || echo PASSED

echo -n "5. Broken partition upgrade test: "
./avb_verify -U ./1MB_1.2 ./1MB_1.1 ../tools/keys/key.avb && echo PASSED || echo FAILED

rm -v 1MB_1.1 1MB_1.2

Test results

+ echo -n '1. Upgrade test: '
1. Upgrade test: + ./avb_verify -U ./1MB_1.2 ./1MB_1.1 ../tools/keys/key.avb
+ echo PASSED
PASSED
+ echo -n '2. Same version test: '
2. Same version test: + ./avb_verify -U ./1MB_1.2 ./1MB_1.2 ../tools/keys/key.avb
+ echo PASSED
PASSED
+ echo -n '3. Downgrade test: '
3. Downgrade test: + ./avb_verify -U ./1MB_1.1 ./1MB_1.2 ../tools/keys/key.avb
./avb_verify error 4
+ echo PASSED
PASSED
+ dd if=/dev/random of=./1MB_1.1 bs=512K count=1 conv=notrunc
1+0 records in
1+0 records out
524288 bytes (524 kB, 512 KiB) copied, 0.00115562 s, 454 MB/s
+ echo -n '4. Broken partition verification test: '
4. Broken partition verification test: + ./avb_verify ./1MB_1.1 ../tools/keys/key.avb
avb_slot_verify.c:526: ERROR: ./1MB_1.1: Hash of data does not match digest in descriptor.
./avb_verify error 3
+ echo PASSED
PASSED
+ echo -n '5. Broken partition upgrade test: '
5. Broken partition upgrade test: + ./avb_verify -U ./1MB_1.2 ./1MB_1.1 ../tools/keys/key.avb
avb_slot_verify.c:526: ERROR: ./1MB_1.1: Hash of data does not match digest in descriptor.
+ echo PASSED
PASSED

Ignore partition verfication error during upgrade verfication, because there may be abnormal exit during non-A/B upgrade.

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
@JianyuWang0623
Copy link
Member Author

@Donny9 @anjiahao1 @gneworld Could you review this patch please?

@xiaoxiang781216 xiaoxiang781216 merged commit 98c977a into open-vela:dev Apr 5, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants