פלטפורמת התייחסות

באמצעות מוצר חדש בשם trout , Android Automotive (AAOS) מספקת כעת תמיכה לפריסה כמכונה וירטואלית אורחת (VM) בסביבות התואמות לתקן VirtIO . trout מבוסס על פלטפורמת ההתייחסות הוירטואלית של Cuttlefish וזמינה בתור תצורת מכשיר trout . ניתן למצוא את קוד המקור של מרחב המשתמש בכתובת device/google/trout . הטבלה שלהלן מתארת ​​את הטכנולוגיה המשמשת לווירטואליזציה של כל אחת מתת המערכות trout .

תכונה טֶכנוֹלוֹגִיָה
בקרת שמע HAL vsock/gRPC
אודיו HAL virtio-snd
בלוטות virtio-console
מזבלה HAL vsock/gRPC
מערכת תצוגה מורחבת (EVS) virtio-video
מצב מוסך vsock/gRPC
גרָפִיקָה virtio-gpu
מערכת ניווט לוויינית גלובלית (GNSS) virtio-console
חיישן HAL 2.0 virtio-scmi and IIO
קלט מסך מגע virtio-input
רכב HAL vsock/gRPC

להאריך פורל

ניתן להשתמש trout כנקודת התחלה ליצירת יעדי אנדרואיד חדשים לרכב אינפורמטיבי (IVI). תשתית הבנייה מתוכננת להרחבה ומותאמת אישית. לדוגמה:

# Inherit trout-arm64 default values and settings
$(call inherit-product, device/google/trout/aosp_trout_arm64.mk)

# Customize HALs as needed
LOCAL_VHAL_PRODUCT_PACKAGE := vendor.oem.vhal@2.0-service
LOCAL_AUDIO_PRODUCT_PACKAGE := vendor.oem.audio@6.0-impl

# Configure SELinux policy
BOARD_SEPOLICY_DIRS += device/oem/car/sepolicy/vendor/oem

# Configure properties
LOCAL_DUMPSTATE_PROPERTIES := \
    ro.vendor.dumpstate.server.cid=22 \
    ro.vendor.dumpstate.server.port=406 \
    ro.vendor.helpersystem.log_loc=/data/dumpstate

[... and more as needed ...]

ניתן להחליף מספר HAL של אנדרואיד בנפרד בהטמעות מותאמות אישית, או לשמור על יישומי ברירת המחדל, אך להתאים פרמטרי תצורה מסוימים כדי ליצור תקשורת בין-VM נכונה בסביבת היעד. HALs אלה (כולל Vehicle HAL, Audio Control HAL ו-Dumpstate HAL) מיושמים באמצעות ממשק gRPC המגובה בחיבור vsock בין אורח AAOS למערכת מארחת המספקת את הטמעת התכונות הבסיסיות. יש להגדיר אותם באמצעות אספקת פרמטרי חיבור vsock המתאימים כמאפייני הספק. קוד המקור פועל כאמת הקרקע האולטימטיבית שעליה מאפיינים זמינים לתצורה ולסמנטיקה שלהם.

בנה פורל

הידור את מרחב המשתמש

כדי להרכיב את מרחב המשתמש:

  1. הורד את עץ המקור של אנדרואיד:
    repo init -u https://android.googlesource.com/platform/manifest -b main
    repo sync -j8
    
  2. בנה את הסביבה:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

בנה את הקרנל

עבור trout 1.1, בסיס הקוד של הליבה מסופק ב-AOSP. ליבת trout מורכבת מאותו קוד כמו ACK 5.10 במעלה הזרם, עם תוספת של מודולים ספציפיים trout עבור תת-מערכות VirtIO.

  1. כדי לשכפל את הליבה, הרץ:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. כדי לבנות את ריצת הליבה:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

ייתכן שלספק ה-Hypervisor שלך נדרשת תצורת ליבה אחרת או מודולים נוספים שצריך להידור. הקפד לעקוב אחר הנחיה ספציפית זו, אם היא מסופקת.

