Controle de recursos do serviço de carro

Por padrão, a maioria dos serviços automotivos é obrigatória e está sempre ativada. No entanto, é possível designar um subconjunto de serviços de carro como opcional porque alguns recursos podem não ser compatíveis com todos os carros.

Lista de recursos opcionais

Os recursos opcionais de controle do carro que podem ser ativados e desativados estão listados na tabela abaixo.

Recurso de controle do carro Valor de string
Serviço Car EVS car_evs_service
Serviço experimental de proteção de chaves de carro experimental_car_keyguard_service
Serviço de navegação para carros car_navigation_service
Serviço de conexão para ocupantes de carros car_occupant_connection_service
Serviço de acesso remoto a carros car_remote_access_service
Serviço de dispositivo remoto para carro car_remote_device_service
Serviço de telemetria do carro car_telemetry_service
Serviço de aviso ao usuário do carro com.android.car.user.CarUserNoticeService
Serviço de casa de cluster cluster_home_service
Serviço de diagnóstico diagnostic
Serviço de detecção de ocupantes occupant_awareness
Serviço de monitoramento de armazenamento storage_monitoring
Serviço de mapa veicular vehicle_map_service

Ativar e desativar recursos de controle do carro

Você pode controlar o suporte a recursos nos seus builds de duas maneiras: com sobreposições de recursos de tempo de execução (RROs) ou pela camada de abstração de hardware do veículo (VHAL).

Usar RROs

Use a configuração de recurso chamada config_allowed_optional_car_features, que lista todos os recursos opcionais que podem ser ativados. Quando um carro é ligado pela primeira vez, os possíveis recursos opcionais são observados e ativados se não estiverem na lista de bloqueio da VHAL. Para saber mais sobre RROs, consulte Mudar o valor dos recursos de um app no momento da execução.

Usar a VHAL

A camada de abstração de hardware do veículo (VHAL) controla recursos servindo como uma lista de bloqueio para desativar recursos opcionais específicos. A propriedade VHAL chamada DISABLED_OPTIONAL_FEATURES lista os recursos opcionais na sobreposição que serão desativados. Se essa propriedade não existir, todos os recursos opcionais das RROs serão ativados. Para saber mais sobre a VHAL, consulte a visão geral da VHAL.

Usar comandos do shell de depuração

Uma terceira maneira de controlar quais recursos opcionais ativar ou desativar é usando um par de comandos do shell, que estão disponíveis apenas em builds user-debug e são fornecidos para uso por desenvolvedores. A tabela em Lista de recursos opcionais contém os valores a serem usados em vez de <FEATURE_STRING_VALUE>.

Para ativar um recurso:

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

Para desativar um recurso:

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

Determinar quais recursos estão ativados

Ao depurar problemas relacionados a recursos específicos, é útil saber quais recursos estão ativados e por quê. Para despejar informações de feature-related, execute:

adb shell dumpsys car_service --services CarFeatureController

Esse comando lista os tipos de informações mostrados abaixo.

Valor Descrição
mEnabledFeatures Recursos ativados no momento.
mDefaultEnabledFeaturesFromConfig Recursos opcionais listados em config_allowed_optional_car_features.
mDisabledFeaturesFromVhal Recursos especificados pela VHAL para serem desativados na propriedade VHAL, DISABLED_OPTIONAL_FEATURES.
mPendingEnabledFeatures Recursos a serem ativados após uma reinicialização.
mPendingDisabledFeatures Recursos a serem desativados após uma reinicialização.