באמצעות מוצר חדש בשם 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
המתאימים כמאפייני הספק. קוד המקור פועל כאמת הקרקע האולטימטיבית שעליה מאפיינים זמינים לתצורה ולסמנטיקה שלהם.
בנה פורל
הידור את מרחב המשתמש
כדי להרכיב את מרחב המשתמש:
- הורד את עץ המקור של אנדרואיד:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- בנה את הסביבה:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
בנה את הקרנל
עבור trout
1.1, בסיס הקוד של הליבה מסופק ב-AOSP. ליבת trout
מורכבת מאותו קוד כמו ACK 5.10 במעלה הזרם, עם תוספת של מודולים ספציפיים trout
עבור תת-מערכות VirtIO.
- כדי לשכפל את הליבה, הרץ:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- כדי לבנות את ריצת הליבה:
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
.