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

ตอนนี้ 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

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

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

  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 เวอร์ชัน upstream พร้อมเพิ่มข้อบังคับเฉพาะ 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 ต่อไปนี้ทราบว่ามีการทดสอบไม่ผ่าน

การทดสอบโปรแกรมเปิดรถ
การทดสอบผู้ลงโฆษณาบลูทูธพลังงานต่ำ (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 ของคุณ