Contrôle des fonctionnalités du service automobile

Par défaut, la plupart des services automobiles sont obligatoires et toujours activés. Toutefois, vous pouvez désigner un sous-ensemble de services automobiles comme facultatifs, car il est possible que certaines fonctionnalités ne soient pas prises en charge dans toutes les voitures.

Liste des fonctionnalités facultatives

Les fonctionnalités facultatives de contrôle de la voiture que vous pouvez activer et désactiver sont listées dans le tableau ci-dessous.

Fonctionnalité de contrôle de la voiture Valeur de chaîne
Service EVS de la voiture car_evs_service
Service expérimental de protection du clavier de la voiture experimental_car_keyguard_service
Service de navigation de la voiture car_navigation_service
Service de connexion des occupants de la voiture car_occupant_connection_service
Service d'accès à distance de la voiture car_remote_access_service
Service de télécommande de la voiture car_remote_device_service
Service de télémétrie de la voiture car_telemetry_service
Service de notification utilisateur de la voiture com.android.car.user.CarUserNoticeService
Service d'accueil du cluster cluster_home_service
Service de diagnostic diagnostic
Service de détection des occupants occupant_awareness
Service de surveillance du stockage storage_monitoring
Service de cartographie pour véhicule vehicle_map_service

Activer et désactiver les fonctionnalités de contrôle de la voiture

Vous pouvez contrôler la prise en charge des fonctionnalités dans vos builds de deux manières : avec des superpositions de ressources d'exécution (RRO) ou par le biais de la couche d'abstraction matérielle du véhicule (VHAL).

Utiliser des RRO

Utilisez la configuration de ressources nommée config_allowed_optional_car_features, qui liste toutes les fonctionnalités facultatives que vous pouvez activer. Lors du premier démarrage d'une voiture, les fonctionnalités facultatives possibles sont notées et activées si elles ne sont pas bloquées par la VHAL. Pour en savoir plus sur les RRO, consultez Modifier la valeur des ressources d'une application au moment de l'exécution.

Utiliser la VHAL

La couche d'abstraction matérielle du véhicule (VHAL) contrôle les fonctionnalités en servant de liste de blocage pour désactiver des fonctionnalités facultatives spécifiques. La propriété VHAL nommée DISABLED_OPTIONAL_FEATURES liste les fonctionnalités facultatives de la superposition à désactiver. Si cette propriété n'existe pas, la liste des fonctionnalités facultatives des RRO est entièrement activée. Pour en savoir plus sur la VHAL, consultez la présentation de la VHAL.

Utiliser des commandes shell de débogage

Une troisième façon de contrôler les fonctionnalités facultatives à activer ou à désactiver consiste à utiliser une paire de commandes shell. Ces commandes ne sont disponibles que dans les versions user-debug et sont fournies pour être utilisées par les développeurs. Le tableau de la section Liste des fonctionnalités facultatives contient les valeurs à utiliser à la place de <FEATURE_STRING_VALUE>.

Pour activer une fonctionnalité :

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

Pour désactiver une fonctionnalité :

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

Déterminer les fonctionnalités activées

Lors du débogage de problèmes liés à des fonctionnalités spécifiques, il peut être utile de savoir quelles fonctionnalités sont activées et pourquoi. Pour vider les informations feature-related, exécutez la commande suivante :

adb shell dumpsys car_service --services CarFeatureController

Cette commande liste les types d'informations présentés ci-dessous.

Valeur Description
mEnabledFeatures Fonctionnalités actuellement activées.
mDefaultEnabledFeaturesFromConfig Fonctionnalités facultatives listées dans config_allowed_optional_car_features.
mDisabledFeaturesFromVhal Fonctionnalités spécifiées par la VHAL comme devant être désactivées dans la propriété VHAL, DISABLED_OPTIONAL_FEATURES.
mPendingEnabledFeatures Fonctionnalités à activer lors d'un redémarrage.
mPendingDisabledFeatures Fonctionnalités à désactiver après un redémarrage.