संदर्भ मंच

trout नामक एक नए उत्पाद के माध्यम से, Android Automotive (AAOS) अब VirtIO मानक के अनुकूल वातावरण में अतिथि वर्चुअल मशीन (VM) के रूप में परिनियोजन के लिए समर्थन प्रदान करती है। 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
वाहन HAL vsock/gRPC

विस्तारित ट्राउट

trout को नए इन-व्हीकल इंफोटेनमेंट (आईवीआई) एंड्रॉइड लक्ष्य बनाने के लिए शुरुआती बिंदु के रूप में इस्तेमाल किया जा सकता है। बिल्ड इंफ्रास्ट्रक्चर को विस्तारित और अनुकूलित करने के लिए डिज़ाइन किया गया है। उदाहरण के लिए:

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

कई एंड्रॉइड एचएएल को व्यक्तिगत रूप से कस्टम कार्यान्वयन के साथ बदला जा सकता है, या डिफ़ॉल्ट कार्यान्वयन बनाए रखा जा सकता है लेकिन लक्षित वातावरण में उचित इंटर-वीएम संचार स्थापित करने के लिए कुछ कॉन्फ़िगरेशन पैरामीटर समायोजित किए जाते हैं। ये एचएएल (वाहन एचएएल, ऑडियो कंट्रोल एचएएल, और डंपस्टेट एचएएल सहित) जीएपीसी इंटरफेस के माध्यम से कार्यान्वित किए जाते हैं जो vsock अतिथि और मेजबान सिस्टम के बीच एक बनाम कनेक्शन द्वारा समर्थित होते हैं जो अंतर्निहित फीचर कार्यान्वयन प्रदान करते हैं। इन्हें विक्रेता संपत्तियों के रूप में उचित vsock कनेक्शन पैरामीटर की आपूर्ति के माध्यम से कॉन्फ़िगर किया जाना चाहिए।

बिल्डिंग ट्राउट

उपयोगकर्ता स्थान संकलित करें

उपयोगकर्ता स्थान संकलित करने के लिए:

  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 के रूप में चलता है, तो हमारा लक्ष्य फ्रेमवर्क के दृष्टिकोण से एक संगत Android परिनियोजन होना है। मेजबान पक्ष के मुद्दे प्रत्येक कार्यान्वयन के दायरे और trout 1.0 के दायरे से बाहर हैं।

trout 1.0 में, कई सीटीएस मुद्दे बने हुए हैं। निम्नलिखित सीटीएस मॉड्यूल परीक्षण विफलताओं को शामिल करने के लिए जाने जाते हैं:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
सीटीएसवीडियोटेस्टकेस
सीटीएसहोस्टसाइडनेटवर्क परीक्षण
CtsActivityManagerBackgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
सीटीएस सामग्री परीक्षण मामले
सीटीएसकारहोस्टटेस्ट केस
सीटीओएस टेस्टकेस
CtsStatsdHostTestCases
CtsVoiceInteractionTest Cases
CtsViewTestCases
सीटीएस कैमरा टेस्ट केस
CtsLocationGnssTestCases
सीटीएसग्राफिक्सटेस्टकेस
CtsIncidentHostTestCases
CtsInstallHostTestCases
CtsNativeVerifiedBootTest Cases
सीटीएसनेट टेस्टकेस
CtsWindowManagerDeviceTestCases
सीटीएस मीडिया स्ट्रेस टेस्ट केस
CtsAppटेस्टकेस
सीटीयूएसबी परीक्षण
CtsAutoFillServiceTestCases
सीटीएसडिस्प्लेटेस्टकेस
सीटीएसमीडिया टेस्टकेस
CtsDeqpटेस्ट केस
CtsDumpsysHostTestCases
सीटीएसओपनजीएलटेस्टकेससीटीएसलिबकोरटेस्ट केस
CtsSecurityHostTestCases
CtsInputMethodTestCases
CtsStatsdAtomHostTestCases
सीटीएसअनुमति4टेस्ट केस
CtsNNAPIBबेंचमार्क परीक्षण मामले
CtsSimpleperfTestCases
सीटीएस अभिगम्यता परीक्षण मामले
CtsAppSecurityHostTestCases
सीटीएसकीस्टोरटेस्टकेस

निम्नलिखित सीटीएस-वी क्षेत्रों को परीक्षण विफलताओं को शामिल करने के लिए जाना जाता है:

कार लॉन्चर टेस्ट
ब्लूटूथ लो एनर्जी (बीएलई) विज्ञापनदाता परीक्षण
स्ट्रीमिंग वीडियो गुणवत्ता सत्यापनकर्ता
ब्लूटूथ छिपाई डिवाइस परीक्षण
Hifi अल्ट्रासाउंड माइक्रोफोन टेस्ट
Hifi अल्ट्रासाउंड स्पीकर टेस्ट
खुला डिवाइस आवश्यक परीक्षण
डायनेमिक सेंसर डिस्कवरी टेस्ट
ऑफ बॉडी सेंसर टेस्ट
महत्वपूर्ण गति परीक्षण
ऑडियो आउटपुट रूटिंग अधिसूचना परीक्षण
नेटवर्क अनुरोध या सुझाव परीक्षण

