แพลตฟอร์มอ้างอิง

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

  1. ดาวน์โหลดซอร์สโค้ด Android
    repo init -u https://android.googlesource.com/platform/manifest -b main
    repo sync -j8
    
  2. สร้างสภาพแวดล้อม
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

สร้างเคอร์เนล

สำหรับ trout 1.1 ระบบจะระบุฐานโค้ดเคอร์เนลไว้ใน AOSP เคอร์เนล trout ประกอบด้วยโค้ดเดียวกับ ACK 5.10 ต้นทาง พร้อมด้วยโมดูลเฉพาะของ trout-สำหรับระบบย่อย VirtIO

  1. หากต้องการโคลนเคอร์เนล ให้เรียกใช้คำสั่งต่อไปนี้
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. หากต้องการสร้างเคอร์เนล ให้เรียกใช้คำสั่งต่อไปนี้
    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 เฉพาะของคุณ