其他分享
首页 > 其他分享> > vbmeta image public key校验

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