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 cung cấp tính năng hỗ trợ để triển khai dưới dạng máy ảo (VM) khách trong các môi trường tương thích với VirtIO chuẩn. trout dựa trên Sơn mực nền tảng tham chiếu ảo và được cung cấp dưới dạng cấu hình thiết bị trout. Chiến lược phát hành đĩa đơn Bạn có thể tìm thấy mã nguồn của không gian người dùng tại device/google/trout. Bảng phần dưới đây mô tả công nghệ 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
HAL (Lớp trừu tượng phần cứng) vsock/gRPC
Hệ thống Khung hiển thị mở rộng (EVS) virtio-video
Chế độ gara vsock/gRPC
Đồ hoạ virtio-gpu
Vệ tinh điều hướng toàn cầu hệ thống (GNSS) virtio-console
Cảm biến HAL 2.0 virtio-scmi and IIO
Phương thức nhập trên màn hình cảm ứng virtio-input
Lớp trừu tượng phần cứng (HAL) cho xe vsock/gRPC

Kéo dài cá hồi

trout có thể được dùng làm điểm xuất phát để tạo Hệ thống thông tin giải trí trong xe (IVI) mới Mục tiêu Android. Cơ sở hạ tầng bản dựng được thiết kế để 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 ...]

Một số HAL Android có thể được thay thế riêng bằng các phương thức triển khai tuỳ chỉnh hoặc các quá trình triển khai mặc định vẫn đượ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 phù hợp giữa máy ảo trong môi trường mục tiêu. Các HAL này (bao gồm HAL (Lớp trừu tượng phần cứng) cho xe, HAL điều khiển âm thanh và HAL Dumpstate) đượ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ủ lưu trữ cung cấp triển khai tính năng cơ bản. Các trình xử lý này phải được định cấu hình bằng cách cung cấp Tham số kết nối vsock 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 thực tế về những 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, hãy làm như sau:

  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. Xây dựng môi trường:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

Xây dựng nhân

Đối với trout 1.1, cơ sở mã hạt nhân được cung cấp trong AOSP. trout nhân bao gồm mã giống như ACK 5.10 ngược dòng, có thêm Các mô-đun dành riêng cho trout dành cho các hệ thống con VirtIO.

  1. Để sao chép nhân, hãy chạy:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. Cách tạo lần chạy nhân:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

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

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ừ khung nhìn. Các vấn đề phía máy chủ là phạm vi của mỗi lần triển khai và nằm ngoài phạm vi của 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 cho trout 1.1. Tiếp tục để tham khảo nội dung thảo luận dưới đây về việc hỗ trợ CTS trong trout 1.0.

Trong trout 1.0, một số vấn đề về CTS vẫn tồn tại. Các mô-đun CTS sau đây đã biết bao gồm các lần kiểm thử không thành công:

CtsEventdInstallHostTestCases
CtsRollbackManagerHostTestCases
CtsVideoTestCases
CtsHostsideNetworkTests
CtsActivityManagerBackgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
Các trường hợp kiểm thử CtsContentTestCase
Các trường hợp kiểm tra CtsCarHostTestCase
Các trường hợp kiểm thử (CtsOsTestCases)
CtsStatsdHostTestCases
Các trường hợp kiểm tra tương tác trong CtsVoicetương tác
Các trường hợp kiểm tra CtsViewTestCase
Các trường hợp sử dụng CtsCameraTestCase
CtsLocationGnssTestCases
CtsGraphicsTestCases
Các trường hợp kiểm thử CtsIncidentHostTestCase
CtsInstallHostTestCases
Các trường hợp CtsNative đã xác minhBootTestCases
Các trường hợp CtsNetTestCase
CtsWindowManagerDeviceTestCases
CtsMediaStressTestCases
Các trường hợp kiểm thử CtsAppTestCase
CtsUsbTests
CtsAutoFillServiceTestCases
CtsDisplayTestCases
CtsMediaTestCases
Các trường hợp CtsDeqpTestCase
CtsDumpsysHostTestCases
CtsOpenGLTestCasesCtsLibcoreTestCases
CtsSecurityHostTestCases
Các trường hợp CtsInputMethodTestCase
CtsStatsdAtomHostTestCases
CtsPermission4TestCases
CtsNNAPIBenchmarkTestCases
CtsSimpleperfTestCases
CtsAccessibilityTestCases
CtsAppSecurityHostTestCases
Các trường hợp kiểm thử CtsKeystoreTestCase

Các khu vực CTS-V sau đây được biết là có bao gồm các lần thất bại trong kiểm thử:

Bài kiểm thử Trình chạy ô tô
Thử nghiệm dành cho nhà quảng cáo sử dụng Bluetooth năng lượng thấp (BLE)
Người xác minh chất lượng video truyền trực tuyến
Kiểm tra thiết bị Bluetooth HID
Kiểm tra micrô siêu âm Hifi
Kiểm tra loa siêu âm Hifi
Kiểm tra yêu cầu thiết bị được mở khoá
Thử nghiệm Khám phá cảm biến động
Kiểm tra Cảm biến khi tắt cơ thể
Thử nghiệm chuyển động đáng kể
Kiểm tra Thông báo định tuyến đầu ra âm thanh
Kiểm thử 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 đây:

  • Không có bản dựng do người dùng của trout tạo. Hệ thống này được xây dựng dưới dạng -userdebug, có thể ảnh hưởng đến một số thử nghiệm CTS.
  • Không hỗ trợ quy trình khởi động được xác minh trên Android (AVB).
  • Một số hệ thống con của Android có thể không hoạt động, trong đó có hệ thống 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 qua bộ điều hợp Wi-Fi ảo hoá và virtio-net đường hầm. Khả năng kết nối phía máy chủ phụ thuộc vào việc triển khai trình điều khiển ảo hoá cụ thể của bạn.
  • Một số phương pháp triển khai có thể hạn chế hoặc không cung cấp chức năng Bluetooth.
  • Tính năng 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ố hoạt động 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ể khiến hệ thống không ổn định 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 đối với quy trình triển khai cụ thể của bạn trout.