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:
- Tải cây nguồn Android xuống:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- 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.
- Để 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
- Để 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
troutcho 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.