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

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

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

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

תכונות השליטה ברכב ערך מחרוזת
שירות 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
שירות ניטור אחסון storage_monitoring
שירות מפות לרכב vehicle_map_service

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

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

שימוש ב-RRO

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

שימוש ב-VHAL

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

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

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

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

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

adb shell dumpsys car_service --services CarFeatureController

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

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