trout
नामक एक नए उत्पाद के माध्यम से, एंड्रॉइड ऑटोमोटिव (AAOS) अब VirtIO मानक के साथ संगत वातावरण में अतिथि वर्चुअल मशीन (VM) के रूप में तैनाती के लिए समर्थन प्रदान करता है। trout
कटलफिश वर्चुअल रेफरेंस प्लेटफॉर्म पर आधारित है और trout
डिवाइस कॉन्फ़िगरेशन के रूप में उपलब्ध है। यूजरस्पेस सोर्स कोड device/google/trout
पर पाया जा सकता है। नीचे दी गई तालिका trout
में प्रत्येक उपप्रणाली को वर्चुअलाइज करने के लिए उपयोग की जाने वाली तकनीक का वर्णन करती है।
विशेषता | तकनीकी |
---|---|
ऑडियो नियंत्रण एचएएल | vsock/gRPC |
ऑडियो एचएएल | virtio-snd |
ब्लूटूथ | virtio-console |
डंपस्टेट एचएएल | vsock/gRPC |
विस्तारित दृश्य प्रणाली (ईवीएस) | virtio-video |
गैराज मोड | vsock/gRPC |
GRAPHICS | virtio-gpu |
वैश्विक नेविगेशन उपग्रह प्रणाली (जीएनएसएस) | virtio-console |
सेंसर एचएएल 2.0 | virtio-scmi and IIO |
टचस्क्रीन इनपुट | virtio-input |
वाहन एचएएल | 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
कनेक्शन पैरामीटर की आपूर्ति के माध्यम से कॉन्फ़िगर किया जाना चाहिए। स्रोत कोड अंतिम जमीनी सच्चाई के रूप में कार्य करता है जिस पर कॉन्फ़िगरेशन और उनके शब्दार्थ के लिए गुण उपलब्ध होते हैं।
ट्राउट बनाएँ
उपयोक्तास्थान संकलित करें
उपयोक्तास्थान संकलित करने के लिए:
- एंड्रॉइड सोर्स ट्री डाउनलोड करें:
repo init -u https://android.googlesource.com/platform/manifest -b main repo sync -j8
- पर्यावरण बनाएँ:
source build/envsetup.sh lunch aosp_trout_arm64-userdebug make -j24
कर्नेल का निर्माण करें
trout
1.1 के लिए, कर्नेल कोडबेस AOSP में प्रदान किया गया है। trout
कर्नेल अपस्ट्रीम ACK 5.10 के समान कोड से बना है, जिसमें VirtIO सबसिस्टम के लिए 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
आपके हाइपरवाइज़र आपूर्तिकर्ता के पास आवश्यक भिन्न कर्नेल कॉन्फ़िगरेशन या अतिरिक्त मॉड्यूल हो सकते हैं जिन्हें संकलित करने की आवश्यकता है। यदि प्रदान किया गया है तो इस विशिष्ट मार्गदर्शन का पालन करना सुनिश्चित करें।
अनुपालन
जब एएओएस एक अतिथि वीएम के रूप में चलता है, तो हमारा लक्ष्य फ्रेमवर्क परिप्रेक्ष्य से एक संगत एंड्रॉइड परिनियोजन होना है। मेजबान पक्ष के मुद्दे प्रत्येक कार्यान्वयन के दायरे में हैं और trout
1.1 के दायरे से बाहर हैं।
हमने trout
1.1 पर अतिरिक्त xTS सत्यापन नहीं किया है। trout
1.0 में सीटीएस समर्थन की नीचे दी गई चर्चा का संदर्भ लेना जारी रखें।
trout
1.0 में, कई सीटीएस मुद्दे बने हुए हैं। निम्नलिखित सीटीएस मॉड्यूल को परीक्षण विफलताओं को शामिल करने के लिए जाना जाता है:
CtsStgedInstallHostTestCases CtsRollbackManagerHostTestCases सीटीएसवीडियोटेस्टकेस CtsHostsideNetworkTests CtsActivityManagerBackgroundActivityTestCases CtsAdbHostTestCases CtsNativeHardwareTestCases CtsContentTestCases CtsCarHostTestCases CtsOsTestCases CtsStatsdHostTestCases CtsVoiceInteractionTestCases CtsViewTestCases CtsCameraTestCases CtsLocationGnssTestCases CtsGraphicsTestCases CtsIncidentHostTestCases CtsInstallHostTestCases CtsNativeVerifiedBootTestCases CtsNetTestCases | CtsWindowManagerDeviceTestCases CtsMediaStressTestCases CtsAppTestCases CtsUsbटेस्ट CtsAutoFillServiceTestCases CtsDisplayTestCases CtsMediaTestCases CtsDeqpTestCases CtsDumpsysHostTestCases CtsOpenGLTestCasesCtsLibcoreTestCases CtsSecurityHostTestCases CtsInputMethodTestCases CtsStatsdAtomHostTestCases CtsPermission4TestCases सीटीएसएनएपीआईबेंचमार्कटेस्टकेस CtsSimpleperfTestCases सीटीएसएक्सेसिबिलिटीटेस्टकेस CtsAppSecurityHostTestCases CtsKeystoreTestCases |
निम्नलिखित सीटीएस-वी क्षेत्रों को परीक्षण विफलताओं के लिए जाना जाता है:
कार लॉन्चर परीक्षण ब्लूटूथ लो एनर्जी (बीएलई) विज्ञापनदाता परीक्षण स्ट्रीमिंग वीडियो गुणवत्ता सत्यापनकर्ता ब्लूटूथ छिपाई डिवाइस परीक्षण हाईफाई अल्ट्रासाउंड माइक्रोफोन परीक्षण हाईफाई अल्ट्रासाउंड स्पीकर परीक्षण | अनलॉक डिवाइस का परीक्षण आवश्यक है डायनेमिक सेंसर डिस्कवरी परीक्षण ऑफ बॉडी सेंसर परीक्षण महत्वपूर्ण गति परीक्षण ऑडियो आउटपुट रूटिंग अधिसूचना परीक्षण नेटवर्क अनुरोध या सुझाव परीक्षण |
रिलीज नोट्स
trout
1.1 में निम्नलिखित ज्ञात समस्याएँ हैं:
-
trout
के उपयोगकर्ता बिल्ड उपलब्ध नहीं हैं। सिस्टम को-userdebug
के रूप में बनाया गया है, जो कुछ सीटीएस परीक्षणों को प्रभावित कर सकता है। - Android सत्यापित बूट (AVB) समर्थित नहीं है.
- कुछ एंड्रॉइड सबसिस्टम अनुपलब्ध हो सकते हैं, जिनमें सिक्योर वर्ल्ड और एनएनएचएएल शामिल हैं।
- अतिथि नेटवर्क पहुंच आम तौर पर एक वर्चुअलाइज्ड वाई-फाई एडाप्टर और एक
virtio-net
सुरंग के माध्यम से प्रदान की जाती है। होस्ट-साइड कनेक्टिविटी आपके विशिष्ट हाइपरवाइज़र परिनियोजन पर निर्भर करती है। - कुछ कार्यान्वयन सीमित या कोई ब्लूटूथ क्षमता प्रदान नहीं कर सकते हैं।
- VHAL ईवेंट इंजेक्शन कुछ सेंसरों के लिए काम नहीं कर सकता है।
- कुछ भारी कार्यभार के कारण ऑडियो प्लेबैक में गड़बड़ी हो सकती है।
- कुछ कार्यान्वयनों में, AAOS अतिथि का adb रीबूट संपूर्ण सिस्टम को रीबूट कर सकता है।
- एसटीएस सिस्टम अस्थिरता का कारण बन सकता है और रिबूट की आवश्यकता हो सकती है।
अतिरिक्त विवरण के लिए, trout
की अपनी विशिष्ट तैनाती के लिए भागीदार रिलीज़ नोट्स देखें।