שליטה בתכונות של שירות הרכב

כברירת מחדל, רוב שירותי הרכב הם חובה ומופעלים תמיד. עם זאת, אפשר להגדיר קבוצת משנה של שירותים לרכב כאופציונליים, כי יכול להיות שחלק מהתכונות לא נתמכות בכל רכב.

רשימה של תכונות אופציונליות

בטבלה שבהמשך מפורטות התכונות האופציונליות של אמצעי הבקרה ברכב שאפשר להפעיל ולהשבית.

התכונה 'אמצעי בקרה של הרכב' ערך מחרוזת
שירות EVS לרכב car_evs_service
שירות ניסיוני של מגן מקשים לרכב 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_service
שירות אבחון diagnostic
שירות המודעות לתפוסה (Occupant Awareness) occupant_awareness
שירות ניטור אחסון storage_monitoring
שירות מפות לרכב vehicle_map_service

הפעלה והשבתה של תכונות השליטה ברכב

יש שתי דרכים לשלוט בתמיכה בתכונות ב-builds: באמצעות שכבות-על של משאבים בזמן ריצה (RRO) או באמצעות שכבת הפשטת החומרה של הרכב (VHAL).

שימוש ב-RRO

משתמשים בהגדרת המשאב שנקראת config_allowed_optional_car_features, שבה מפורטות כל התכונות האופציונליות שאפשר להפעיל. כשמפעילים רכב בפעם הראשונה, מציינים תכונות רכב אופציונליות אפשריות ומפעילים אותן אם הן לא ברשימת החסימה של VHAL. מידע נוסף על RROs זמין במאמר בנושא שינוי הערך של משאבי אפליקציה בזמן הריצה.

שימוש ב-VHAL

שכבת ההפשטה של חומרת הרכב (VHAL) שולטת בתכונות על ידי שימוש ברשימת חסימה להשבתה של תכונות אופציונליות ספציפיות. המאפיין VHAL שנקרא DISABLED_OPTIONAL_FEATURES מפרט את התכונות האופציונליות בשכבת העל שצריך להשבית. אם המאפיין הזה לא קיים, כל התכונות האופציונליות מ-RROs מופעלות. מידע נוסף על VHAL זמין בסקירה הכללית על VHAL.

שימוש בפקודות 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

איך קובעים אילו תכונות מופעלות

כשמנסים לפתור בעיות שקשורות לתכונות ספציפיות, כדאי לדעת אילו תכונות מופעלות ולמה. כדי ליצור קובץ dump של מידע על feature-related, מריצים את הפקודה:

adb shell dumpsys car_service --services CarFeatureController

הפקודה הזו מציגה את סוגי המידע שמופיעים בהמשך.

ערך תיאור
mEnabledFeatures התכונות שמופעלות כרגע.
mDefaultEnabledFeaturesFromConfig תכונות אופציונליות שמפורטות ב-config_allowed_optional_car_features.
mDisabledFeaturesFromVhal תכונות שצוינו על ידי VHAL להשבתה במאפיין VHAL, DISABLED_OPTIONAL_FEATURES.
mPendingEnabledFeatures התכונות שיופעלו אחרי הפעלה מחדש.
mPendingDisabledFeatures תכונות שיושבתו אחרי הפעלה מחדש.