कर्नेल मॉड्यूल दो तरह के होते हैं: हार्डवेयर ऐग्नोस्टिक हार्डवेयर के हिसाब से जीकेआई मॉड्यूल वेंडर मॉड्यूल. इस पेज पर दोनों फ़ॉर्मैट के लिए खास जानकारी दी गई है दिए गए हैं.
GKI मॉड्यूल
सामान्य कर्नेल इमेज (जीकेआई) मॉड्यूल का इस्तेमाल, ऐसे कर्नेल के लिए किया जाता है जो बूट नहीं होते ये सुविधाएं, जेनरिक कोर कर्नेल से अलग होती हैं. जीकेआई मॉड्यूल की मदद से, ये काम किए जा सकते हैं इस्तेमाल करने के लिए, कर्नेल की खास क्षमताएं चुनें. ऐसा करने से अक्सर कर्नेल इमेज का साइज़ कम होता है और रनटाइम मेमोरी इस्तेमाल करते हैं. साइज़ में कमी होने की वजह से, जीकेआई को Android Go डिवाइस और उनके नाप या आकार पर पाबंदी वाले अन्य संसाधन.
जीकेआई मॉड्यूल एक ऐसा तरीका भी उपलब्ध कराता है जिसकी मदद से वेंडर, केएमआई फ़्रीज़ माइलस्टोन के बाद अपस्ट्रीम सुविधाएं. पहले से मौजूद कोड दूसरी इमेज बनाए बिना नहीं बदला जा सकता, जबकि कोड को मॉड्यूल को किसी दूसरे मॉड्यूल से बदला जा सकता है.
जीकेआई (जीकेआई) मॉड्यूल, समाचार संगठनों के बीच अंतर करने के लिए, कर्नेल के बिल्ड टाइम साइनिंग इन्फ़्रास्ट्रक्चर का इस्तेमाल करता है . साइन नहीं किए गए मॉड्यूल लोड किए जा सकते हैं बशर्ते उनमें सिर्फ़ ऐसे सिंबल इस्तेमाल किए जाएं जो अनुमति वाली सूची में शामिल हैं या जिन्हें दूसरे संगठनों ने उपलब्ध कराया है साइन नहीं किए गए मॉड्यूल.
जीकेआई मॉड्यूल दो तरह के लॉजिकल टाइप होते हैं: सुरक्षित जीकेआई मॉड्यूल और असुरक्षित जीकेआई मॉड्यूल होना चाहिए.
सुरक्षित GKI मॉड्यूल
सुरक्षित जीकेआई मॉड्यूल Google डिलीवर करता है. इस पर किसी भी तरह की पाबंदी नहीं होती है और लोड होने के बाद कर्नेल के साथ बनाए जाने जैसे तरीके से काम करता है. इसके अलावा, सुरक्षित जीकेआई मॉड्यूल की ये विशेषताएं हैं:
- सुरक्षित किए गए जीकेआई मॉड्यूल के पास गैर-केएमआई कर्नेल सिंबल का ऐक्सेस होता है, जो की अनुमति है.
- सुरक्षित जीकेआई मॉड्यूल ऐसे सिंबल एक्सपोर्ट कर सकता है जो केएमआई प्लैटफ़ॉर्म का हिस्सा बन जाते हैं बशर्ते उन प्रतीकों को प्रतीक सूची में रखा गया हो.
- सुरक्षित GKI मॉड्यूल को वेंडर मॉड्यूल से नहीं बदला जा सकता.
सुरक्षित GKI मॉड्यूल, GKI मॉड्यूल का डिफ़ॉल्ट क्लास है. सभी जीकेआई केएमआई फ़्रीज़ होने के दौरान मॉड्यूल को सुरक्षित माना जाता है.
असुरक्षित जीकेआई मॉड्यूल
असुरक्षित जीकेआई मॉड्यूल को वेंडर मॉड्यूल से बदला जा सकता है. केएमआई की रोक के बाद, अगर जीकेआई टीम यह तय करता है कि वेंडर को, डिफ़ॉल्ट तौर पर लागू होने वाले तरीके को बदलना होगा जिसमें अपस्ट्रीम Linux की नई सुविधाएं शामिल हैं. अगले दिन जीकेआई रिलीज़, असुरक्षित मॉड्यूल को बाद में सुरक्षित के तौर पर फिर से कैटगरी में बांटा जाता है अपस्ट्रीम कोड, Android Common कर्नेल (एसीके) में जाता है. असुरक्षित जीकेआई मॉड्यूल ये विशेषताएं होती हैं:
- असुरक्षित जीकेआई मॉड्यूल और एक्सपोर्ट किए गए सिंबल का ऐक्सेस, वेंडर की तरह ही होता है मॉड्यूल देखें.
- असुरक्षित जीकेआई मॉड्यूल, सुरक्षित जीकेआई से एक्सपोर्ट किए गए सिंबल एक्सपोर्ट नहीं कर सकते मॉड्यूल देखें.
- असुरक्षित जीकेआई मॉड्यूल को किसी भी केएमआई इंटरफ़ेस को सुरक्षित रखना चाहिए. कोर कर्नेल.
- असुरक्षित जीकेआई मॉड्यूल को वेंडर मॉड्यूल से बदला जा सकता है.
वेंडर के मॉड्यूल
SoC और डिवाइस के हिसाब से लागू करने के लिए, पार्टनर एक वेंडर मॉड्यूल डिलीवर करते हैं सुविधाएं. ऐसा कोई भी मौजूदा कर्नेल मॉड्यूल जिसे जीकेआई कर्नेल को वेंडर मॉड्यूल के तौर पर डिलीवर किया जा सकता है.
जीकेआई प्रोजेक्ट का एक मुख्य लक्ष्य, कम से कम
कोर कर्नेल में हार्डवेयर-विशिष्ट कोड होता है, तो वेंडर उम्मीद कर सकते हैं कि GKI (जीकेआई)
कर्नेल में ऐसे मॉड्यूल शामिल नहीं होंगे जो साफ़ तौर पर अपने हार्डवेयर को मैनेज करते हों. इसके लिए
उदाहरण के लिए, वेंडर ABC Inc.
CONFIG_ABC_SOC_SUPPORT
को 'पहले से मौजूद' या 'लोड करने लायक' के तौर पर चालू नहीं किया जाएगा
जीकेआई मॉड्यूल की सुविधा उपलब्ध नहीं है.
अगर कोई कर्नेल ड्राइवर या फ़्रेमवर्क ACK में मौजूद है, लेकिन उसे
तो वेंडर, ड्राइवर में बदलाव कर सकते हैं और इसे वेंडर के तौर पर डिलीवर कर सकते हैं
मॉड्यूल का इस्तेमाल नहीं किया जाएगा. अलग-अलग वेंडर के लिए उपलब्ध मॉड्यूल के लिए, इस तरह के बदलाव करने की सलाह नहीं दी जाती
क्योंकि Gकेआई कर्नेल के साथ वही काम करने की क्षमता
आने वाले समय में लॉन्च किया जा सकता है. जब जीकेआई कर्नेल में वेंडर से मिली सुविधाएं शामिल होती हैं
मॉड्यूल न हो, तो वेंडर मॉड्यूल लोड नहीं होगा. उदाहरण के लिए,
Android 11 में, CONFIG_GREYBUS
को GKI के लिए सेट नहीं किया गया है.
वेंडर, ग्रेबस वेंडर मॉड्यूल डिलीवर कर सकते हैं. हालांकि, CONFIG_GREYBUS
Android 12 में GKI बिल्ट-इन या मॉड्यूल के तौर पर चालू हो
जिस स्थिति में ग्रेबस वेंडर मॉड्यूल लोड नहीं होंगे. सबसे सही तरीका है कि
गैर वेंडर के लिए ड्राइवर का अपस्ट्रीम वर्शन, अगर उन्हें
वेंडर मॉड्यूल.
वेंडर मॉड्यूल यहां डिलीवर किए जा सकते हैं: vendor
या
vendor_boot
इमेज. बूट प्रोसेस के शुरुआती ज़रूरी मॉड्यूल vendor_boot
में होने चाहिए.
vendor_boot
से मॉड्यूल लोड करने के लिए बूट-टाइम का शुल्क चुकाना होगा.