הענות

כאשר AAOS פועל כ-VM אורח, המטרה שלנו היא להיות פריסת אנדרואיד תואמת מנקודת המבט של המסגרת. בעיות צד מארח הן התחום של כל יישום ומחוץ לתחום trout 1.1.

לא ביצענו אימות xTS נוסף על trout 1.1. המשך להתייחס לדיון שלהלן על תמיכת CTS trout 1.0.

trout 1.0 נותרו מספר בעיות CTS. ידוע כי מודולי ה-CTS הבאים כוללים כשלי בדיקה:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
CtsVideoTestCases
CtsHostsideNetworkTests
CtsActivityManagerBackgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
CtsContentTestCases
CtsCarHostTestCases
CtsOsTestCases
CtsStatsdHostTestCases
CtsVoiceInteractionTestCases
CtsViewTestCases
CtsCameraTestCases
CtsLocationGnssTestCases
CtsGraphicsTestCases
CtsIncidentHostTestCases
CtsInstallHostTestCases
CtsNativeVerifiedBootTestCases
CtsNetTestCases
CtsWindowManagerDeviceTestCases
CtsMediaStressTestCases
CtsAppTestCases
CtsUsbTests
CtsAutoFillServiceTestCases
CtsDisplayTestCases
CtsMediaTestCases
CtsDeqpTestCases
CtsDumpsysHostTestCases
CtsOpenGLTestCasesCtsLibcoreTestCases
CtsSecurityHostTestCases
CtsInputMethodTestCases
CtsStatsdAtomHostTestCases
CtsPermission4TestCases
CtsNNAPIBenchmarkTestCases
CtsSimpleperfTestCases
CtsAccessibilityTestCases
CtsAppSecurityHostTestCases
CtsKeystoreTestCases

ידוע שתחומי ה-CTS-V הבאים כוללים כשלים בבדיקה:

מבחן משגר רכב
בדיקת מפרסם ב-Bluetooth Low Energy (BLE).
מאמת איכות וידאו זורמת
בדיקת מכשיר Bluetooth HID
בדיקת מיקרופון Hifi אולטרסאונד
בדיקת רמקול Hifi אולטרסאונד
מכשיר לא נעול נדרש בדיקה
מבחן גילוי חיישן דינמי
בדיקת חיישן גוף כבוי
מבחן תנועה משמעותי
בדיקת ניתוב יציאת שמע
בדיקת בקשת רשת או הצעה

מכתבי שחרור

trout 1.1 מכיל את הבעיות הידועות הבאות:

  • מבנה משתמש של trout אינו זמין. המערכת בנויה כ- -userdebug , מה שיכול להשפיע על כמה בדיקות CTS.
  • Android Verified Boot (AVB) אינו נתמך.
  • ייתכן שתת-מערכות אנדרואיד מסוימות לא יהיו זמינות, כולל עולם מאובטח ו-NNHAL.
  • גישה לרשת אורחים מסופקת בדרך כלל באמצעות מתאם Wi-Fi וירטואלי ומנהרה virtio-net . קישוריות בצד המארח תלויה בפריסת ה-Hypervisor הספציפית שלך.
  • יישומים מסוימים עשויים להציע יכולת Bluetooth מוגבלת או ללא.
  • ייתכן שהזרקת אירוע VHAL לא תעבוד עבור חיישנים מסוימים.
  • כמה עומסי עבודה כבדים עלולים לגרום לתקלות בהפעלת אודיו.
  • ביישומים מסוימים, אתחול adb של אורח AAOS עשוי לאתחל את המערכת כולה.
  • STS יכול לגרום לאי יציבות של המערכת ולדרוש אתחול מחדש.

לפרטים נוספים, עיין בהערות השחרור של השותף עבור הפריסה הספציפית שלך של trout .