HIDL_interface_hashing

概述

l  每一个接口文件对应一个.hal文件

l  保护接口文件不被轻易修改。如果修改,编译就会报错,同时会生成一个修改后hashing值

l  确保接口变化得到充分审查

布局

      每一个包根目录下都有一个current.txt文件。例如android.hardware对应hardware/interfaces。

这个文件包含了发布的所有接口文件即.hal文件以及对应的hashing值。


Hashing产生

1.    手动添加hash到current.txt

.hal文件修改后,编译会报错同时生成修改后的hash值,可以手动添加到current.txt。

2.    hidl-gen 


注意:不要替换前一个已发布的接口hash值。如果修改的化,只需要在current.txt文件的末尾追加即可。

每一个接口都可以通过调用IBase::getHashChain 获取对应的hash。

hidl-gen在编译接口时,会在其对应的根目目录下检查current.txt

l  没有找到,接口不发布,编译跳过

l  Hash不匹配,编译终止,修改current.txt

1.    对于ABI允许的修改,可以修改current.txt。

2.    ABI不允许的修改,需要在接口的次版本号或主版本号更新中修改。

ABI stability

 

ABI: Application Binary Interface 。包含了二级制链接、函数调用约定等。如果ABI/API变化,那基于标准接口编译的system.img,可能无法使用该接口功能。

接口版本化和ABI 稳定性是必要的:

l  通过VTS

l  System 独立 OTA

l  作为OEM,提供一个容易使用和兼任的BSP版本

l  通过current.txt可以了解接口的发布历史记录

当在current.txt为一个存在的接口添加一个新的hash时,为了确保ABI stability,需要审查下面的修改类型:


对于已发布的接口,ABIstability列出了哪些修改允许哪些不允许,对于不允许的修改只能在接口的次版本号或主版本号更新中修改。



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值