汽车服务功能控件

默认情况下,大多数汽车服务都是强制性的,且始终处于启用状态。不过,您可以将一部分汽车服务指定为“可选”,因为某些功能可能并非在所有汽车上都受支持。

可选功能列表

下表列出了您可以启用和停用的可选汽车控制功能。

汽车控制功能 字符串值
汽车 EVS 服务 car_evs_service
汽车实验性锁屏服务 experimental_car_keyguard_service
汽车导航服务 car_navigation_service
汽车乘员连接服务 car_occupant_connection_service
汽车远程访问服务 car_remote_access_service
汽车远程设备服务 car_remote_device_service
汽车遥测服务 car_telemetry_service
汽车用户通知服务 com.android.car.user.CarUserNoticeService
仪表盘主页服务 cluster_home_service
诊断服务 diagnostic
乘员感知服务 occupant_awareness
存储空间监控服务 storage_monitoring
车载地图服务 vehicle_map_service

启用和停用汽车控制功能

您可以通过运行时资源叠加层 (RRO) 或车载硬件抽象层 (VHAL) 这两种方式之一来控制对 build 中功能的支持。

使用 RRO

使用名为 config_allowed_optional_car_features 的资源配置,其中列出了您可以启用的所有可选功能。当汽车首次启动时,系统会记录可能的可选汽车功能,并且如果这些功能未被 VHAL 列入屏蔽名单,系统会启用这些功能。如需详细了解 RRO,请参阅在运行时更改应用资源的值

使用 VHAL

车载硬件抽象层 (VHAL) 通过作为停用特定可选功能的屏蔽名单来控制功能。名为 DISABLED_OPTIONAL_FEATURES 的 VHAL 属性列出了叠加层中要被停用的可选功能。如果此属性不存在,则 RRO 中列出的可选功能将全部启用。如需详细了解 VHAL,请参阅 VHAL 概览

使用调试 shell 命令

控制要启用或停用哪些可选功能还有第三种方法,那就是使用一对仅在 user-debug build 中可用的 shell 命令,这些命令专供开发者使用。可选功能列表部分的表格列出了要用来代替 <FEATURE_STRING_VALUE> 的值。

如需启用某项功能,请运行以下命令:

adb root; adb shell cmd car_service enable-feature <FEATURE_STRING_VALUE>; adb reboot

如需停用某项功能,请运行以下命令:

adb root; adb shell cmd car_service disable-feature <FEATURE_STRING_VALUE>; adb reboot

确定启用了哪些功能

在调试与特定功能相关的问题时,了解启用了哪些功能以及启用原因会很有帮助。如需转储 feature-related 信息,请运行以下命令:

adb shell dumpsys car_service --services CarFeatureController

此命令会列出以下所示类型的信息。

说明
mEnabledFeatures 当前已启用的功能。
mDefaultEnabledFeaturesFromConfig config_allowed_optional_car_features 中列出的可选功能。
mDisabledFeaturesFromVhal 由 VHAL 指定要在 VHAL 属性 DISABLED_OPTIONAL_FEATURES 中停用的功能。
mPendingEnabledFeatures 要在重新启动后启用的功能。
mPendingDisabledFeatures 要在重新启动后停用的功能。