RK3588 android12修改manifest.xml配置HAL服务

rk3588 android系统中的manifest.xml文件作用是声明支持的硬件模块,加载哪些硬件抽象层服务(HAL服务),声明HIDL接口版本。

RK3588如果要修改manifest.xml配置,对应修改的文件为device/rockchip/common/manifests/manifest_level_31.xml。

首先系统加载编译manifest.xml文件是通过DEVICE_MANIFEST_FILE指定文件路径的。DEVICE_MANIFEST_FILE的定义在device/rockchip/common/BoardConfig.mk文件中,如下:

Export this prop for Mainline Modules.

ROCKCHIP_LUNCHING_API_LEVEL := $(PRODUCT_SHIPPING_API_LEVEL)

DEVICE_MANIFEST_FILE ?= device/rockchip/common/manifests/manifest_level_$(ROCKCHIP_LUNCHING_API_LEVEL).xml

其中PRODUCT_SHIPPING_API_LEVEL 的定义在device/rockchip/rk3588/rk3588s_s/rk3588s_s.mk文件中(与具体硬件平台相关,lunch选择哪个就是哪个路径下的),如下:

First lunching is S, api_level is 31

PRODUCT_SHIPPING_API_LEVEL := 31

比如,我要添加定位服务,可像下面这样修改manifest_level_31.xml:

--- a/device/rockchip/common/manifests/manifest_level_31.xml

+++ b/device/rockchip/common/manifests/manifest_level_31.xml

@@ -1,5 +1,24 @@

<manifest version="1.0" type="device" target-level="6">

<hal format="hidl">

  • <name>android.hardware.gnss</name>

  • <transport>hwbinder</transport>

  • <version>1.1</version>

  • <version>2.1</version>

  • <interface>

  • <name>IGnss</name>

  • <instance>default</instance>

  • </interface>

  • </hal>

  • <hal format="hidl">

  • <name>android.hardware.sensors</name>

  • <transport>hwbinder</transport>

  • <version>2.1</version>

  • <interface>

  • <name>ISensors</name>

  • <instance>default</instance>

  • </interface>

  • </hal>

  • <hal format="hidl">

<name>android.hardware.audio</name>

<transport>hwbinder</transport>

<version>7.0</version>

@@ -44,15 +63,6 @@

<instance>default</instance>

</interface>

</hal>

  • <hal format="hidl">

  • <name>android.hardware.sensors</name>

  • <transport>hwbinder</transport>

  • <version>1.0</version>

  • <interface>

  • <name>ISensors</name>

  • <instance>default</instance>

  • </interface>

  • </hal>

<kernel target-level="6"/>

</manifest>