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 |
वाहन एचएएल | vsock/gRPC |
ट्राउट का विस्तार
नए इन-व्हीकल इंफोटेनमेंट (IVI) Android लक्ष्यों को बनाने के लिए 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
कनेक्शन पैरामीटर की आपूर्ति के माध्यम से कॉन्फ़िगर किया जाना चाहिए। स्रोत कोड अंतिम जमीनी सच्चाई के रूप में कार्य करता है, जिस पर कॉन्फ़िगरेशन और उनके शब्दार्थ के लिए गुण उपलब्ध हैं।
बिल्डिंग ट्राउट
यूजरस्पेस संकलित करें
उपयोक्तास्थान संकलित करने के लिए:
- Android स्रोत ट्री डाउनलोड करें:
repo init -u https://android.googlesource.com/platform/manifest -b master repo sync -j8
- परिवेश बनाएँ:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
3
कर्नेल का निर्माण
trout
1.1 के लिए, एओएसपी में कर्नेल कोडबेस प्रदान किया गया है। trout
कर्नेल अपस्ट्रीम एसीके 5.10 के समान कोड से बना है, जिसमें वर्टिओ सबसिस्टम के लिए trout
-विशिष्ट मॉड्यूल शामिल हैं।
- कर्नेल को क्लोन करने के लिए, चलाएँ:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- कर्नेल रन बनाने के लिए:
BUILD_CONFIG=common-modules/virtual-device/build.config.trout.coqos build/build.sh
आपके हाइपरविजर आपूर्तिकर्ता के पास आवश्यक भिन्न कर्नेल कॉन्फ़िगरेशन या अतिरिक्त मॉड्यूल हो सकते हैं जिन्हें संकलित करने की आवश्यकता है। यदि प्रदान किया गया है, तो इस विशिष्ट मार्गदर्शन का पालन करना सुनिश्चित करें।
अनुपालन
जब AAOS एक अतिथि VM के रूप में चलता है, तो हमारा लक्ष्य फ्रेमवर्क के नजरिए से एक संगत Android परिनियोजन होना है। मेजबान पक्ष के मुद्दे प्रत्येक कार्यान्वयन के दायरे में हैं और trout
1.1 के दायरे से बाहर हैं।
हमने trout
1.1 पर अतिरिक्त एक्सटीएस सत्यापन नहीं किया है। trout
1.0 में सीटीएस समर्थन की नीचे की चर्चा को जारी रखें।
trout
1.0 में, कई सीटीएस समस्याएँ बनी हुई हैं। निम्नलिखित सीटीएस मॉड्यूल परीक्षण विफलताओं को शामिल करने के लिए जाने जाते हैं:
CtsStagedInstallHostTestCases CtsRollbackManagerHostTestCases सीटीएसवीडियो टेस्टकेस सीटीएस होस्टसाइड नेटवर्क परीक्षण सीटीएस एक्टिविटी मैनेजर बैकग्राउंड एक्टिविटी टेस्ट केस सीटीएसएडीबीहोस्टटेस्टकेस सीटीएस नेटिव हार्डवेयर टेस्ट केस सीटीएस सामग्री परीक्षण मामले सीटीएसकारहोस्टटेस्टकेस CtsOsTestCases CtsStatsdHostTestCases CtsVoiceInteractionTestCases CtsViewTestCases सीटीएस कैमरा टेस्ट केस सीटीएस स्थान GnssTestCases सीटीएस ग्राफिक्स टेस्ट केस सीटीएसइंसीडेंटहोस्टटेस्टकेस CtsInstallHostTestCases CtsNativeसत्यापितBootTestCases सीटीएसनेट टेस्टकेस | CtsWindowManagerDeviceTestCases सीटीएस मीडिया तनाव परीक्षण मामले CtsAppTestCases सीटीएसयूएसबी टेस्ट CtsAutoFillServiceTestCases सीटीएस डिस्प्ले टेस्ट केस सीटीएस मीडिया टेस्ट केस CtsDeqpTestCases CtsDumpsysHostTestCases सीटीएसओपनजीएलटीटेस्टकेससीटीएसलिबकोरटेस्टकेस CtsSecurityHostTestCases CtsInputMethodTestCases CtsStatsdAtomHostTestCases CtsPermission4TestCases सीटीएसएनएपीआईबीबेंचमार्कटेस्टकेस CtsSimpleperfTestCases सीटीएस एक्सेसिबिलिटी टेस्टकेस CtsAppSecurityHostTestCases सीटीएस कीस्टोर टेस्टकेस |
निम्नलिखित सीटीएस-वी क्षेत्रों में परीक्षण विफलताओं को शामिल करने के लिए जाना जाता है:
कार लांचर परीक्षण ब्लूटूथ कम ऊर्जा (बीएलई) विज्ञापनदाता परीक्षण स्ट्रीमिंग वीडियो गुणवत्ता सत्यापनकर्ता ब्लूटूथ छिपाई डिवाइस परीक्षण Hifi अल्ट्रासाउंड माइक्रोफोन परीक्षण Hifi अल्ट्रासाउंड अध्यक्ष परीक्षण | अनलॉक डिवाइस आवश्यक परीक्षण डायनेमिक सेंसर डिस्कवरी टेस्ट ऑफ बॉडी सेंसर टेस्ट महत्वपूर्ण गति परीक्षण ऑडियो आउटपुट रूटिंग अधिसूचना परीक्षण नेटवर्क अनुरोध या सुझाव परीक्षण |
रिलीज नोट्स
trout
1.1 में निम्नलिखित ज्ञात मुद्दे शामिल हैं:
-
trout
के उपयोक्ता बिल्ड उपलब्ध नहीं हैं। सिस्टम को-userdebug
के रूप में बनाया गया है, जो कुछ सीटीएस परीक्षणों को प्रभावित कर सकता है। - Android सत्यापित बूट (AVB) समर्थित नहीं है।
- कुछ Android सबसिस्टम अनुपलब्ध हो सकते हैं, जिनमें सुरक्षित दुनिया और NNHAL शामिल हैं।
- अतिथि नेटवर्क का उपयोग आम तौर पर वर्चुअलाइज्ड वाई-फाई एडाप्टर और
virtio-net
सुरंग के माध्यम से प्रदान किया जाता है। होस्ट-साइड कनेक्टिविटी आपके विशिष्ट हाइपरविजर परिनियोजन पर निर्भर करती है। - कुछ कार्यान्वयन सीमित या कोई ब्लूटूथ क्षमता प्रदान नहीं कर सकते हैं।
- VHAL इवेंट इंजेक्शन कुछ सेंसर के लिए काम नहीं कर सकता है।
- कुछ भारी वर्कलोड के कारण ऑडियो प्लेबैक ग्लिट्स हो सकते हैं।
- कुछ कार्यान्वयनों में, AAOS अतिथि का adb रिबूट पूरे सिस्टम को रिबूट कर सकता है।
- STS के कारण सिस्टम में अस्थिरता हो सकती है और इसके लिए रीबूट की आवश्यकता हो सकती है।
अतिरिक्त विवरण के लिए, trout
के अपने विशिष्ट परिनियोजन के लिए पार्टनर रिलीज़ नोट्स देखें।