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