참조 플랫폼

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

trout라는 새로운 제품을 통해 이제 Android Automotive(AAOS)가 VirtIO 표준과 호환되는 환경에서 게스트 가상 머신(VM)으로 배포를 지원합니다. troutCuttlefish 가상 참조 플랫폼을 기반으로 하며 trout 기기 설정으로 사용할 수 있습니다. 사용자 공간 소스 코드는 device/google/trout에서 확인할 수 있습니다. 아래 표는 trout의 각 하위 시스템을 가상화하는 데 사용되는 기술을 설명합니다.

기능 기술
Audio Control HAL vsock/gRPC
오디오 HAL virtio-snd
블루투스 virtio-console
Dumpstate HAL vsock/gRPC
EVS(Extended View System) virtio-video
차고 모드 vsock/gRPC
그래픽 virtio-gpu
글로벌 항법 위성 시스템(GNSS) virtio-console
Sensor HAL 2.0 virtio-scmi and IIO
터치스크린 입력 virtio-input
차량 HAL vsock/gRPC

trout 확장

trout는 새로운 차량용 인포테인먼트(IVI) Android 타겟을 생성하기 위한 시작점으로 사용할 수 있습니다. 빌드 인프라는 확장 및 맞춤설정하도록 설계되었습니다. 예:

# 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 ...]

여러 Android HAL을 맞춤 구현으로 개별적으로 대체하거나, 기본 구현을 유지하지만 특정 구성 매개변수를 조정하여 대상 환경에서 적절한 VM 간 통신을 설정할 수 있습니다. 이러한 HAL(차량 HAL, Audio Control HAL 및 Dumpstate HAL 포함)은 AAOS 게스트와 기본 기능 구현을 제공하는 호스트 시스템 간의 vsock 연결로 지원되는 gRPC 인터페이스를 통해 구현됩니다. 이는 공급업체 속성으로 적절한 vsock 연결 매개변수를 제공함으로써 구성해야 합니다.

trout 빌드

사용자 공간 컴파일

사용자 공간을 컴파일하려면 다음을 실행합니다.

  1. Android 소스 트리를 다운로드합니다.
    repo init -u https://android.googlesource.com/platform/manifest -b master
    repo sync -j8
    
  2. 환경을 빌드합니다.
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    

커널 빌드

trout 1.0의 경우 AOSP에서 커널 코드베이스가 제공됩니다. trout 커널은 업스트림 ACK 5.10과 동일한 코드로 구성되며, VirtIO 하위 시스템을 위한 trout 전용 모듈이 추가되어 있습니다.

  1. 커널을 클론하려면 다음을 실행합니다.
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
  2. OpenSynergy 환경용 커널을 빌드하려면 다음을 실행합니다.
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    

규정 준수

AAOS가 게스트 VM으로 실행되는 경우 Google의 목표는 프레임워크 관점에서 호환되는 Android 배포를 제공하는 것입니다. 호스트 측 문제는 각 구현의 범위에 속하며 trout 1.0 범위를 벗어납니다.

trout 1.0에는 몇 가지 CTS 문제가 남아 있습니다. 다음 CTS 모듈은 테스트 실패를 포함하는 것으로 알려져 있습니다.

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

다음 CTS-V 영역은 테스트 실패를 포함하는 것으로 알려져 있습니다.

자동차 런처 테스트
저전력 블루투스(BLE) 광고주 테스트
스트리밍 동영상 품질 인증기
블루투스 HID 기기 테스트
HiFi 초음파 마이크 테스트
HiFi 초음파 스피커 테스트
잠금 해제 기기 필수 테스트
동적 센서 검색 테스트
생체 미접착 신호 센서
중요 모션 테스트
오디오 출력 라우팅 알림 테스트
네트워크 요청 또는 추천 테스트

출시 노트

trout 1.0에는 다음과 같은 알려진 문제가 있습니다.

  • trout의 사용자 빌드를 사용할 수 없습니다. 시스템은 -userdebug로 빌드되므로 이는 일부 CTS 테스트에 영향을 줄 수 있습니다.
  • trout 1.0에서는 Android용 TrustZone 액세스가 지원되지 않습니다.
  • Android 자체 검사 부팅(AVB)이 지원되지 않습니다.
  • trout 1.0에서는 신경망 가속기가 NNAPI에 노출되지 않습니다.
  • Wi-Fi 가상화를 사용할 수 없으며, 일부 구현에서는 `virtio-net` 터널이 제한적으로 지원됩니다.
  • 경우에 따라 Android 디버그 브리지(ADB)를 통해 Android로(부터) 대용량 파일을 전송하면 시스템이 중단될 수 있습니다.
  • 경우에 따라 SMS 앱이 페어링된 블루투스 휴대전화와의 동기화를 중지할 수 있습니다.
  • 일부 센서에는 VHAL 이벤트 삽입이 작동하지 않을 수 있습니다.
  • 기본 SoC의 ADB 일련번호는 게스트의 ADB 일련번호로 Android에 전달되지 않습니다.
  • 일부 구현에서는 네트워크에 연결할 때 호스트에 이더넷을 사용하지 못할 수 있습니다.

자세한 내용은 trout의 특정 배포에 관한 파트너 출시 노트를 참고하세요.