Contrôle des fonctionnalités du service de voiture

Par défaut, la plupart des services de voiture sont obligatoires et sont toujours activés. Cependant, vous pouvez désigner un sous-ensemble de services de voiture comme étant facultatifs , car certaines fonctionnalités peuvent ne pas être prises en charge dans toutes les voitures.

Liste des fonctionnalités optionnelles

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

Fonction de contrôle de voiture Valeur de chaîne
Service SVE automobile car_evs_service
Service de protection de clavier expérimental pour voiture experimental_car_keyguard_service
Service de navigation automobile car_navigation_service
Service de connexion des occupants de la voiture car_occupant_connection_service
Service d'accès à distance en voiture car_remote_access_service
Service d'appareils à distance pour voiture car_remote_device_service
Service de télémétrie automobile car_telemetry_service
Service d'avis aux usagers de la voiture com.android.car.user.CarUserNoticeService
Service d'accueil de cluster cluster_home_service
Service de diagnostic diagnostic
Service de sensibilisation des occupants occupant_awareness
Service de surveillance du stockage storage_monitoring
Service de cartographie des véhicules 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 : soit avec des superpositions de ressources d'exécution (RRO), soit via la couche d'abstraction matérielle du véhicule (VHAL).

Utiliser les RRO

Utilisez la configuration de ressources nommée config_allowed_optional_car_features , qui répertorie toutes les fonctionnalités facultatives que vous pouvez activer. Lorsqu'une voiture est démarrée pour la première fois, les fonctionnalités optionnelles possibles de la voiture sont notées et sont activées si elles ne sont pas bloquées par le VHAL. Pour en savoir plus sur les RRO, consultez Modifier la valeur des ressources d’une application au moment de l’exécution.

Utilisez le 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 répertorie les fonctionnalités facultatives de la superposition qui doivent être désactivées. Si cette propriété n'existe pas, alors la liste des fonctionnalités facultatives des RRO sont toutes activées. Pour en savoir plus sur le VHAL, consultez la présentation du VHAL .

Utiliser les commandes du 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, qui sont disponibles uniquement dans les versions user-debug et sont fournies pour être utilisées par les développeurs. Le tableau dans 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 quelles fonctionnalités sont 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 :

adb shell dumpsys car_service --services CarFeatureController

Cette commande répertorie les types d'informations affichés ci-dessous.

Valeur Description
mEnabledFeatures Fonctionnalités actuellement activées.
mDefaultEnabledFeaturesFromConfig Fonctionnalités facultatives répertoriées dans config_allowed_optional_car_features .
mDisabledFeaturesFromVhal Fonctionnalités spécifiées par le VHAL à désactiver 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.