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:
- Tải cây nguồn Android xuống:
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 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.
- Để sao chép 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 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
.