Android Automotive (AAOS) รองรับการติดตั้งใช้งานเป็นเครื่องเสมือน (VM) สำหรับผู้มาเยือนในสภาพแวดล้อมที่เข้ากันได้กับมาตรฐาน
VirtIO
แล้วผ่านผลิตภัณฑ์ใหม่ที่ชื่อว่า trout trout อิงตามแพลตฟอร์มอ้างอิงเสมือน
Cuttlefish
และพร้อมใช้งานเป็นการกำหนดค่าอุปกรณ์ trout คุณดูซอร์สโค้ด Userspace ได้ที่ device/google/trout ตารางด้านล่างอธิบายเทคโนโลยีที่ใช้ในการจำลองระบบย่อยแต่ละระบบใน trout
| ฟีเจอร์ | เทคโนโลยี |
|---|---|
| Audio Control HAL | vsock/gRPC |
| Audio HAL | virtio-snd |
| บลูทูธ | virtio-console |
| Dumpstate HAL | vsock/gRPC |
| Extended View System (EVS) | virtio-video |
| โหมดจอดรถ | vsock/gRPC |
| กราฟิก | virtio-gpu |
| Global Navigation Satellite System (GNSS) | virtio-console |
| Sensor HAL 2.0 | virtio-scmi and IIO |
| อินพุตหน้าจอสัมผัส | virtio-input |
| Vehicle HAL | vsock/gRPC |
ขยาย `trout`
คุณใช้ trout เป็นจุดเริ่มต้นในการสร้างเป้าหมาย Android ใหม่สำหรับระบบสาระบันเทิงในรถยนต์ (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 เหล่านี้ (รวมถึง HAL ยานพาหนะ, Audio Control HAL และ Dumpstate HAL) ได้รับการติดตั้งใช้งานผ่านอินเทอร์เฟซ gRPC ที่รองรับโดยการเชื่อมต่อ vsock ระหว่างผู้มาเยือน AAOS กับระบบโฮสต์ที่ให้การติดตั้งใช้งานฟีเจอร์พื้นฐาน คุณต้องกำหนดค่า HAL เหล่านี้โดยระบุพารามิเตอร์การเชื่อมต่อ vsock ที่เหมาะสมเป็นพร็อพเพอร์ตี้ของผู้ให้บริการ ซอร์สโค้ดทำหน้าที่เป็นแหล่งข้อมูลที่เชื่อถือได้ที่สุดเกี่ยวกับพร็อพเพอร์ตี้ที่พร้อมใช้งานสำหรับการกำหนดค่าและความหมายของพร็อพเพอร์ตี้เหล่านั้น
สร้าง `trout`
คอมไพล์ Userspace
วิธีคอมไพล์ Userspace
- ดาวน์โหลดซอร์สโค้ด 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 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 ต่อไปนี้ทราบว่ามีข้อผิดพลาดในการทดสอบ
| Car Launcher test Bluetooth Low Energy (BLE) Advertiser test Streaming Video Quality Verifier Bluetooth HID Device test Hifi Ultrasound Microphone test Hifi Ultrasound Speaker test |
Unlocked Device Required test Dynamic Sensor Discovery test Off Body Sensor test Significant Motion test Audio Output Routing Notification test Network Request or Suggestion test |
บันทึกประจำรุ่น
trout 1.1 มีปัญหาที่ทราบดังต่อไปนี้
- บิลด์ของผู้ใช้
troutไม่พร้อมใช้งาน ระบบสร้างขึ้นเป็น-userdebugซึ่งอาจส่งผลต่อการทดสอบ CTS บางรายการ - ไม่รองรับ Android Verified Boot (AVB)
- ระบบย่อยบางระบบของ Android อาจไม่พร้อมใช้งาน ซึ่งรวมถึง Secure World และ NNHAL
- โดยทั่วไปแล้ว การเข้าถึงเครือข่ายสำหรับผู้มาเยือนจะดำเนินการผ่านอะแดปเตอร์ Wi-Fi ที่จำลองขึ้นและ
อุโมงค์
virtio-netการเชื่อมต่อฝั่งโฮสต์ขึ้นอยู่กับการติดตั้งใช้งานไฮเปอร์ไวเซอร์เฉพาะของคุณ - การติดตั้งใช้งานบางอย่างอาจมีความสามารถของบลูทูธแบบจำกัดหรือไม่มีเลย
- การแทรกเหตุการณ์ VHAL อาจใช้ไม่ได้กับเซ็นเซอร์บางตัว
- ปริมาณงานที่มากบางอย่างอาจทำให้การเล่นเสียงมีข้อบกพร่อง
- ในการติดตั้งใช้งานบางอย่าง การรีบูตผู้มาเยือน AAOS ด้วย adb อาจรีบูตระบบทั้งหมด
- STS อาจทำให้ระบบไม่เสถียรและต้องรีบูต
ดูรายละเอียดเพิ่มเติมได้ในบันทึกประจำรุ่นของพาร์ทเนอร์สำหรับการติดตั้งใช้งาน trout เฉพาะของคุณ