Kontrola funkcji usługi samochodowej

Domyślnie większość usług samochodowych jest obowiązkowa i zawsze włączona. Możesz jednak oznaczyć podzbiór usług samochodowych jako opcjonalny, ponieważ niektóre funkcje mogą nie być obsługiwane w każdym samochodzie.

Lista funkcji opcjonalnych

Opcjonalne funkcje sterowania samochodem, które możesz włączać i wyłączać, znajdziesz w tabeli poniżej.

Funkcja sterowania samochodem Wartość ciągu znaków
Usługa EVS w samochodzie car_evs_service
Eksperymentalna usługa ochrony kluczyków samochodowych experimental_car_keyguard_service
Usługa nawigacji samochodowej car_navigation_service
Usługa połączeń dla pasażerów samochodu car_occupant_connection_service
Usługa zdalnego dostępu do samochodu car_remote_access_service
Usługa zdalnego sterowania samochodem car_remote_device_service
Usługa telemetrii w samochodzie car_telemetry_service
Usługa powiadamiania użytkowników samochodów com.android.car.user.CarUserNoticeService
Usługa domowa klastra cluster_home_service
Usługa diagnostyczna diagnostic
Usługa wykrywania osób occupant_awareness
Usługa monitorowania miejsca na dane storage_monitoring
Usługa map dla pojazdów vehicle_map_service

Włączanie i wyłączanie funkcji sterowania samochodem

Obsługę funkcji w kompilacjach możesz kontrolować na 2 sposoby: za pomocą nakładek zasobów w czasie działania (RRO) lub warstwy abstrakcji sprzętu pojazdu (VHAL).

Używanie nakładek

Użyj konfiguracji zasobu o nazwie config_allowed_optional_car_features, która zawiera listę wszystkich funkcji opcjonalnych, jakie możesz włączyć. Gdy samochód jest uruchamiany po raz pierwszy, odnotowywane są możliwe opcjonalne funkcje samochodu, które są włączane, jeśli nie znajdują się na liście zablokowanych w VHAL. Więcej informacji o RRO znajdziesz w artykule Zmiana wartości zasobów aplikacji w czasie działania.

Korzystanie z VHAL

Warstwa abstrakcji sprzętu pojazdu (VHAL) kontroluje funkcje, służąc jako lista zablokowanych, która wyłącza określone funkcje opcjonalne. Właściwość VHAL o nazwie DISABLED_OPTIONAL_FEATURES zawiera listę opcjonalnych funkcji nakładki, które mają zostać wyłączone. Jeśli ta właściwość nie istnieje, wszystkie opcjonalne funkcje z nakładek RRO są włączone. Więcej informacji o VHAL znajdziesz w omówieniu VHAL.

Używanie poleceń powłoki debugowania

Trzecim sposobem kontrolowania, które funkcje opcjonalne mają być włączone lub wyłączone, jest użycie pary poleceń powłoki, które są dostępne tylko w kompilacjach user-debug i są przeznaczone dla programistów. Tabela w sekcji Lista funkcji opcjonalnych zawiera wartości, których należy użyć zamiast <FEATURE_STRING_VALUE>.

Aby włączyć funkcję:

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

Aby wyłączyć funkcję:

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

Sprawdzanie, które funkcje są włączone

Podczas debugowania problemów związanych z określonymi funkcjami pomocne może być sprawdzenie, które funkcje są włączone i dlaczego. Aby zrzucić informacje o feature-related, uruchom:

adb shell dumpsys car_service --services CarFeatureController

To polecenie wyświetla typy informacji wymienione poniżej.

Wartość Opis
mEnabledFeatures Obecnie włączone funkcje.
mDefaultEnabledFeaturesFromConfig Funkcje opcjonalne wymienione w config_allowed_optional_car_features.
mDisabledFeaturesFromVhal Funkcje określone przez VHAL jako wyłączone we właściwości VHAL, DISABLED_OPTIONAL_FEATURES.
mPendingEnabledFeatures Funkcje, które mają zostać włączone po ponownym uruchomieniu.
mPendingDisabledFeatures Funkcje, które mają zostać wyłączone po ponownym uruchomieniu.