汽车服务功能控制

默认情况下,大多数汽车服务是强制性的,并且始终处于启用状态。但是,您可以将汽车服务的一个子集指定为可选,因为并非每辆汽车都可能支持某些功能。

可选功能列表

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

汽车控制功能 字符串值
汽车 EVS 服务 car_evs_service
汽车实验性 Keyguard 服务 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 服务 cluster_home_service
诊断服务 diagnostic
乘员感知服务 occupant_awareness
存储监控服务 storage_monitoring
车辆地图服务 vehicle_map_service

启用和停用汽车控制功能

您可以通过两种方式之一控制构建版本中对功能的支持,即使用运行时资源叠加层 (RRO) 或通过车辆硬件抽象层 (VHAL)。

使用 RRO

使用名为 config_allowed_optional_car_features 的资源配置,其中列出了您可以启用的所有可选功能。当汽车首次启动时,会注意到可能的可选汽车功能,如果它们未被 VHAL 阻止,则会启用这些功能。要了解更多 RRO,请参阅在运行时更改应用资源的值。

使用 VHAL

车辆硬件抽象层 (VHAL) 通过充当阻止列表来停用特定的可选功能,从而控制这些功能。名为 DISABLED_OPTIONAL_FEATURES 的 VHAL 属性列出了叠加层中要停用的可选功能。如果此属性不存在,则 RRO 中的可选功能列表将全部启用。要详细了解 VHAL,请参阅VHAL 概览

使用调试 Shell 命令

控制要启用或停用哪些可选功能的第三种方法是使用一对 Shell 命令,这些命令仅在 user-debug 构建版本中可用,并且供开发者使用。可选功能列表中的表格包含要使用的值,而不是 <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 重启后要停用的功能。