AVB2.0 是google 设计的 verified boot 流程用于保护boot,recovery/system/vendor partion的完整性。每一个partion可以设置为hash或者是chain partion方式
更多AVB2.0的资讯,您可以参考google spec
https://android.googlesource.com/platform/external/avb/+/master/README.md
如果你的平台使用的kernel版本大于等于4.9,并且是Android P版本,AVB2.0是必须要开启的
MTK默认的配置为:recovery,system为chain partion,其余为hash。您也可以根据需要修改
P版本开启AVB2.0的方法 /vendor/mediatek/proprietary/bootable/bootloader/lk/target/${project}/inc/avbkey.h配置与下方oem_prvk.pem对应的public key(这个路径的key是用于校验vbmeta中的public key合法性) alps/device/mediatek/common/device.mk BOARD_AVB_ENABLE:=True BOARD_AVB_ALGORITHM := SHA256_RSA2048 alps/vendor/mediate/proprietary/bootable/bootloader/lk/platform/${PLATFORM}/rules.mk MTK_AVB20_SUPPORT=yes/no alps/kernel-4.9/drivers/misc/mediatek/masp/Kconfig MTK_AVB20_SUPPORT default y Recovery/system 设置为chain partition的配置(如果不增加这些设置,默认为hash partition) /device/mediatek/common/device.mk
注意,dtbo不使用AVB2.0保护。build出来的dtbo是avb2.0签名方式,会在调用mtk签名脚本时将dtbo改为mtk签名方式。
除boot/recovery/system/vendor外其他的image(preloader,lk,logo,modem,tee等)仍然是使用mtk的verify flow
|