रिलीज नोट्स

trout 1.0 में निम्नलिखित ज्ञात मुद्दे शामिल हैं:

  • trout के उपयोगकर्ता बिल्ड उपलब्ध नहीं हैं। सिस्टम को -userdebug के रूप में बनाया गया है, जो कुछ सीटीएस परीक्षणों को प्रभावित कर सकता है।
  • एंड्रॉइड के लिए ट्रस्टज़ोन तक पहुंच trout 1.0 में समर्थित नहीं है।
  • Android सत्यापित बूट (AVB) समर्थित नहीं है।
  • trout 1.0 में तंत्रिका त्वरक NNAPI के संपर्क में नहीं हैं।
  • वाई-फाई वर्चुअलाइजेशन उपलब्ध नहीं है, कुछ कार्यान्वयन के साथ `वर्चियो-नेट` सुरंग के लिए सीमित समर्थन प्रदान करते हैं।
  • कुछ मामलों में, एंड्रॉइड डिबग ब्रिज (एडीबी) के माध्यम से बड़ी फाइलों को एंड्रॉइड से या एंड्रॉइड में स्थानांतरित करने से सिस्टम हैंग हो सकता है।
  • कुछ मामलों में, SMS ऐप युग्मित ब्लूटूथ फ़ोन के साथ सिंक्रोनाइज़ करना बंद कर सकता है।
  • हो सकता है कि कुछ सेंसर के लिए VHAL इवेंट इंजेक्शन काम न करे।
  • अंतर्निहित SoC का ADB सीरियल अतिथि के ADB सीरियल के रूप में Android को अग्रेषित नहीं किया जाता है।
  • कुछ कार्यान्वयनों में, हो सकता है कि ईथरनेट नेटवर्क कनेक्टिविटी के लिए होस्ट के लिए उपलब्ध न हो।

अतिरिक्त विवरण के लिए, trout के अपने विशिष्ट परिनियोजन के लिए भागीदार रिलीज़ नोट देखें।

,

trout नामक एक नए उत्पाद के माध्यम से, Android Automotive (AAOS) अब VirtIO मानक के अनुकूल वातावरण में अतिथि वर्चुअल मशीन (VM) के रूप में परिनियोजन के लिए समर्थन प्रदान करती है। 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
वाहन HAL vsock/gRPC

विस्तारित ट्राउट

trout को नए इन-व्हीकल इंफोटेनमेंट (आईवीआई) एंड्रॉइड लक्ष्य बनाने के लिए शुरुआती बिंदु के रूप में इस्तेमाल किया जा सकता है। बिल्ड इंफ्रास्ट्रक्चर को विस्तारित और अनुकूलित करने के लिए डिज़ाइन किया गया है। उदाहरण के लिए:

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

कई एंड्रॉइड एचएएल को व्यक्तिगत रूप से कस्टम कार्यान्वयन के साथ बदला जा सकता है, या डिफ़ॉल्ट कार्यान्वयन बनाए रखा जा सकता है लेकिन लक्षित वातावरण में उचित इंटर-वीएम संचार स्थापित करने के लिए कुछ कॉन्फ़िगरेशन पैरामीटर समायोजित किए जाते हैं। ये एचएएल (वाहन एचएएल, ऑडियो कंट्रोल एचएएल, और डंपस्टेट एचएएल सहित) जीएपीसी इंटरफेस के माध्यम से कार्यान्वित किए जाते हैं जो vsock अतिथि और मेजबान सिस्टम के बीच एक बनाम कनेक्शन द्वारा समर्थित होते हैं जो अंतर्निहित फीचर कार्यान्वयन प्रदान करते हैं। इन्हें विक्रेता संपत्तियों के रूप में उचित vsock कनेक्शन पैरामीटर की आपूर्ति के माध्यम से कॉन्फ़िगर किया जाना चाहिए।

बिल्डिंग ट्राउट

उपयोगकर्ता स्थान संकलित करें

उपयोगकर्ता स्थान संकलित करने के लिए:

  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 के रूप में चलता है, तो हमारा लक्ष्य फ्रेमवर्क के दृष्टिकोण से एक संगत Android परिनियोजन होना है। मेजबान पक्ष के मुद्दे प्रत्येक कार्यान्वयन के दायरे और trout 1.0 के दायरे से बाहर हैं।

trout 1.0 में, कई सीटीएस मुद्दे बने हुए हैं। निम्नलिखित सीटीएस मॉड्यूल परीक्षण विफलताओं को शामिल करने के लिए जाने जाते हैं:

