Nền tảng tham khảo

Thông qua sản phẩm mới có tên trout , Android Automotive (AAOS) hiện cung cấp hỗ trợ triển khai dưới dạng máy ảo khách (VM) 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 . Mã nguồn không gian người dùng có thể được tìm thấy tại device/google/trout . Bảng dưới đây mô tả công nghệ được sử dụng để ảo hóa từng hệ thống con trong trout .

Tính năng Công nghệ
Điều khiển âm thanh HAL vsock/gRPC
Âm thanh HAL virtio-snd
Bluetooth virtio-console
HAL bãi rác vsock/gRPC
Hệ thống xem mở rộng (EVS) virtio-video
Chế độ gara vsock/gRPC
đồ họa virtio-gpu
Hệ thống vệ tinh định vị toàn cầu (GNSS) virtio-console
Cảm biến HAL 2.0 virtio-scmi and IIO
Đầu vào màn hình cảm ứng virtio-input
Xe HAL vsock/gRPC

Mở rộng cá hồi

trout có thể được sử dụng làm điểm khởi đầu để tạo các mục tiêu Android Thông tin giải trí trên xe (IVI) mới. Cơ sở hạ tầng xây dựng được thiết kế để được mở rộng và tùy 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 ...]

Một số HAL Android có thể được thay thế riêng lẻ bằng các triển khai tùy chỉnh hoặc các triển khai mặc định được duy trì nhưng một số tham số cấu hình nhất định được điều chỉnh để thiết lập giao tiếp giữa các VM thích hợp trong môi trường đích. Các HAL này (bao gồm HAL phương tiện, HAL điều khiển âm thanh và HAL kết xuất) được triển khai bằng giao diện gRPC được hỗ trợ bởi kết nối vsock giữa máy khách AAOS và hệ thống máy chủ cung cấp khả năng triển khai tính năng cơ bản. Chúng phải được cấu hình bằng cách cung cấp các tham số kết nối vsock thích hợp làm thuộc tính của nhà cung cấp. Mã nguồn đóng vai trò là nền tảng cơ bản cuối cùng về các thuộc tính có sẵn cho cấu hình và ngữ nghĩa của chúng.

Xây dựng cá hồi

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

Để biên dịch không gian người dùng:

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

Xây dựng hạt nhân

Đối với trout 1.1, cơ sở mã hạt nhân được cung cấp trong AOSP. Nhân trout bao gồm cùng mã với ACK 5.10 ngược dò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 kernel, hãy chạy:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. Để xây dựng kernel chạy:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

Nhà cung cấp bộ ảo hóa của bạn có thể có yêu cầu cấu hình hạt nhân khác hoặc các mô-đun bổ sung cần được biên dịch. Hãy chắc chắn làm theo hướng dẫn cụ thể này, nếu được cung cấp.

Sự tuân thủ

Khi AAOS chạy dưới dạng máy ảo khách, mục tiêu của chúng tôi là triển khai Android tương thích từ góc độ khung. Các vấn đề phía máy chủ là mục đích của 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 xác thực xTS bổ sung trên trout 1.1. Tiếp tục tham khảo phần thảo luận bên dưới về 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ó chứa các lỗi kiểm tra:

CtsStagedInstallHostTestCase
CtsRollbackManagerHostTestCase
CtsVideoTestCase
CtsHostsideNetworkTests
CtsActivityManagerBackgroundActivityTestCase
CtsAdbHostTestCase
CtsNativeHardwareTestCase
CtsContentTestCase
CtsCarHostTestCase
CtsOsTestCase
CtsStatsdHostTestCase
CtsVoiceInteractionTestCase
CtsViewTestCase
CtsCameraTestCase
CtsLocationGnssTestCase
CtsGraphicsTestCase
CtsIncidentHostTestCase
CtsInstallHostTestCase
CtsNativeĐã xác minhBootTestCase
CtsNetTestCase
CtsWindowManagerDeviceTestCase
CtsMediaStressTestCase
CtsAppTestCase
Kiểm tra CtsUsb
CtsAutoFillServiceTestCase
CtsDisplayTestTrường hợp
CtsMediaTestCase
CtsDeqpTestCase
CtsDumpsysHostTestCase
CtsOpenGLTestCaseCtsLibcoreTestCase
CtsSecurityHostTestCase
CtsInputMethodTestCase
CtsStatsdAtomHostTestCase
CtsPermission4TestCase
CtsNNAPIĐiểm chuẩnCác trường hợp thử nghiệm
CtsSimpleperfTestCase
CtsAccessibilityTestCase
CtsAppSecurityHostTestCase
CtsKeystoreTestCase

Các khu vực CTS-V sau đây được biết là bao gồm các lỗi kiểm tra:

Thử nghiệm phóng xe
Thử nghiệm nhà quảng cáo Bluetooth năng lượng thấp (BLE)
Trình xác minh chất lượng video phát trực tuyến
Kiểm tra thiết bị Bluetooth HID
Kiểm tra micro siêu âm Hifi
Kiểm tra loa siêu âm Hifi
Kiểm tra yêu cầu thiết bị đã mở khóa
Thử nghiệm khám phá cảm biến động
Kiểm tra cảm biến cơ thể tắt
Kiểm tra chuyển động đáng kể
Kiểm tra thông báo định tuyến đầu ra âm thanh
Kiểm tra yêu cầu hoặc đề xuất mạng

Ghi chú phát hành

trout 1.1 chứa các vấn đề đã biết sau:

  • Bản dựng trout của người dùng không có sẵn. Hệ thống được xây dựng dưới dạng -userdebug , có thể ảnh hưởng đến một số thử nghiệm CTS.
  • Khởi động được xác minh của Android (AVB) không được hỗ trợ.
  • Một số hệ thống con Android có thể không khả dụng, bao gồm cả thế giới an toàn và NNHAL.
  • Quyền truy cập mạng khách thường được cung cấp bằng bộ điều hợp Wi-Fi ảo hóa và đường hầm virtio-net . Khả năng kết nối phía máy chủ phụ thuộc vào việc triển khai bộ ảo hóa cụ thể của bạn.
  • Một số triển khai có thể cung cấp khả năng Bluetooth hạn chế hoặc không có.
  • Việ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 nặng có thể gây ra sự cố phát lại âm thanh.
  • Trong một số triển khai, việc khởi động lại adb của khách AAOS có thể khởi động lại toàn bộ hệ thống.
  • STS có thể gây mất ổn định hệ thống và yêu cầu khởi động lại.

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