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:
- Tải xuống cây nguồn Android:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- 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.
- Để sao chép kernel, hãy chạy:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- Để 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
, điều này 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.