AVB2 avbtool.py脚本提供了一些非常实用的命令,便于编译完版本后可以查看镜像的一些信息,便于调试的时候使用。
1. info_image
在源码根目录下执行如下info_image就可以查看vbmeta.img镜像中的情况了
./android/external/avb/avbtool.py info_image --image android/out/target/product/xxx/vbmeta.img
显示类似如下内容:
Minimum libavb version: 1.0
Header Block: 256 bytes
Authentication Block: 576 bytes
Auxiliary Block: 2944 bytes
Public key (sha1): bb4fdc68545181a61a69e623xxxx
Algorithm: SHA256_RSA4096
Rollback Index: 0
Flags: 0
Release String: 'avbtool 1.1.0'
Descriptors:
Chain Partition descriptor:
Partition Name: vbmeta_system
...
2. calculate_vbmeta_digest
这个命令可以帮助我们计算vbmeta.img本身的digest值,
有什么呢?比如在uboot中最后会append androidboot.vbmeta.digest内容到cmdline中
androidboot.vbmeta.digest=6bff02e7aa10f7b196b975a1a331ef8ddd6bxxx
有了calculate_vbmeta_digest命令,我们可以计算一下编译完成的vbmeta.img的digest值,然后和cmdline值比一下是否相等,就知道是不是本次编译的了。
命令用法也比较简单,如下:
./android/external/avb/avbtool.py calculate_vbmeta_digest --hash_algorithm sha256 --image android/out/target/product/xxx/vbmeta.img
6bff02e7aa10f7b196b975a1a331ef8ddd6b5cadbxxx