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