Android कर्नेल अक्सर पूछे जाने वाले प्रश्न

इस दस्तावेज़ में एंड्रॉइड कर्नेल के बारे में अक्सर पूछे जाने वाले प्रश्न शामिल हैं, जिन्हें जेनेरिक कर्नेल इमेज (जीकेआई) कर्नेल के रूप में भी जाना जाता है। यदि आप GKI और GKI कर्नेल शब्दावली से अपरिचित हैं, तो कर्नेल अवलोकन देखें।

क्या कर्नेल मॉड्यूल इंटरफ़ेस (KMI) प्रतीक सूचियों को स्थिर कर्नेल में बदला जा सकता है?

जो परिवर्तन मौजूदा KMI को प्रभावित नहीं करते, उन्हें जमे हुए कर्नेल में जोड़ा जा सकता है। इन परिवर्तनों में नए निर्यातित फ़ंक्शन और प्रतीक सूची प्रविष्टियाँ शामिल हैं। विवरण के लिए, प्रतीक सूचियाँ प्रबंधित करना देखें।

क्या मैं स्थिर कर्नेल में विक्रेता मॉड्यूल द्वारा उपयोग की जाने वाली संरचनाओं को बदल सकता हूँ?

जो संरचनाएँ KMI इंटरफ़ेस का हिस्सा हैं, उन्हें जमे हुए KMI के साथ कर्नेल में नहीं बदला जा सकता है। KMI फ़्रीज़ होने से पहले, इन संरचनाओं को बदला जा सकता है।

जब तक मैं बाइनरी/स्रोत संगतता को नहीं तोड़ता, क्या मैं कर्नेल बदल सकता हूँ?

जो परिवर्तन KMI को प्रभावित नहीं करते, उन्हें Android-विशिष्ट पैच में वर्णित अनुसार किया जा सकता है।

GKI कर्नेल कॉन्फ़िगरेशन को कैसे संभालता है?

कर्नेल कॉन्फ़िगरेशन की जानकारी के लिए, gki_defconfig में परिवर्तन देखें।

मैं मौजूदा जीकेआई मॉड्यूल को ओवरराइट करने के लिए अपस्ट्रीम बग फिक्स को कैसे संभालूं?

यदि आप एंड्रॉइड कॉमन कर्नेल (एसीके) में ड्राइवर के आधार पर एक विक्रेता मॉड्यूल बनाते हैं, तो यह सुनिश्चित करना आपके ऊपर है कि अपस्ट्रीम और एसीके से बग फिक्स आपके मॉड्यूल में प्रसारित होते हैं। आम तौर पर, बिना किसी संशोधन के GKI कर्नेल और GKI मॉड्यूल का उपयोग करना आपके हित में है, इसलिए ये अपडेट Google द्वारा लगातार प्रदान किए जाते हैं।

क्या जीकेआई विशिष्ट परीक्षण हैं?

वेंडर टेस्ट सूट (वीटीएस) परीक्षण हैं जो सत्यापित करते हैं कि एक प्रमाणित जीकेआई बिल्ड स्थापित है और प्रति-रिलीज़ जीकेआई आवश्यकताओं को लागू करने के लिए भी। उदाहरण के लिए, बूट हेडर v3 के लिए और 5.10 कर्नेल चलाने वाले डिवाइस में आवश्यक विभाजन के अस्तित्व को सत्यापित करने के लिए एंड्रॉइड 12 वीटीएस परीक्षण हैं।

मैं डिवाइस बिल्ड के लिए प्रोजेक्ट डिकॉन्फिग फ्रैगमेंट फ़ाइल कैसे बनाऊं?

कई GKI-अनुपालक डिवाइस विक्रेता मॉड्यूल बनाने के लिए, gki_defconfig के अलावा, आवश्यक कॉन्फ़िगरेशन विकल्पों का वर्णन करने के लिए कॉन्फ़िगरेशन खंड का उपयोग करते हैं। थार ACK कोड बेस का हिस्सा होने के उदाहरणों में कटलफिश और DB845c शामिल हैं। फ़्रैगमेंट को अनुकूलित करने के लिए कॉन्फ़िगरेशन विकल्पों की कुछ मैन्युअल जांच से बचने का कोई तरीका नहीं है, लेकिन कर्नेल स्रोतों से scripts/diffconfig gki_defconfig और gki_defconfig+device.fragment के परिणामों की तुलना करने के लिए उपयोगी है।

क्या modprobe के लिए - और _ को समकक्ष मानने का कोई उपाय है?

