ตอนนี้ Android Automotive (AAOS) รองรับการใช้งานเป็นระบบปฏิบัติการเสมือน (VM) สำหรับผู้เข้าร่วมในสภาพแวดล้อมที่เข้ากันได้กับมาตรฐาน VirtIO ผ่านผลิตภัณฑ์ใหม่ชื่อ trout
trout
อิงตามแพลตฟอร์มอ้างอิงเสมือนจริงของ Cuttlefish และพร้อมใช้งานเป็นการกำหนดค่าอุปกรณ์ trout
ดูซอร์สโค้ดของ userspace ได้ที่ device/google/trout
ตารางด้านล่างอธิบายเทคโนโลยีที่ใช้เพื่อจำลองระบบย่อยแต่ละระบบใน trout
ฟีเจอร์ | เทคโนโลยี |
---|---|
HAL การควบคุมเสียง | vsock/gRPC |
Audio HAL | virtio-snd |
บลูทูธ | virtio-console |
Dumpstate HAL | vsock/gRPC |
Extended View System (EVS) | virtio-video |
โหมดโรงรถ | vsock/gRPC |
กราฟิก | virtio-gpu |
ระบบนำทางด้วยดาวเทียมทั่วโลก (GNSS) | virtio-console |
Sensor 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 การควบคุมเสียง และ HAL ของ Dumpstate) ติดตั้งใช้งานผ่านอินเทอร์เฟซ gRPC ที่รองรับvsock
การเชื่อมต่อระหว่างผู้ใช้ชั่วคราว AAOS กับระบบโฮสต์ที่ให้บริการใช้งานฟีเจอร์พื้นฐาน คุณต้องกําหนดค่าโดยใช้พารามิเตอร์การเชื่อมต่อ vsock
ที่ถูกต้องเป็นพร็อพเพอร์ตี้ของผู้ให้บริการ โค้ดต้นฉบับจะทำหน้าที่เป็นข้อมูลพื้นฐานที่แท้จริงเกี่ยวกับพร็อพเพอร์ตี้ที่ใช้กำหนดค่าได้และความหมายของพร็อพเพอร์ตี้เหล่านั้น
สร้าง trout
คอมไพล์พื้นที่ผู้ใช้
วิธีคอมไพล์พื้นที่ผู้ใช้
- ดาวน์โหลดซอร์สโค้ด 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 เวอร์ชัน upstream พร้อมเพิ่มข้อบังคับเฉพาะ 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 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 ต่อไปนี้ทราบว่ามีการทดสอบไม่ผ่าน
การทดสอบโปรแกรมเปิดรถ การทดสอบผู้ลงโฆษณาบลูทูธพลังงานต่ำ (BLE) โปรแกรมตรวจสอบคุณภาพวิดีโอสตรีมมิง การทดสอบอุปกรณ์ HID ของบลูทูธ การทดสอบไมโครโฟนอัลตร้าซาวด์ HiFi การทดสอบลำโพงอัลตร้าซาวด์ HiFi |
การทดสอบที่ต้องปลดล็อกอุปกรณ์ การทดสอบการตรวจหาเซ็นเซอร์แบบไดนามิก การทดสอบเซ็นเซอร์นอกร่างกาย การทดสอบการเคลื่อนไหวที่สำคัญ การทดสอบการแจ้งเตือนการกำหนดเส้นทางเอาต์พุตเสียง การทดสอบคําขอหรือคําแนะนําเครือข่าย |
บันทึกประจำรุ่น
trout
1.1 มีปัญหาที่ทราบดังต่อไปนี้
- บิลด์สำหรับผู้ใช้ของ
trout
ไม่พร้อมใช้งาน ระบบสร้างขึ้นเป็น-userdebug
ซึ่งอาจส่งผลต่อการทดสอบ CTS บางรายการ - ไม่รองรับการบูตที่ตรวจสอบแล้วของ Android (AVB)
- ระบบย่อยบางอย่างของ Android อาจไม่พร้อมใช้งาน ซึ่งรวมถึง Secure World และ NNHAL
- โดยทั่วไปแล้ว สิทธิ์เข้าถึงเครือข่ายสำหรับผู้มาเยือนจะให้บริการผ่านอะแดปเตอร์ Wi-Fi เสมือนจริงและ
virtio-net
อุโมงค์ การเชื่อมต่อฝั่งโฮสต์ขึ้นอยู่กับการใช้งานไฮเปอร์วิซอร์ของคุณ - การติดตั้งใช้งานบางอย่างอาจให้ความสามารถของบลูทูธแบบจํากัดหรือไม่มีเลย
- การส่งผ่านเหตุการณ์ VHAL อาจใช้ไม่ได้กับเซ็นเซอร์บางรุ่น
- ภาระงานบางอย่างที่หนักมากอาจทำให้การเล่นเสียงขัดข้อง
- ในการใช้งานบางกรณี การรีบูต adb ของผู้มาเยือน AAOS อาจรีบูตทั้งระบบ
- STS อาจทําให้ระบบไม่เสถียรและต้องมีการรีบูต
ดูรายละเอียดเพิ่มเติมได้ในบันทึกประจำรุ่นของพาร์ทเนอร์สำหรับการติดตั้งใช้งาน trout
ของคุณ