Android वर्चुअलाइज़ेशन फ़्रेमवर्क (एवीएफ़), कोड को सुरक्षित और निजी तौर पर एक्ज़ीक्यूट करने के लिए एनवायरमेंट उपलब्ध कराता है. AVF, सुरक्षा से जुड़े इस्तेमाल के उदाहरणों के लिए सबसे सही है. इन उदाहरणों में, Android के ऐप्लिकेशन सैंडबॉक्स की तुलना में, ज़्यादा सुरक्षित और औपचारिक तौर पर पुष्टि की गई आइसोलेशन की ज़रूरत होती है. Android, AVF को लागू करने के लिए ज़रूरी सभी कॉम्पोनेंट का रेफ़रंस लागू करता है. AVF की सुविधा सिर्फ़ ARM64 डिवाइसों पर काम करती है. पहली इमेज में, AVF का आर्किटेक्चर दिखाया गया है:
पहली इमेज. एवीएफ़ का आर्किटेक्चर.
यहां पहले फ़िगर में दिए गए सबसे ज़रूरी शब्दों की परिभाषाएं दी गई हैं:
- apexd और zipfuse
- यह होस्ट से इंपोर्ट किए गए APEX और APK को सुरक्षित तरीके से माउंट करता है.
- authfs
- यह एक फ़्यूज़ फ़ाइल सिस्टम है. इसकी मदद से, Android और pVM (होस्ट और गेस्ट) के बीच कई फ़ाइलों को सुरक्षित तरीके से शेयर किया जा सकता है.
- बाइंडर
- यह वीएम के बीच कम्यूनिकेशन का मुख्य तरीका है.
- crosvm
- यह रस्ट में लिखा गया वर्चुअल मशीन मॉनिटर है. crosvm, VM मेमोरी को असाइन करता है, वर्चुअल सीपीयू थ्रेड बनाता है, और वर्चुअल डिवाइस के बैक-एंड को लागू करता है.
- सामान्य कर्नेल इमेज (जीकेआई)
- Google से सर्टिफ़ाइड की गई बूट इमेज. इसमें Android Common Kernel (ACK) सोर्स ट्री से बनाया गया GKI कर्नल होता है. साथ ही, यह Android डिवाइस के बूट पार्टिशन में फ़्लैश करने के लिए सही होती है. ज़्यादा जानकारी के लिए, कर्नल की खास जानकारी देखें.
- हाइपरवाइज़र
- AVF में इस्तेमाल की जाने वाली वर्चुअलाइज़ेशन टेक्नोलॉजी, जिसे pKVM भी कहा जाता है. हाइपरवाइज़र, एक्ज़ीक्यूट किए गए कोड की इंटिग्रिटी और pVM की ऐसेट की निजता को बनाए रखता है. भले ही, होस्ट Android या कोई अन्य pVM खतरे में पड़ जाए.
- Java API
- VirtualizationService Java API, जो सिर्फ़ AVF की सुविधा वाले डिवाइसों पर मौजूद होते हैं. इन एपीआई का इस्तेमाल करना ज़रूरी नहीं है. ये
thebootclasspath
का हिस्सा नहीं हैं. - Microdroid
- Google की ओर से उपलब्ध कराया गया मिनी-Android OS, जो pVM में चलता है.
- Microdroid Manager
- यह pVM के लाइफ़साइकल, pVM के अंदर, और इंस्टेंस डिस्क को मैनेज करता है.
- नेटिव एपीआई
- Android नेटिव डेवलपर किट (NDK) का सबसेट.
- सुरक्षित कर्नल-आधारित वर्चुअल मशीन (पीकेवीएम)
- Hypervisor देखें.
- pVM फ़र्मवेयर (
pvmfw
) - यह pVM पर चलने वाला पहला कोड है.
pvmfw
यह पेलोड की पुष्टि करता है और हर वीएम के लिए सीक्रेट बनाता है. - सुरक्षित वर्चुअल मशीन (पीवीएम)
यह एक ऐसा एक्ज़ीक्यूशन एनवायरमेंट (मेहमान) होता है जिस पर भरोसा नहीं किया जा सकता. यह मुख्य Android ऑपरेटिंग सिस्टम (होस्ट) के साथ काम करता है. pVM की सुरक्षा का एक अहम पहलू यह है कि अगर होस्ट से समझौता किया जाता है, तो होस्ट के पास pVM की मेमोरी का ऐक्सेस नहीं होता है. pKVM, pVM को चलाने के लिए स्टैंडर्ड हाइपरवाइज़र है.
मौजूदा ट्रस्टेड एक्ज़ीक्यूशन एनवायरमेंट (टीईई) की तुलना में, pVM बेहतर एनवायरमेंट उपलब्ध कराते हैं. इनमें Microdroid नाम का मिनी-Android डिस्ट्रिब्यूशन चलाने की सुविधा भी शामिल है. हालांकि, Microdroid को बिना सुरक्षा वाले VM पर भी चलाया जा सकता है. pVM का इस्तेमाल डाइनैमिक तरीके से किया जा सकता है. साथ ही, ये सभी डिवाइसों पर उपलब्ध, भरोसेमंद एनवायरमेंट में एपीआई का स्टैंडर्ड सेट उपलब्ध कराते हैं. ये डिवाइस, pVM के साथ काम करते हैं.
- VirtualizationService
यह Android सेवा, pVM के लाइफ़साइकल को मैनेज करती है.
आगे क्या करना है?
- अगर आपको एवीएफ़ की ज़रूरत के बारे में बेहतर तरीके से जानना है, तो एवीएफ़ क्यों? पर जाएं.
- AVF का इस्तेमाल, अलग-अलग कंपाइलेशन के लिए कैसे किया जा सकता है, इसके बारे में जानने के लिए इस्तेमाल के उदाहरण देखें.
- अगर आपको एवीएफ़ के रेफ़रंस इंप्लीमेंटेशन के आर्किटेक्चर के बारे में ज़्यादा जानकारी चाहिए, तो एवीएफ़ का आर्किटेक्चर देखें.
- अगर आपको Microdroid के बारे में जानना है, तो Microdroid पर जाएं.
- अगर आपको यह जानना है कि AVF सुरक्षा को कैसे मैनेज करता है, तो सुरक्षा पर जाएं.
- वर्चुअलाइज़ेशन सेवा की भूमिका को समझने के लिए, VirtualizationService देखें.
- एवीएफ़ के सोर्स कोड या अलग-अलग कॉम्पोनेंट के बारे में ज़्यादा जानकारी के लिए, AOSP रिपॉज़िटरी देखें