CtsStagedInstallHostTestCases
CtsRollbackManagerHostTestCases
सीटीएसवीडियोटेस्टकेस
सीटीएसहोस्टसाइडनेटवर्क परीक्षण
CtsActivityManagerBackgroundActivityTestCases
CtsAdbHostTestCases
CtsNativeHardwareTestCases
सीटीएस सामग्री परीक्षण मामले
सीटीएसकारहोस्टटेस्ट केस
सीटीओएस टेस्टकेस
CtsStatsdHostTestCases
CtsVoiceInteractionTest Cases
CtsViewTestCases
सीटीएस कैमरा टेस्ट केस
CtsLocationGnssTestCases
सीटीएसग्राफिक्सटेस्टकेस
CtsIncidentHostTestCases
CtsInstallHostTestCases
CtsNativeVerifiedBootTestCases
सीटीएसनेट टेस्टकेस
CtsWindowManagerDeviceTestCases
सीटीएस मीडिया स्ट्रेस टेस्ट केस
CtsAppटेस्टकेस
सीटीयूएसबी परीक्षण
CtsAutoFillServiceTestCases
सीटीएसडिस्प्लेटेस्टकेस
सीटीएसमीडिया टेस्टकेस
CtsDeqpटेस्ट केस
CtsDumpsysHostTestCases
सीटीएसओपनजीएलटेस्टकेससीटीएसलिबकोरटेस्ट केस
CtsSecurityHostTestCases
CtsInputMethodTestCases
CtsStatsdAtomHostTestCases
सीटीएसअनुमति4टेस्ट केस
CtsNNAPIBबेंचमार्क परीक्षण मामले
CtsSimpleperfTestCases
सीटीएस अभिगम्यता परीक्षण मामले
CtsAppSecurityHostTestCases
सीटीएसकीस्टोरटेस्टकेस

निम्नलिखित सीटीएस-वी क्षेत्रों को परीक्षण विफलताओं को शामिल करने के लिए जाना जाता है:

कार लॉन्चर टेस्ट
ब्लूटूथ लो एनर्जी (बीएलई) विज्ञापनदाता परीक्षण
स्ट्रीमिंग वीडियो गुणवत्ता सत्यापनकर्ता
ब्लूटूथ छिपाई डिवाइस परीक्षण
Hifi अल्ट्रासाउंड माइक्रोफोन टेस्ट
Hifi अल्ट्रासाउंड स्पीकर टेस्ट
खुला डिवाइस आवश्यक परीक्षण
डायनेमिक सेंसर डिस्कवरी टेस्ट
ऑफ बॉडी सेंसर टेस्ट
महत्वपूर्ण गति परीक्षण
ऑडियो आउटपुट रूटिंग अधिसूचना परीक्षण
नेटवर्क अनुरोध या सुझाव परीक्षण

रिलीज नोट्स

trout 1.0 में निम्नलिखित ज्ञात मुद्दे शामिल हैं:

  • trout के उपयोगकर्ता बिल्ड उपलब्ध नहीं हैं। सिस्टम को -userdebug के रूप में बनाया गया है, जो कुछ सीटीएस परीक्षणों को प्रभावित कर सकता है।
  • एंड्रॉइड के लिए ट्रस्टज़ोन तक पहुंच trout 1.0 में समर्थित नहीं है।
  • Android सत्यापित बूट (AVB) समर्थित नहीं है।
  • trout 1.0 में तंत्रिका त्वरक NNAPI के संपर्क में नहीं हैं।
  • वाई-फाई वर्चुअलाइजेशन उपलब्ध नहीं है, कुछ कार्यान्वयन के साथ `वर्चियो-नेट` सुरंग के लिए सीमित समर्थन प्रदान करते हैं।
  • कुछ मामलों में, एंड्रॉइड डिबग ब्रिज (एडीबी) के माध्यम से बड़ी फाइलों को एंड्रॉइड से या एंड्रॉइड में स्थानांतरित करने से सिस्टम हैंग हो सकता है।
  • कुछ मामलों में, SMS ऐप युग्मित ब्लूटूथ फ़ोन के साथ सिंक्रोनाइज़ करना बंद कर सकता है।
  • हो सकता है कि कुछ सेंसर के लिए VHAL इवेंट इंजेक्शन काम न करे।
  • अंतर्निहित SoC का ADB सीरियल अतिथि के ADB सीरियल के रूप में Android को अग्रेषित नहीं किया जाता है।
  • कुछ कार्यान्वयनों में, हो सकता है कि ईथरनेट नेटवर्क कनेक्टिविटी के लिए होस्ट के लिए उपलब्ध न हो।

अतिरिक्त विवरण के लिए, trout के अपने विशिष्ट परिनियोजन के लिए भागीदार रिलीज़ नोट देखें।