ด้วยผลิตภัณฑ์ใหม่ชื่อ trout
ขณะนี้ Android Automotive (AAOS) ให้การสนับสนุนสำหรับการปรับใช้เป็นเครื่องเสมือนแขก (VM) ในสภาพแวดล้อมที่เข้ากันได้กับมาตรฐาน VirtIO trout
จะขึ้นอยู่กับแพลตฟอร์มอ้างอิงเสมือน Cuttlefish และพร้อมใช้งานเป็นการกำหนดค่าอุปกรณ์ trout
สามารถดูซอร์สโค้ดของ Userspace ได้ที่ 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
สามารถใช้เป็นจุดเริ่มต้นในการสร้างเป้าหมาย Android ในรถยนต์ Infotainment (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 ...]
Android HAL หลายตัวสามารถแทนที่ทีละรายการด้วยการใช้งานแบบกำหนดเอง หรือคงการใช้งานเริ่มต้นไว้ แต่มีการปรับพารามิเตอร์การกำหนดค่าบางอย่างเพื่อสร้างการสื่อสารระหว่าง VM ที่เหมาะสมในสภาพแวดล้อมเป้าหมาย HAL เหล่านี้ (รวมถึง Vehicle HAL, Audio Control HAL และ Dumpstate HAL) ถูกนำมาใช้โดยใช้อินเทอร์เฟซ gRPC ที่สนับสนุนโดยการเชื่อมต่อ vsock
ระหว่าง AAOS guest และระบบโฮสต์ที่ให้การใช้งานคุณลักษณะพื้นฐาน สิ่งเหล่านี้ต้องได้รับการกำหนดค่าโดยการจัดหาพารามิเตอร์การเชื่อมต่อ vsock
ที่เหมาะสมเป็นคุณสมบัติของผู้ขาย ซอร์สโค้ดทำหน้าที่เป็นความจริงพื้นฐานขั้นสุดท้ายเกี่ยวกับคุณสมบัติที่พร้อมใช้งานสำหรับการกำหนดค่าและความหมาย
สร้างปลาเทราท์
รวบรวมพื้นที่ผู้ใช้
ในการรวบรวมพื้นที่ผู้ใช้:
- ดาวน์โหลดแผนผังต้นทางของ Android:
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
ซัพพลายเออร์ไฮเปอร์ไวเซอร์ของคุณอาจมีการกำหนดค่าเคอร์เนลอื่นที่จำเป็นหรือโมดูลเพิ่มเติมที่จำเป็นต้องรวบรวม อย่าลืมปฏิบัติตามคำแนะนำเฉพาะนี้ หากระบุไว้
การปฏิบัติตาม
เมื่อ AAOS ทำงานในฐานะ Guest VM เป้าหมายของเราคือการปรับใช้ Android ที่เข้ากันได้จากมุมมองของเฟรมเวิร์ก ปัญหาด้านโฮสต์คือขอบเขตของการนำไปปฏิบัติแต่ละครั้งและอยู่นอกขอบเขตของ trout
1.1
เราไม่ได้ดำเนินการตรวจสอบ xTS เพิ่มเติมใน trout
1.1 โปรดดูการอภิปรายด้านล่างเกี่ยวกับการสนับสนุน CTS ใน trout
1.0
ใน trout
1.0 ปัญหา CTS หลายประการยังคงอยู่ เป็นที่ทราบกันว่าโมดูล CTS ต่อไปนี้รวมถึงความล้มเหลวในการทดสอบ:
CtsStagedInstallHostTestCases CtsRollbackManagerHostTestCases CtsVideoTestCases CtsHostsideNetworkTests CtsActivityManagerพื้นหลังกิจกรรมTestCases 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 การทดสอบไมโครโฟนไฮไฟอัลตราซาวนด์ ทดสอบลำโพงไฮไฟอัลตราซาวนด์ | การทดสอบที่จำเป็นในการปลดล็อคอุปกรณ์ การทดสอบการค้นพบเซนเซอร์แบบไดนามิก การทดสอบเซ็นเซอร์นอกร่างกาย การทดสอบการเคลื่อนไหวที่สำคัญ การทดสอบการแจ้งเตือนการกำหนดเส้นทางเอาต์พุตเสียง การทดสอบคำขอเครือข่ายหรือข้อเสนอแนะ |
บันทึกประจำรุ่น
trout
1.1 มีปัญหาที่ทราบดังต่อไปนี้:
- บิลด์ผู้ใช้ของ
trout
ไม่พร้อมใช้งาน ระบบถูกสร้างขึ้นเป็น-userdebug
ซึ่งอาจส่งผลต่อการทดสอบ CTS บางอย่าง - ไม่รองรับ Android Verified Boot (AVB)
- ระบบย่อย Android บางระบบอาจไม่พร้อมใช้งาน รวมถึงโลกที่ปลอดภัยและ NNHAL
- โดยทั่วไป การเข้าถึงเครือข่ายแขกจะได้รับผ่านอแด็ปเตอร์ Wi-Fi เสมือนและอุโมงค์
virtio-net
การเชื่อมต่อฝั่งโฮสต์ขึ้นอยู่กับการปรับใช้ไฮเปอร์ไวเซอร์เฉพาะของคุณ - การใช้งานบางอย่างอาจมีความสามารถด้าน Bluetooth ที่จำกัดหรือไม่มีเลย
- การแทรกเหตุการณ์ VHAL อาจใช้งานไม่ได้กับเซ็นเซอร์บางตัว
- ปริมาณงานหนักบางอย่างอาจทำให้เกิดข้อผิดพลาดในการเล่นเสียง
- ในการใช้งานบางอย่าง การรีบูต adb ของ AAOS guest อาจรีบูตทั้งระบบ
- STS อาจทำให้ระบบไม่เสถียรและจำเป็นต้องรีบูต
สำหรับรายละเอียดเพิ่มเติม โปรดดูบันทึกประจำรุ่นของพันธมิตรสำหรับการปรับใช้ trout
โดยเฉพาะของคุณ