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

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

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

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

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

שימוש ב-VHAL

שכבת הפשטת החומרה של הרכב (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 תכונות שמושבתות אחרי הפעלה מחדש.