रेफ़रंस प्लैटफ़ॉर्म

trout नाम के एक नए प्रॉडक्ट के ज़रिए, Android Automotive (AAOS) अब सहायता उपलब्ध कराता है के साथ काम करने वाले एनवायरमेंट में मेहमान वर्चुअल मशीन (वीएम) के तौर पर डिप्लॉयमेंट के लिए VirtIO मानक. trout इस पर आधारित है कटलफ़िश वर्चुअल रेफ़रंस प्लैटफ़ॉर्म है. यह trout डिवाइस कॉन्फ़िगरेशन के तौर पर उपलब्ध है. कॉन्टेंट बनाने यूज़रस्पेस का सोर्स कोड device/google/trout पर मिल सकता है. टेबल नीचे उस टेक्नोलॉजी के बारे में बताया गया है जिसका इस्तेमाल trout में, हर सबसिस्टम को वर्चुअलाइज़ करने के लिए किया जाता है.

सुविधा टेक्नोलॉजी
ऑडियो कंट्रोल एचएएल vsock/gRPC
ऑडियो एचएएल virtio-snd
ब्लूटूथ virtio-console
डंपस्टेट एचएएल vsock/gRPC
एक्सटेंडेड व्यू सिस्टम (ईवीएस) virtio-video
गराज मोड vsock/gRPC
ग्राफ़िक virtio-gpu
ग्लोबल नेविगेशन सैटलाइट सिस्टम (GNSS) virtio-console
सेंसर एचएएल 2.0 virtio-scmi and IIO
टचस्क्रीन इनपुट virtio-input
वाहन का एचएएल vsock/gRPC

ट्राउट का विस्तार करें

trout का इस्तेमाल, वाहन में सूचना और मनोरंजन की नई सुविधा (आईवीआई) बनाने के लिए, शुरुआती पॉइंट के तौर पर किया जा सकता है 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 एचएएल को अलग-अलग तरीके से बदला जा सकता है और अपनी ज़रूरत के हिसाब से लागू किया जा सकता है. डिफ़ॉल्ट तरीके से लागू किया गया है, लेकिन कुछ कॉन्फ़िगरेशन पैरामीटर में बदलाव किया गया है टारगेट एनवायरमेंट में सही इंटर-वीएम कम्यूनिकेशन. इन एचएएल (इनमें वाहन के एचएएल, ऑडियो कंट्रोल एचएएल और डंपस्टेट एचएएल) को ऐसे gRPC इंटरफ़ेस के ज़रिए लागू किया जाता है जिसका बैक अप AAOS मेहमान और होस्ट सिस्टम के बीच vsock कनेक्शन, जो मौजूदा सुविधा को लागू करना. इन्हें सही तरीके से कॉन्फ़िगर किया जाना चाहिए वेंडर की प्रॉपर्टी के तौर पर, vsock कनेक्शन पैरामीटर. सोर्स कोड सबसे बेहतर सोर्स के तौर पर काम करता है कॉन्फ़िगरेशन और उनके सिमेंटिक्स के लिए कौनसी प्रॉपर्टी उपलब्ध हैं, इसके आधार पर यह डेटा की पूरी और सटीक जानकारी दे सकती है.

बिल्ड ट्राउट

यूज़रस्पेस का डेटा कंपाइल करें

यूज़रस्पेस इकट्ठा करने के लिए:

  1. Android सोर्स ट्री डाउनलोड करें:
    repo init -u https://android.googlesource.com/platform/manifest -b main
    repo sync -j8
    
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  2. ऐसा माहौल बनाएं:
    source build/envsetup.sh
    lunch aosp_trout_arm64-userdebug
    make -j24
    
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

कर्नेल बनाएं

trout 1.1 के लिए, कर्नेल कोड बेस एओएसपी में दिया गया है. trout कर्नेल, अपस्ट्रीम ACK 5.10 कोड के समान कोड से बना होता है, जिसमें VirtIO सबसिस्टम के लिए trout के लिए खास मॉड्यूल.

  1. कर्नेल का क्लोन बनाने के लिए, इसे चलाएं:
    repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
    
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  2. कर्नेल रन बनाने के लिए:
    BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
    
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है

हो सकता है कि आपके हायपरवाइज़र सप्लायर के लिए, अलग या अतिरिक्त कर्नेल कॉन्फ़िगरेशन की ज़रूरत हो जिन्हें कंपाइल करना ज़रूरी होता है. अगर इस दिशा-निर्देश में कुछ दिया गया हो, तो उसका पालन करना न भूलें.

अनुपालन

जब AAOS, मेहमान के तौर पर वर्चुअल मशीन (वीएम) के तौर पर काम करता है, तो हमारा लक्ष्य है कि हम फ़्रेमवर्क के बारे में आपको बताएंगे. होस्ट साइड की समस्याएं, हर बार लागू करने का अधिकार हैं. साथ ही, इसमें होस्ट साइड से जुड़ी समस्याएं भी शामिल हैं trout 1.1 का स्कोप.

