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
कनेक्शन पैरामीटर की आपूर्ति के माध्यम से कॉन्फ़िगर किया जाना चाहिए।
बिल्डिंग ट्राउट
उपयोगकर्ता स्थान संकलित करें
उपयोगकर्ता स्थान संकलित करने के लिए:
- 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
कर्नेल का निर्माण
trout
1.0 के लिए, AOSP में कर्नेल कोडबेस दिया गया है। trout
कर्नेल अपस्ट्रीम ACK 5.10 के समान कोड से बना है, जिसमें VirtIO सबसिस्टम के लिए trout
-विशिष्ट मॉड्यूल शामिल हैं।
- कर्नेल को क्लोन करने के लिए, चलाएँ:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- 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
कनेक्शन पैरामीटर की आपूर्ति के माध्यम से कॉन्फ़िगर किया जाना चाहिए।
बिल्डिंग ट्राउट
उपयोगकर्ता स्थान संकलित करें
उपयोगकर्ता स्थान संकलित करने के लिए:
- 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
कर्नेल का निर्माण
trout
1.0 के लिए, AOSP में कर्नेल कोडबेस दिया गया है। trout
कर्नेल अपस्ट्रीम ACK 5.10 के समान कोड से बना है, जिसमें VirtIO सबसिस्टम के लिए trout
-विशिष्ट मॉड्यूल शामिल हैं।
- कर्नेल को क्लोन करने के लिए, चलाएँ:
repo init https://android.googlesource.com/kernel/manifest -b trout-android12-5.10 && repo sync
- 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
के अपने विशिष्ट परिनियोजन के लिए भागीदार रिलीज़ नोट देखें।