ตอนนี้ Android Automotive (AAOS) ให้การสนับสนุนผ่านผลิตภัณฑ์ใหม่ชื่อ trout
แล้ว
สำหรับการใช้งานเป็นเครื่องเสมือน (VM) สำหรับผู้มาเยือนในสภาพแวดล้อมที่ใช้งานร่วมกับ
VirtIO
มาตรฐาน trout
อิงจาก
หมึกกระดอง
แพลตฟอร์มอ้างอิงเสมือนและพร้อมใช้งานในการกำหนดค่าอุปกรณ์ของ trout
ดูซอร์สโค้ดของ userspace ได้ที่ device/google/trout
ตาราง
ด้านล่างอธิบายถึงเทคโนโลยีที่ใช้ในการจำลองระบบย่อยแต่ละระบบใน trout
ฟีเจอร์ | เทคโนโลยี |
---|---|
HAL การควบคุมเสียง | vsock/gRPC |
เสียง HAL | virtio-snd |
บลูทูธ | virtio-console |
Dumpstate 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) ใหม่ได้
เป้าหมาย Android โครงสร้างพื้นฐานของบิลด์ได้รับการออกแบบมาให้ขยายและปรับแต่งได้
เช่น
# 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 ของ Android หลายรายการสามารถแทนที่แต่ละรายการด้วยการใช้งานที่กำหนดเอง หรือ
ยังคงติดตั้งใช้งานตามค่าเริ่มต้น แต่ปรับเปลี่ยนพารามิเตอร์การกำหนดค่าบางอย่างเพื่อสร้าง
การสื่อสารระหว่าง VM ที่เหมาะสมในสภาพแวดล้อมเป้าหมาย HAL เหล่านี้ (รวมถึง HAL ยานพาหนะ
HAL การควบคุมเสียง และ Dumpstate HAL) ดำเนินการโดยใช้อินเทอร์เฟซ gRPC ที่สนับสนุนโดย
vsock
การเชื่อมต่อระหว่างผู้เข้าร่วม AAOS และระบบโฮสต์ที่มอบ
การใช้งานฟีเจอร์ที่สำคัญ ซึ่งต้องได้รับการกำหนดค่าด้วยการจัดหา
มีพารามิเตอร์การเชื่อมต่อ 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 ทำงานเป็น VM ของผู้เข้าร่วม เป้าหมายของเราคือการทำให้ Android ใช้งานได้จาก
ของเฟรมเวิร์กด้วย ปัญหาฝั่งโฮสต์คือขอบเขตเฉพาะของแต่ละการติดตั้งใช้งานและอยู่นอกเหนือการควบคุม
ขอบเขตของ trout
1.1
เรายังไม่ได้ดำเนินการตรวจสอบ xTS เพิ่มเติมใน trout
1.1 ดำเนินการต่อ
อ้างถึงการสนทนาด้านล่างเกี่ยวกับการสนับสนุนของ CTS ใน trout
1.0
ใน trout
1.0 ยังมีปัญหา CTS หลายรายการ เราทราบโมดูล CTS ต่อไปนี้
รวมการทดสอบที่ล้มเหลว:
CtsStagedInstallHostTestCases CtsRollbackManagerHostTestCases CtsVideoTestCases CtsHostsideNetworkTests CtsActivityManagerBackgroundActivityTestCases CtsAdbHostTestCases CtsNativeฮาร์ดแวร์ของTestCases 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 CtsPermissions4TestCases CtsNNAPIComparisonTestCases CtsSimpleperfTestCases CtsAccessibilityTestCases CtsAppSecurityHostTestCases CtsKeystoreTestCases |
เป็นที่ทราบว่าพื้นที่ CTS-V ต่อไปนี้มีการทดสอบที่ล้มเหลว
การทดสอบ Launcher ในรถยนต์ การทดสอบสำหรับผู้ลงโฆษณาบลูทูธพลังงานต่ำ (BLE) ผู้ตรวจสอบคุณภาพวิดีโอของการสตรีม การทดสอบอุปกรณ์บลูทูธ HID การทดสอบไมโครโฟน HiFi อัลตราซาวด์ การทดสอบลำโพง HiFi อัลตราซาวด์ |
การทดสอบที่จำเป็นสำหรับอุปกรณ์ที่ปลดล็อก การทดสอบการค้นพบเซ็นเซอร์แบบไดนามิก การทดสอบเซ็นเซอร์นอกร่างกาย การทดสอบการเคลื่อนไหวที่สำคัญ การทดสอบการแจ้งเตือนการกำหนดเส้นทางเอาต์พุตเสียง การทดสอบคำขอหรือคำแนะนำเครือข่าย |
บันทึกประจำรุ่น
trout
1.1 มีปัญหาที่ทราบต่อไปนี้
- บิลด์ผู้ใช้ของ
trout
ไม่พร้อมใช้งาน ระบบสร้างขึ้นเป็น-userdebug
ซึ่งอาจส่งผลต่อการทดสอบ CTS บางรายการ - ระบบไม่รองรับการเปิดเครื่องที่ได้รับการยืนยันของ Android (AVB)
- ระบบย่อยของ Android บางระบบอาจไม่พร้อมใช้งาน รวมถึง Secure World และ NNHAL
- โดยทั่วไป การเข้าถึงเครือข่ายสำหรับผู้มาเยือนทำได้โดยใช้อะแดปเตอร์ Wi-Fi เสมือนจริงและ
virtio-net
อุโมงค์ข้อมูล การเชื่อมต่อฝั่งโฮสต์ขึ้นอยู่กับการติดตั้งใช้งาน Hypervisor ที่เฉพาะเจาะจง - การใช้งานบางอย่างอาจช่วยให้บลูทูธได้จำกัดหรือไม่มีเลย
- การฉีดเหตุการณ์ VHAL อาจใช้งานไม่ได้สำหรับเซ็นเซอร์บางตัว
- ภาระงานที่หนักบางอย่างอาจทำให้การเล่นเสียงบกพร่องได้
- ในการใช้งานบางอย่าง การรีบูต adb ของผู้มาเยือน AAOS อาจรีบูตทั้งระบบ
- STS อาจทำให้ระบบไม่เสถียรและต้องรีบูต
สำหรับรายละเอียดเพิ่มเติม โปรดดูที่บันทึกประจำรุ่นของพาร์ทเนอร์สำหรับการติดตั้งใช้งาน
trout