添加HIDL接口的hash值得:

若遇到如下VTS测试报告中的错误,需要自己添加接口hash值到current.txt中:

添加HIDL接口hash值(解VTS问题)

使用二进制工具hidl-gen,执行如下命令即可:

添加HIDL接口hash值(解VTS问题)

将输出的内容放入到软件包根目录中的current.txt文件中即可。

具体步骤

1.在软件包中找到需要生成hash接口的hidl位置:

添加HIDL接口hash值(解VTS问题)

 

2.

打开HIDL接口同级目录下的Android.bp文件:

 

添加HIDL接口hash值(解VTS问题)

name属性后为要生成hash值的软件包名称(hidl接口为软件包的一部分);

root属性后为软件包所在的根目录路径;

 

AOSPhidl接口所在的软件包的前缀、位置及类型:

 

添加HIDL接口hash值(解VTS问题)

3.

每个文件都可以通过软件包根目录映射及其完全限定名称找到

例如,若软件包为 [email protected]并且向 hidl-gen 发送了 -r vendor.xiaomi.harware:vendor/xiaomi/hardware(软件包前缀决定了hidl接口的类型),

则接口文件应该位于 $ANDROID_BUILD_TOP/vendor/xiaomi/hardware/vibratorfeature/1.0/IVibratorFeature.hal与$ANDROID_BUILD_TOP/vendor/xiaomi/hardware/vibratorfeature/1.0/types.hal。

故可以使用命令

hidl-gen -L hash -r vendor.xiaomi.harware:vendor/xiaomi/hardware -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport [email protected] >> vendor/xiaomi/hardware/interfaces/current.txt

具体指定生成某一个接口的hash值,例如

hidl-gen -L hash -r vendor.xiaomi.harware:vendor/xiaomi/hardware -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport [email protected] ::types.hal>> vendor/xiaomi/hardware/interfaces/current.txt

hidl-gen -L hash -r vendor.xiaomi.harware:vendor/xiaomi/hardware -r android.hardware:hardware/interfaces -r android.hidl:system/libhidl/transport [email protected] ::IVibratorFeature.hal>> vendor/xiaomi/hardware/interfaces/current.txt

Note:(1)current.txt文件若不存在可自行创建;(2)若已有current.txt文件存在,则追加执行命令生成的内容;(3)标黄的部分术语为”完全限定名“

 

关于hidl-gen:

1.hidl-gen 的源代码路径为:$ANDROID_BUILD_TOP/system/tools/hidl

截图为该目录下的Android.bp文件,显示了编译生成hidl-gen工具所需的源文件及依赖的模块:

 

添加HIDL接口hash值(解VTS问题)

 

2.在编译android源码之后,二进制工具hidl-gen存在于$ANDROID_BUILD_TOP/out/host/linux-x86/bin/hidl-gen:

添加HIDL接口hash值(解VTS问题)

 

3.hidl-gen为二进制的可执行文件,使用 “hidl-gen --help"命令可以查看相关参数信息,如下图:

 

添加HIDL接口hash值(解VTS问题)

若需要了解更多具体的相关知识,请参看

https://source.android.com/devices/architecture/hidl/hashing

相关文章: