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

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

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

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

התכונה 'אמצעי הבקרה של הרכב' ערך מחרוזת
שירות Car 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

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

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

שימוש ב-RRO

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

שימוש ב-VHAL

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

שימוש בפקודות Shell לניפוי באגים

דרך שלישית לקבוע אילו תכונות אופציונליות להפעיל או להשבית היא באמצעות זוג פקודות של מעטפת, שזמינות רק בגרסאות build של 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 תכונות שיושבתו אחרי הפעלה מחדש.