हमने trout 1.1 पर, अतिरिक्त xTS की पुष्टि नहीं की है. जारी रखें trout 1.0 में CTS सहायता के बारे में नीचे दी गई चर्चा का संदर्भ लें.

trout के 1.0 वर्शन में, सीटीएस से जुड़ी कई समस्याएं मौजूद हैं. यहां दिए गए सीटीएस मॉड्यूल का इस्तेमाल परीक्षण असफलताएँ शामिल करें:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
CtsVideoTestCases
CtsHostsideNetworkTests
CtsActivityManager backgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
CtsContentTestCases
CtsCarHostTestCases
CtsOsTestCases
CtsStatsdHostTestCases
CtsVoiceइंटरैक्शनTestCases
CtsViewTestCases
CtsCameraTestCases
CtsLocationGnssTestCases
CtsGraphicsTestCases
CtsInHostTestCases
CtsInstallHostTestCases
CtsNativeVerifiedBootTestCases
CtsNetTestCases
CtsWindowManagerDeviceTestCases
CtsMediaStressTestCases
CtsAppTestCases
सीटीयूएसबीटेस्ट
CtsAutoFillServiceTestCases
CtsDisplayTestCases
CtsMediaTestCases
CtsDeqpTestCases
CtsDumpsysHostTestCases
CtsOpenGLTestCasesCtsLibcoreTestCases
CtsSecurityHostTestCases
CtsइनपुटMethodTestCases
CtsStatsdAtomHostTestCases
CtsPermission4TestCases
CtsNNAPIMPTestCases
CtsSimpleperfTestCases
CtsAccessibilityTestCases
CtsAppSecurityHostTestCases
CtsKeystoreTestCases

सीटीएस-वी के ये हिस्से हैं: टेस्ट फ़ेल होने की जानकारी:

कार लॉन्चर की जांच
ब्लूटूथ स्मार्ट (BLE) ऐडवर्टाइज़र टेस्ट
स्ट्रीमिंग वीडियो क्वालिटी की पुष्टि करने वाला
ब्लूटूथ एचआईडी डिवाइस की जांच
Hifi अल्ट्रासाउंड माइक्रोफ़ोन की जाँच
Hifi अल्ट्रासाउंड स्पीकर टेस्ट
अनलॉक किए गए डिवाइस के लिए ज़रूरी टेस्ट
डाइनैमिक सेंसर डिस्कवरी टेस्ट
ऑफ़ बॉडी सेंसर टेस्ट
मोशन टेस्ट की अहम जानकारी
ऑडियो आउटपुट रूटिंग की सूचना की जांच
नेटवर्क के अनुरोध या सुझाव की जांच

रिलीज़ नोट

trout 1.1 में ये समस्याएं शामिल हैं:

  • trout के उपयोगकर्ता बिल्ड उपलब्ध नहीं हैं. सिस्टम को इस तरह बनाया गया है -userdebug, जो कुछ सीटीएस टेस्ट पर असर डाल सकता है.
  • Android वेरिफ़ाइड बूट (AVB) सुविधा इस पर काम नहीं करती.
  • ऐसा हो सकता है कि Android के कुछ सबसिस्टम उपलब्ध न हों. इनमें सिक्योर वर्ल्ड और NNHAL शामिल हैं.
  • मेहमान नेटवर्क का ऐक्सेस, आम तौर पर वर्चुअलाइज़ किए गए वाई-फ़ाई अडैप्टर के ज़रिए दिया जाता है और virtio-net टनल. होस्ट-साइड कनेक्टिविटी, आपके खास हाइपरवाइज़र डिप्लॉयमेंट पर निर्भर करती है.
  • लागू करने के कुछ तरीकों में ब्लूटूथ की सीमित सुविधा हो सकती है या हो सकता है कि उसमें ब्लूटूथ की कोई सुविधा न हो.
  • VHAL इवेंट इंजेक्शन कुछ सेंसर के लिए शायद काम न करे.
  • ज़्यादा काम करने की वजह से, ऑडियो चलाने में समस्या आ सकती है.
  • लागू किए गए कुछ तरीकों में, AAOS मेहमान को adb फिर से चालू करने पर पूरा सिस्टम फिर से चालू हो सकता है.
  • एसटीएस की वजह से सिस्टम में गड़बड़ी हो सकती है और इसे फिर से चालू करना पड़ सकता है.

ज़्यादा जानकारी के लिए, पार्टनर के रिलीज़ नोट देखें. इसमें आपको इन्हें डिप्लॉय करने के बारे में जानकारी मिलेगी trout.