मॉडप्रोब मैन पेज में यह विवरण है: " modprobe समझदारी से लिनक्स कर्नेल से एक मॉड्यूल जोड़ता या हटाता है: ध्यान दें कि सुविधा के लिए, मॉड्यूल नामों में _ और - के बीच कोई अंतर नहीं है (स्वचालित अंडरस्कोर रूपांतरण किया जाता है)।" जीकेआई टीम मानक अपस्ट्रीम कन्वेंशन का पालन करती है, इसलिए विक्रेता उपकरण या मॉड्यूल नामकरण कन्वेंशन को इस अनुपालन को ध्यान में रखना चाहिए।

मैं आंतरिक उपयोग के लिए डिबगफ़्स कैसे सक्षम करूँ?

डिबगफ़ को सक्षम करने के विवरण के लिए, घुसपैठिया डाउनस्ट्रीम डिबग सुविधाएँ देखें।

मैं एक विशिष्ट मॉड्यूल कॉन्फ़िगरेशन सक्षम होने के साथ जीकेआई कर्नेल के बीच बेमेल एबीआई को कैसे हल कर सकता हूं?

जीकेआई कर्नेल और मॉड्यूल कॉन्फ़िगरेशन के बीच बेमेल एबीआई एक अंतर्निहित मॉड्यूल कॉन्फ़िगरेशन निर्भरता का प्रतिनिधित्व करता है, जहां मॉड्यूल को सक्षम करने से परिणामी कर्नेल छवि में एक बाइनरी कॉन्फ़िगरेशन बनाया जाता है। आगे का रास्ता निर्धारित करने के लिए एंड्रॉइड कर्नेल टीम ( kernel-team@android.com ) से संपर्क करें। प्रतीकों की सूची निर्धारित होने के बाद, इश्यू ट्रैकर में एक बग बनाएं और प्रतीक सूची में एक बदलाव अपलोड करें।

मेरे पास एंड्रॉइड 11 और 12 के साथ लॉन्च किए गए 5.4 कर्नेल पर चलने वाले जीकेआई 1.0 अनुरूप डिवाइस हैं। कौन से कर्नेल अपग्रेड विकल्प उपलब्ध हैं, और एंड्रॉइड 12 और 13 में अपग्रेड करते समय मैं इन डिवाइसों का परीक्षण कैसे कर सकता हूं?

लॉन्च और अपग्रेड संस्करणों के लिए समर्थित कर्नेल संस्करणों की सूची के लिए संगतता मैट्रिक्स देखें। यहां दो अपग्रेड उदाहरण दिए गए हैं.

उदाहरण 1: एंड्रॉइड android11-5.4 कर्नेल ( जीकेआई 1.0 ) के साथ एंड्रॉइड 11 के साथ लॉन्च होने वाले डिवाइस वाला उपयोगकर्ता एंड्रॉइड 12 में अपग्रेड करते समय इनमें से कोई भी विकल्प चुन सकता है:

  • android12-5.10 GKI 2.0 कर्नेल पर अपग्रेड करें (दृढ़ता से अनुशंसित)।

  • android11-5.4 कर्नेल रखें.

  • android12-5.4 कर्नेल पर अपग्रेड करें।

उदाहरण 2: एंड्रॉइड 12 के साथ android12-5.4 या android12-5.10 कर्नेल के साथ लॉन्च होने वाले डिवाइस वाला उपयोगकर्ता एंड्रॉइड 13 में अपग्रेड करते समय इनमें से कोई भी विकल्प चुन सकता है:

  • android13-5.10 या android13-5.15 GKI 2.0 कर्नेल पर अपग्रेड करें (दृढ़ता से अनुशंसित)।

  • android12-5.4 GKI 1.0 कर्नेल रखें।

  • android12-5.10 GKI 2.0 कर्नेल रखें।

विशेष रूप से ट्रेबल अनुपालन परीक्षण के लिए, हम आपको निम्नलिखित में से एक करने की सलाह देते हैं:

  • पार्टनर कर्नेल को प्रमाणित GKI 1.0 कर्नेल ( android11-5.4 या android12-5.4 ) से बदलें।

  • आपके चयन के आधार पर प्रमाणित GKI 2.0 कर्नेल ( android12-5.10 , android13-5.10 , या android13-5.15 ) के साथ शिप करें।

से डाउनलोड कर सकते हैं

आप जेनेरिक कर्नेल इमेज (जीकेआई) रिलीज बिल्ड से जीकेआई 2.0 बिल्ड डाउनलोड कर सकते हैं।