添加HIDL接口的hash值得:
若遇到如下VTS测试报告中的错误,需要自己添加接口hash值到current.txt中:
使用二进制工具hidl-gen,执行如下命令即可:
将输出的内容放入到软件包根目录中的current.txt文件中即可。
具体步骤:
1.在软件包中找到需要生成hash接口的hidl位置:
2.
打开HIDL接口同级目录下的Android.bp文件:
name属性后为要生成hash值的软件包名称(hidl接口为软件包的一部分);
root属性后为软件包所在的根目录路径;
AOSP中hidl接口所在的软件包的前缀、位置及类型:
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工具所需的源文件及依赖的模块:
2.在编译android源码之后,二进制工具hidl-gen存在于$ANDROID_BUILD_TOP/out/host/linux-x86/bin/hidl-gen:
3.hidl-gen为二进制的可执行文件,使用 “hidl-gen --help"命令可以查看相关参数信息,如下图:
若需要了解更多具体的相关知识,请参看:
https://source.android.com/devices/architecture/hidl/hashing