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

ด้วยผลิตภัณฑ์ใหม่ชื่อ 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 ที่เหมาะสมเป็นคุณสมบัติของผู้ขาย ซอร์สโค้ดทำหน้าที่เป็นความจริงพื้นฐานขั้นสุดท้ายเกี่ยวกับคุณสมบัติที่พร้อมใช้งานสำหรับการกำหนดค่าและความหมาย

สร้างปลาเทราท์

รวบรวมพื้นที่ผู้ใช้

ในการรวบรวมพื้นที่ผู้ใช้:

  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 ทำงานในฐานะ 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 โดยเฉพาะของคุณ