Thông qua một sản phẩm mới có tên là trout
, Android Automotive (AAOS) hiện 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
. 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ệ dùng để ảo hoá từng hệ thống con trong trout
.
Tính năng | Công nghệ |
---|---|
Audio Control HAL | vsock/gRPC |
Audio HAL | virtio-snd |
Bluetooth | virtio-console |
Dumpstate HAL | vsock/gRPC |
Hệ thống chế độ xem mở rộng (EVS) | virtio-video |
Chế độ gara | vsock/gRPC |
Đồ hoạ | virtio-gpu |
Hệ thống vệ tinh điều hướng toàn cầu (GNSS) | virtio-console |
Sensor HAL 2.0 | virtio-scmi and IIO |
Nhập bằng màn hình cảm ứng | virtio-input |
HAL của xe | vsock/gRPC |
Mở rộng trout
Bạn có thể sử dụng trout
làm điểm xuất phát để tạo các mục tiêu Android mới cho Thông tin giải trí trên ô tô (IVI). 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 ...]
Bạn có thể thay thế từng HAL Android bằng cách triển khai tuỳ chỉnh hoặc duy trì cách triển khai mặc định nhưng điều chỉnh một số tham số cấu hình để thiết lập giao tiếp giữa các máy ảo phù hợp trong môi trường mục tiêu. Các HAL này (bao gồm cả HAL xe, HAL điều khiển âm thanh và HAL Dumpstate) được triển khai thông qua 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 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 thuộc tính 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 nhà cung cấp. Mã nguồn đóng vai trò là nguồn thông tin đáng tin cậy nhất về những thuộc tính có sẵn để định cấu hình và ngữ nghĩa của các thuộc tính đó.
Xây 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, cơ sở mã nhân hệ điều hành được cung cấp trong AOSP. Hạt nhân trout
được tạo thành từ cùng một mã với ACK 5.10 ở thượng nguồn, với việc bổ sung các mô-đun dành riêng cho trout
cho các hệ thống con VirtIO.
- Để nhân bản hạt nhân, hãy chạy:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- Cách tạo bản dựng kernel chạy:
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 cấu hình hạt nhân khác hoặc cần biên dịch các mô-đun bổ sung. Hãy nhớ làm theo hướng dẫn cụ thể này (nếu có).
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ủ thuộc phạm vi của từng phương thức 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 phần thảo luận bên dưới về tính 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ó lỗi kiểm thử:
Kiểm thử Trình chạy ô tô Kiểm thử nhà quảng cáo Bluetooth năng lượng thấp (BLE) Trình xác minh chất lượng video trực tuyến Kiểm thử thiết bị HID Bluetooth Kiểm thử micrô siêu âm Hifi Kiểm thử loa siêu âm Hifi |
Kiểm thử Yêu cầu thiết bị đã mở khoá Kiểm thử Phát hiện cảm biến động Kiểm thử Cảm biến ngoài cơ thể Kiểm thử Chuyển hướng đầu ra âm thanh Kiểm thử Đề xuất hoặc yêu cầu về mạng |
Ghi chú phát hành
trout
1.1 có các vấn đề đã biết sau:
- Không có bản dựng người dùng của
trout
. Hệ thống được tạo dưới dạng-userdebug
, điều này có thể ảnh hưởng đến một số kiểm thử CTS. - Không hỗ trợ tính năng Khởi động được xác minh của Android (AVB).
- Một số hệ thống con 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 bộ chuyển đổi Wi-Fi ảo hoá và một đường hầm
virtio-net
. Khả năng kết nối phía máy chủ phụ thuộc vào cách triển khai trình điều khiển ảo hoá cụ thể của bạn. - Một số cách triển khai có thể cung cấp chức năng Bluetooth bị hạn chế hoặc không có.
- 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 nặng có thể gây ra sự cố phát âm thanh.
- Trong một số trường hợp triển khai, việc khởi động lại adb 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 không ổn định và cần khởi động lại.
Để biết thêm thông tin, hãy tham khảo ghi chú phát hành của đối tác về cách triển khai cụ thể của bạn đối với trout
.