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