Nền tảng tham chiếu

Thông qua một sản phẩm mới có tên là trout, Android Automotive (AAOS) hiện hỗ trợ việc triển khai dưới dạng một máy ảo (VM) khách trong các môi trường tương thích với tiêu chuẩn VirtIO. trout dựa trên nền tảng tham chiếu ảo Cuttlefish và có sẵn dưới dạng cấu hình thiết bị trout. Bạn có thể tìm thấy mã nguồn không gian người dùng tại device/google/trout. Bảng dưới đây mô tả công nghệ được dùng để ảo hoá từng hệ thống con trong trout.

Tính năng Công nghệ
HAL điều khiển âm thanh vsock/gRPC
HAL âm thanh virtio-snd
Bluetooth virtio-console
Dumpstate HAL vsock/gRPC
Hệ thống tầm nhìn mở rộng (EVS) virtio-video
Chế độ gara vsock/gRPC
Đồ hoạ virtio-gpu
Hệ thống vệ tinh định vị toàn cầu (GNSS) virtio-console
Sensor HAL 2.0 virtio-scmi and IIO
Dữ liệu đầu vào trên màn hình cảm ứng virtio-input
HAL của phương tiện vsock/gRPC

Kéo dài thời gian tạm ngưng

trout có thể được dùng làm điểm bắt đầu để tạo các mục tiêu Android mới cho hệ thống Thông tin giải trí trong xe (IVI). Cơ sở hạ tầng bản dựng được thiết kế để có thể mở rộng và tuỳ chỉnh. Ví dụ:

# 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 ...]

Bạn có thể thay thế riêng một số HAL Android bằng các triển khai tuỳ chỉnh hoặc duy trì các triển khai mặc định nhưng điều chỉnh một số thông số cấu hình để thiết lập giao tiếp thích hợp giữa các VM trong môi trường mục tiêu. Các HAL này (bao gồm Vehicle HAL, Audio Control HAL và Dumpstate HAL) được triển khai thông qua giao diện gRPC được hỗ trợ bởi một kết nối vsock giữa khách AAOS và hệ thống lưu trữ cung cấp việc triển khai tính năng cơ bản. Bạn phải định cấu hình các thông số này bằng cách cung cấp các thông số kết nối vsock thích hợp dưới dạng thuộc tính của nhà cung cấp. Mã nguồn đóng vai trò là nguồn thông tin chính xác nhất về những thuộc tính có thể định cấu hình và ngữ nghĩa của chúng.

Bản dựng trout

Biên dịch không gian người dùng

Cách biên dịch không gian người dùng:

  1. Tải cây nguồn Android xuống:
    repo init -u https://android.googlesource.com/platform/manifest -b main
    repo sync -j8
    
  2. Tạo môi trường:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

Tạo nhân

Đối với trout 1.1, toàn bộ mã nguồn nhân hệ điều hành được cung cấp trong AOSP (Dự án nguồn mở Android). Nhân trout bao gồm cùng một mã như ACK 5.10 ở nguồn trên, cùng với việc bổ sung các mô-đun dành riêng cho trout cho các hệ thống con VirtIO.

  1. Để sao chép hạt nhân, hãy chạy:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. Để tạo bản dựng nhân hệ điều hành, hãy chạy:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

Nhà cung cấp siêu giám sát của bạn có thể yêu cầu một cấu hình kernel khác hoặc các mô-đun bổ sung cần được biên dịch. Hãy nhớ tuân thủ hướng dẫn cụ thể này (nếu có).

Tuân thủ

Khi AAOS chạy dưới dạng một VM khách, mục tiêu của chúng tôi là triển khai Android tương thích theo quan điểm của khung. Các vấn đề về phía máy chủ lưu trữ thuộc phạm vi của từng hoạt động triển khai và nằm ngoài phạm vi của trout 1.1.

Chúng tôi chưa thực hiện quy trình xác thực xTS bổ sung trên trout 1.1. Tiếp tục tham khảo nội dung thảo luận bên dưới về khả năng hỗ trợ CTS trong trout 1.0.

Trong trout 1.0, vẫn còn một số vấn đề về CTS. Các mô-đun CTS sau đây được biết là có lỗi kiểm thử:

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

Các khu vực CTS-V sau đây được biết là có các lỗi kiểm thử:

Kiểm thử Car Launcher
Kiểm thử Bluetooth Low Energy (BLE) Advertiser
Trình xác minh chất lượng video truyền phát trực tiếp
Kiểm thử thiết bị Bluetooth HID
Kiểm thử micrô siêu âm Hifi
Kiểm thử loa siêu âm Hifi
Bài kiểm thử Yêu cầu thiết bị đã mở khoá
Bài kiểm thử Khám phá cảm biến động
Bài kiểm thử Cảm biến ngoài cơ thể
Bài kiểm thử Chuyển động đáng kể
Bài kiểm thử Thông báo định tuyến đầu ra âm thanh
Bài kiểm thử Yêu cầu hoặc đề xuất mạng

Ghi chú phát hành

trout 1.1 có các vấn đề đã biết sau đây:

  • Không có bản dựng trout cho người dùng. Hệ thống được tạo dưới dạng -userdebug, có thể ảnh hưởng đến một số kiểm thử CTS.
  • Không hỗ trợ tính năng Xác minh quy trình khởi động trên Android (AVB).
  • Một số hệ thống con của Android có thể không hoạt động, bao gồm cả thế giới bảo mật và NNHAL.
  • Quyền truy cập vào mạng khách thường được cung cấp thông qua một bộ chuyển đổi Wi-Fi ảo và một đường hầm virtio-net. Khả năng kết nối phía máy chủ lưu trữ phụ thuộc vào việc triển khai trình giám sát siêu ảo hoá cụ thể của bạn.
  • Một số thiết bị có thể có khả năng Bluetooth hạn chế hoặc không có khả năng này.
  • Thao tác chèn sự kiện VHAL có thể không hoạt động đối với một số cảm biến.
  • Một số khối lượng công việc lớn có thể gây ra sự cố khi phát âm thanh.
  • Trong một số trường hợp triển khai, lệnh adb reboot của hệ điều hành khách AAOS có thể khởi động lại toàn bộ hệ thống.
  • STS có thể khiến hệ thống mất ổn định và cần khởi động lại.

Để biết thêm thông tin chi tiết, hãy tham khảo ghi chú phát hành của đối tác cho hoạt động triển khai trout cụ thể của bạn.