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

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

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

คอมไพล์พื้นที่ผู้ใช้

วิธีคอมไพล์พื้นที่ผู้ใช้

  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
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