vbmeta image public key校验
作者:互联网
vbmeta image public key校验
vbmeta image有main vbmeta和chain partition vbmeta,main vbmeta指的是rollback_index_location等于0的vbmeta image
vbmeta image里都有public key,位于auxiliary data block,在进行AVB校验时,会对vbmeta image里的public key进行校验,下面对这两种vbmeta image public key是如何进行校验的进行说明
main vbmeta public key校验
对于main vbmeta image public key的校验,它是将main vbmeta image里的public key和编译进uboot image里的avb_root_pub[]数组进行mem cmp,如果相等,则校验通过
avb_root_pub[]需要与main vbmeta image一样的public key,这个public key可以从main vbmeta image的key文件(私钥,.pem),通过avbtool extract_public_key得到
main vbmeta public key的校验只在uboot里做,android里将不再做这个校验,uboot里执行这个校验的函数是validate_vbmeta_public_key;android里的为dummy_validate_vbmeta_public_key,而这个函数是直接返回的true
chain partition public key校验
比如system.img是chain partition,对vbmeta_system.img执行load_and_verify_vbmeta()时,会将vbmeta.img里system chain partition descriptor里的public key(expected_public_key)作为参数传进去,之后获取到vbmeta_system.img里的public key以及public key len后,将这里获取到的public key和函数参数传入进来的expected_public_key进行比较,比较的长度是这里获取的public key len,如果相等才会通过public key的校验
通过avbtool infoimage可以直接看出vbmeta.img里vbmeta_system partition的chain partition descriptor里的public key和vbmeta_system.img里的public key是相等的:
vbmeta.img: Descriptors: Chain Partition descriptor: Partition Name: vbmeta_system Rollback Index Location: 2 Public key (sha1): 883f885174dcadcce97fefad1bcbd11a5c0289e7 vbmeta_system.img: Public key (sha1): 883f885174dcadcce97fefad1bcbd11a5c0289e7
标签:image,system,校验,vbmeta,key,public 来源: https://www.cnblogs.com/aspirs/p/16295120.html