एओएसपी सामान्य कर्नेल (एंड्रॉइड कॉमन कर्नेल या एसीके के रूप में भी जाना जाता है) कर्नेल.ओआरजी कर्नेल के डाउनस्ट्रीम हैं और एंड्रॉइड समुदाय में रुचि के पैच शामिल हैं जिन्हें मेनलाइन या लॉन्ग टर्म सपोर्टेड (एलटीएस) कर्नेल में विलय नहीं किया गया है। इन पैच में शामिल हो सकते हैं:
- Android सुविधाओं के लिए आवश्यक अपस्ट्रीम कार्यक्षमता के बैकपोर्ट और चेरी-पिक्स
- सुविधाएं Android उपकरणों के लिए तैयार हैं लेकिन अभी भी विकास के तहत हैं (उदाहरण के लिए, एनर्जी अवेयर शेड्यूलर टास्क प्लेसमेंट ऑप्टिमाइज़ेशन)।
- वेंडर/OEM सुविधाएँ जो अन्य पारिस्थितिकी तंत्र भागीदारों के लिए उपयोगी हैं (उदाहरण के लिए, sdcardfs)।
android-mainline
Android सुविधाओं के लिए प्राथमिक विकास शाखा है। जब भी लाइनस टोरवाल्ड्स रिलीज या रिलीज उम्मीदवार पोस्ट करता है तो लिनक्स मेनलाइन को android-mainline
में विलय कर दिया जाता है। 2019 से पहले, एंड्रॉइड कॉमन कर्नेल का निर्माण हाल ही में घोषित एलटीएस कर्नेल की क्लोनिंग करके और एंड्रॉइड-विशिष्ट पैच जोड़कर किया गया था। यह प्रक्रिया 2019 में नए Android आम कर्नेल को android-mainline
से ब्रांच करने के लिए बदल दी गई। यह नया मॉडल वृद्धिशील रूप से समान परिणाम प्राप्त करके पोर्ट और Android पैच को अग्रेषित करने के महत्वपूर्ण प्रयास से बचता है। android-mainline
महत्वपूर्ण निरंतर परीक्षण से गुजरती है, यह मॉडल प्रकाशित होने के दिन से उच्च गुणवत्ता वाले कर्नेल को सुनिश्चित करता है।
जब एक नए LTS को अपस्ट्रीम घोषित किया जाता है, तो संबंधित सामान्य कर्नेल को android-mainline
से ब्रांच किया जाता है। यह भागीदारों को android-mainline
से विलय करके एलटीएस संस्करण की घोषणा से पहले एक परियोजना शुरू करने की अनुमति देता है। नई सामान्य कर्नेल शाखा बनने के बाद, सहभागी मर्ज स्रोत को नई शाखा में निर्बाध रूप से बदल सकते हैं।
अन्य सामान्य कर्नेल शाखाएँ अपने संबद्ध LTS कर्नेल से नियमित विलय प्राप्त करती हैं। एलटीएस रिलीज पोस्ट होने के तुरंत बाद ये विलय आम तौर पर किया जाता है। उदाहरण के लिए, जब Linux 4.19.64 पोस्ट किया गया था, तो इसे 4.19 सामान्य कर्नेल (उदाहरण के लिए, android-4.19-q
) में मिला दिया गया था। एलटीएस और एंड्रॉइड-विशिष्ट बग फिक्स के साथ अद्यतित रहने के लिए भागीदारों को नियमित रूप से सामान्य कर्नेल से अपने उत्पाद कर्नेल में विलय करने के लिए दृढ़ता से प्रोत्साहित किया जाता है।
एसीके केएमआई कर्नेल शाखा
GKI गुठली में एक स्थिर कर्नेल मॉड्यूल इंटरफ़ेस होता है। KMI को कर्नेल संस्करण और Android प्लेटफ़ॉर्म रिलीज़ द्वारा विशिष्ट रूप से पहचाना जाता है, इसलिए शाखाओं को <androidRelease>-<kernel version>
नाम दिया गया है। उदाहरण के लिए, Android 11 के लिए 5.4 GKI कर्नेल का नाम android11-5.4.
Android 12 के लिए दो अतिरिक्त GKI कर्नेल, android12-5.4
और android12-5.10
हैं।
विरासत मिठाई कर्नेल शाखाएं
लीगेसी डेज़र्ट कर्नेल इस बात की गारंटी देने के लिए बनाए गए थे कि नए फीचर डेवलपमेंट ने एंड्रॉइड कॉमन कर्नेल से विलय में हस्तक्षेप नहीं किया। शाखाओं को संबंधित डेज़र्ट रिलीज़ से पहले बनाया गया था और एलटीएस से नियमित विलय प्राप्त होता है, लेकिन कोई नई सुविधाएँ नहीं। उदाहरण के लिए, android-4.9-q
LTS 4.9.y शाखा से विलय प्राप्त करता है।
यदि कर्नेल संस्करण लॉन्च कर्नेल नहीं था, तो कोई डेज़र्ट कर्नेल नहीं बनाया गया था, लेकिन नवीनतम प्लेटफ़ॉर्म रिलीज़ से संबद्ध कर्नेल भविष्य के Android प्लेटफ़ॉर्म रिलीज़ में अपग्रेड करने के लिए मान्य है। उदाहरण के लिए, android-4.9-q
android-4.9*
डेज़र्ट शाखाओं में अंतिम था, इसलिए यह अपने मूल प्लेटफ़ॉर्म रिलीज़, Android 10 के साथ समर्थित और परीक्षण किया गया है। यह प्लेटफ़ॉर्म रिलीज़ के साथ भी समर्थित और परीक्षण किया गया है जो 4.9 चलाने वाले उपकरणों के उन्नयन का समर्थन करता है। गुठली: Android 11 और Android 12।
क्योंकि Android प्लेटफ़ॉर्म रिलीज़ के लिए डेज़र्ट नामकरण योजना को Android 10 के साथ हटा दिया गया था, अंतिम डेज़र्ट रिलीज़ जिसे android-4.14-r
और android-4.19-r
कहा जाता था, इसके बजाय android-4.14-stable
और android-4.19-stable
कहा जाता था।
एंड्रॉइड 11 के साथ शुरू होने वाले GKI गुठली द्वारा मिठाई गुठली को हटा दिया जाता है, इसलिए समर्थित मिठाई गुठली की पूरी सूची इस तालिका में है।
Android प्लेटफ़ॉर्म रिलीज़ | गुठली | तक समर्थन किया |
---|---|---|
एंड्रॉइड 10 | android-4.9-q android-4.14-q android-4.19-q | जनवरी 2023 |
एंड्रॉइड 11 | android-4.14-stable android-4.19-stable | जनवरी 2024 |
लीगेसी रिलीज कर्नेल शाखाएं
मासिक एंड्रॉइड सुरक्षा बुलेटिन में उद्धृत पैच के बैकपोर्ट प्रदान करने के लिए रिलीज कर्नेल बनाए रखा जाता है। वे प्रत्येक लॉन्च कर्नेल के लिए बनाए गए थे जब एक नया Android प्लेटफ़ॉर्म रिलीज़ हुआ था। समर्थन जीवन काल और सुरक्षा पैच में वर्णित के रूप में संबद्ध कर्नेल या प्लेटफ़ॉर्म रिलीज़ को बहिष्कृत किए जाने पर उन्हें पदावनत कर दिया जाता है।
हर महीने जब Android सुरक्षा बुलेटिन प्रकाशित होता है, तो ये कर्नेल बुलेटिन में उद्धृत पैच के बैकपोर्ट के साथ अपडेट किए जाते हैं जो अपस्ट्रीम कर्नेल और Android सामान्य कर्नेल के लिए प्रासंगिक होते हैं। वे एलटीएस पैच प्राप्त नहीं करते हैं, इसलिए मामूली संस्करण संख्या कभी नहीं बदलती है। वे विक्रेता-विशिष्ट पैच के लिए बैकपोर्ट नहीं रखते हैं।
Android 11 और उसके बाद के प्लेटफ़ॉर्म रिलीज़ में, भागीदारों को Android सुरक्षा बुलेटिन में उद्धृत पैच लागू करने के लिए डेज़र्ट या GKI गुठली से मर्ज करना होगा। Android 11 या बाद के प्लेटफ़ॉर्म रिलीज़ के लिए कोई रिलीज़ कर्नेल नहीं बनाया जाएगा।
इसलिए, 14 रिलीज़ कर्नेल की पूरी सूची इस तालिका में दिखाई गई है, और कोई भी जोड़ा नहीं जाएगा।
Android प्लेटफ़ॉर्म रिलीज़ | गुठली | तक समर्थन किया |
---|---|---|
एंड्रॉइड 10 | android-4.9-q-release android-4.14-q-release android-4.19-q-release | जनवरी 2023 |
फ़ीचर और लॉन्च गुठली
प्रत्येक Android प्लेटफ़ॉर्म रिलीज़ तीन लिनक्स कर्नेल संस्करणों में से किसी के आधार पर नए उपकरणों को लॉन्च करने का समर्थन करता है। जैसा कि नीचे दी गई तालिका में दिखाया गया है, Android 11 के लिए लॉन्च कर्नेल android-4.14-stable
, android-4.19-stable
, और android11-5.4
।
क्योंकि प्लेटफ़ॉर्म रिलीज़ को अपडेट करते समय कर्नेल अपग्रेड की आमतौर पर आवश्यकता नहीं होती है, प्लेटफ़ॉर्म रिलीज़ के लिए नवीनतम सुविधाओं को याद करने वाले कर्नेल को अभी भी डिवाइस लॉन्च करने के लिए उपयोग किया जा सकता है। इसलिए Android 10 के लिए डिज़ाइन किए गए गुठली, जैसे कि android-4.19-q
, का उपयोग प्लेटफ़ॉर्म रिलीज़ को Android 11 में अपग्रेड करने के बाद भी उपकरणों पर किया जा सकता है। स्थिर KMI जिनका समर्थन किया जाना चाहिए।
Android प्लेटफ़ॉर्म रिलीज़ | गुठली लॉन्च करें | फ़ीचर गुठली |
---|---|---|
Android 10 (2019) | android-4.9-q android-4.14-q android-4.19-q | android-4.9-q android-4.14-q android-4.19-q |
Android 11 (2020) | android-4.14-stable android-4.19-stable android11-5.4 | android-4.14-stable android-4.19-stable android11-5.4 |
Android 12 (2021) | android-4.19-stable android11-5.4 1 android12-5.4 android12-5.10 | android12-5.4 android12-5.10 |
Android 13 (2022) | android11-5.4 1 android12-5.4 1 android12-5.10 1 android13-5.10 android13-5.15 | android13-5.10 android13-5.15 |
1 अतिरिक्त प्रतिबंध लागू हो सकते हैं यदि संबंधित बीएसपी को प्लेटफॉर्म रिलीज के लिए अपडेट किया गया है। अधिक सामान्य शब्दों में, कर्नेल की Android रिलीज़ संख्या लक्ष्य FCM संस्करण से अधिक या उसके बराबर होनी चाहिए। विक्रेता इंटरफ़ेस ऑब्जेक्ट देखें - विवरण के लिए कर्नेल शाखाओं का मिलान करें । |
सामान्य कर्नेल पदानुक्रम
एंड्रॉइड-मेनलाइन से ब्रांचिंग
सामान्य कर्नेल पदानुक्रम का शीर्ष स्तर चित्र 1 में दिखाया गया है।
चित्र 1. Android-मेनलाइन कर्नेल से सामान्य कर्नेल बनाना
ध्यान दें कि नया एंड्रॉइड कॉमन कर्नेल android12-5.10
2020 में android-mainline
से ब्रांच किया गया था। 2021 में, जब अगला LTS घोषित किया गया था, android13-5.15
android-mainline
से ब्रांच किया गया था।
जैसा कि चित्र 1 में दिखाया गया है, प्रत्येक कर्नेल संस्करण दो GKI कर्नेल का आधार है। उदाहरण के लिए, दो v5.4 कर्नेल android11-5.4
और android12-5.4
हैं, जिनमें से दोनों अपने संबंधित प्लेटफॉर्म रिलीज के लिए फीचर कर्नेल हैं। 5.10 के लिए भी यही स्थिति होगी; android12-5.10
तब बनाया गया था जब LTS घोषित किया गया था और android13-5.10
android12-5.10
से शाखा करेगा, जो कि स्प्रिंग 2021 में कर्नेल फीचर पूर्ण माइलस्टोन पर Android 13 के लिए सुविधाओं के विकास की अनुमति देगा।
एसीके केएमआई शाखा जीवनचक्र
एसीके केएमआई शाखा का जीवन चक्र नीचे चित्रा 2 में दिखाया गया है।
चित्र 2. 5.10 ACK KMI शाखा जीवनचक्र
विकास प्रक्रिया और शाखा जीवनचक्र को स्पष्ट करने के लिए, चित्र 2 5.10 के लिए ACK KMI शाखाओं पर केंद्रित है।
प्रत्येक ACK KMI शाखा प्रत्येक शाखा में अलग-अलग रंगों द्वारा चित्र 2 में दर्शाए गए तीन चरणों के माध्यम से चक्रित होती है। जैसा कि दिखाया गया है, चरण की परवाह किए बिना एलटीएस नियमित रूप से विलय कर दिया जाता है।
विकास का चरण
जब इसे बनाया जाता है, तो एसीके केएमआई शाखा विकास चरण में प्रवेश करती है (चित्र 2 में देव ), और अगले एंड्रॉइड प्लेटफॉर्म रिलीज के लिए फीचर योगदान के लिए खुला है। चित्र 2 में, android12-5.10
बनाया गया था जब 5.10 को नए अपस्ट्रीम LTS कर्नेल के रूप में घोषित किया गया था। कर्नेल संस्करण के लिए दूसरी एसीके केएमआई शाखा बाद में रिलीज के विकास की अनुमति देने के लिए पहले बनाई जा सकती है। चित्र 2 में, android13-5.10
तब बनाया जाता है जब android12-5.10
विकास के चरण से बाहर हो जाता है।
स्थिरीकरण चरण
जब ACK KMI शाखा को फीचर पूर्ण घोषित किया जाता है, तो यह स्थिरीकरण चरण में प्रवेश करती है, जिसे चित्र 2 में स्टैब के रूप में लेबल किया गया है। भागीदार सुविधाएँ और बग फिक्स अभी भी स्वीकार किए जाते हैं, लेकिन इंटरफ़ेस को प्रभावित करने वाले किसी भी परिवर्तन का पता लगाने के लिए KMI ट्रैकिंग सक्षम है। इस चरण में, KMI-ब्रेकिंग परिवर्तन स्वीकार किए जाते हैं, लेकिन KMI परिभाषा को आवश्यकतानुसार अद्यतन किया जाना चाहिए। KMI निगरानी के विवरण के लिए GKI ओवरव्यू देखें।
केएमआई जमे हुए चरण
AOSP को एक नया प्लेटफ़ॉर्म रिलीज़ करने से पहले, ACK KMI शाखा जमी हुई है और शाखा के जीवनकाल के लिए स्थिर रहती है। इसका मतलब यह है कि कोई भी केएमआई-ब्रेकिंग परिवर्तन तब तक स्वीकार नहीं किया जाता है जब तक कि एक गंभीर सुरक्षा समस्या की पहचान नहीं की जाती है जिसे स्थिर केएमआई को प्रभावित किए बिना कम नहीं किया जा सकता है। KMI टूटने से बचने के लिए, LTS से मर्ज किए गए कुछ पैच संशोधित किए जा सकते हैं या Android उपकरणों के लिए फिक्स की आवश्यकता नहीं होने पर हटा दिए जा सकते हैं।
जब एक एसीके केएमआई शाखा स्थिर हो जाती है, तब तक बग फिक्स और भागीदार सुविधाओं को स्वीकार किया जा सकता है जब तक कि मौजूदा केएमआई सामान्य कर्नेल टूटा नहीं जाता है। KMI को नए निर्यात किए गए प्रतीकों के साथ तब तक बढ़ाया जा सकता है जब तक कि वर्तमान KMI में शामिल इंटरफेस प्रभावित नहीं होते हैं। जब KMI में नए इंटरफेस जोड़े जाते हैं, तो वे तुरंत स्थिर हो जाते हैं और भविष्य में होने वाले बदलावों से तोड़े नहीं जा सकते।
उदाहरण के लिए, KMI इंटरफ़ेस सामान्य कर्नेल द्वारा उपयोग की जाने वाली संरचना में फ़ील्ड जोड़ने वाले परिवर्तन की अनुमति नहीं है क्योंकि यह इंटरफ़ेस परिभाषा को बदलता है:
struct foo {
int original_field1;
int original_field2;
int new_field; // Not allowed
};
int do_foo(struct foo &myarg)
{
do_stuff(myarg);
}
EXPORT_SYMBOL_GPL(do_foo);
हालाँकि, एक नया कार्य जोड़ना ठीक है:
struct foo2 {
struct foo orig_foo;
int new_field;
};
int do_foo2(struct foo2 &myarg)
{
do_stuff2(myarg);
}
EXPORT_SYMBOL_GPL(do_foo2);
GKI कर्नेल के जीवनकाल के लिए, उपयोक्तास्थान के साथ पश्चगामी अनुकूलता बनाए रखी जाती है ताकि कर्नेल को Android प्लेटफ़ॉर्म रिलीज़ के लिए सुरक्षित रूप से उपयोग किया जा सके जिसके साथ डिवाइस को लॉन्च किया गया था। पिछले रिलीज के साथ निरंतर परीक्षण सुनिश्चित करता है कि संगतता बनी रहे। तो चित्र 2 में, android12-5.10
कर्नेल का उपयोग Android 12 उपकरणों और Android 13 उपकरणों के लिए किया जा सकता है। क्योंकि Android प्लेटफ़ॉर्म रिलीज़ पिछले संस्करणों के साथ भी संगत है, android12-5.4
कर्नेल का उपयोग Android 13 उपकरणों के लिए या तो लॉन्च या अपग्रेड के लिए किया जा सकता है।
जमे हुए चरण में प्रवेश करते समय, शाखा को KMI पीढ़ी संख्या वाले KMI संस्करण स्ट्रिंग के साथ git-टैग किया जाता है। उदाहरण के लिए, जब android11-5.4
रुका हुआ था, तो इसे KMI संस्करण स्ट्रिंग 5.4-android11-0
के साथ टैग किया गया था, जहां अनुगामी 0
KMI पीढ़ी संख्या है। यदि कोई सुरक्षा समस्या या अन्य घटना है जिसके लिए KMI-चेंजिंग पैच को स्वीकार करने की आवश्यकता है, तो KMI जनरेशन नंबर बढ़ा दिया जाता है और शाखा को फिर से टैग किया जाता है। उदाहरण के लिए, यदि android11-5.4
में इस तरह के परिवर्तन को स्वीकार किया जाता है, तो शाखा को नए KMI संस्करण 5.4-android11-1
के साथ टैग किया जाएगा। वर्तमान KMI जेनरेशन को uname
कमांड का उपयोग करके पाया जा सकता है:
$ uname -r
5.4.61-android11-0-00153-ga972f59040e4
प्लेटफ़ॉर्म रिलीज़ के बाद की संख्या KMI जनरेशन (इस मामले में 0) है।
यदि KMI पीढ़ी बदलती है, तो कर्नेल वेंडर मॉड्यूल के साथ संगत नहीं है जो पिछली KMI पीढ़ी के अनुरूप है, इसलिए मॉड्यूल को फिर से बनाया जाना चाहिए और कर्नेल के साथ समकालिक रूप से अद्यतन किया जाना चाहिए। KMI पीढ़ी परिवर्तन बहुत दुर्लभ होने की उम्मीद है।
गुठली के बीच संगतता
नए GKI कर्नेल के साथ एक ही LTS परिवार में कर्नेल के बीच संगतता आवश्यकताएँ बदल रही हैं।
जीकेआई गुठली
GKI गुठली कर्नेल संस्करण का समर्थन करने वाले सभी Android प्लेटफ़ॉर्म रिलीज़ के साथ पश्चगामी संगतता बनाए रखती है। इसके अतिरिक्त, Android प्लेटफ़ॉर्म रिलीज़ पिछले रिलीज़ से GKI गुठली के साथ पिछड़े-संगत हैं। तो आप सुरक्षित रूप से Android 12 के लिए विकसित android12-5.4
कर्नेल का उपयोग Android 13 चलाने वाले उपकरणों पर कर सकते हैं। सभी समर्थित रिलीज़ के साथ GKI कर्नेल के निरंतर VTS और CTS परीक्षण के माध्यम से संगतता सत्यापित की जाती है।
केएमआई स्थिर है ताकि विक्रेता छवि में कर्नेल मॉड्यूल के पुनर्निर्माण की आवश्यकता के बिना कर्नेल को अद्यतन किया जा सके।
विभिन्न GKI गुठली के बीच KMI संगतता बनाए नहीं रखी जाती है। इसलिए, उदाहरण के लिए, एक android12-5.10
सभी मॉड्यूल के पुनर्निर्माण के बिना android13-5.10
कर्नेल से बदला नहीं जा सकता है।
GKI गुठली उनके प्रारंभिक और बाद के रिलीज के लिए ही समर्थित हैं। वे पुराने रिलीज़ के लिए समर्थित नहीं हैं। इसलिए android13-5.10
कर्नेल Android 12 उपकरणों पर समर्थित नहीं है।
विरासत गुठली
लीगेसी डेज़र्ट कर्नेल ( *-q
और *-stable
) Android प्लेटफ़ॉर्म रिलीज़ में पिछड़े संगत नहीं हैं, लेकिन पिछले दो Android प्लेटफ़ॉर्म रिलीज़ से कर्नेल अपग्रेड के लिए समर्थित हैं। इसलिए, android-4.19-q
पर आधारित कर्नेल का उपयोग करके Android 10 के साथ लॉन्च किया गया डिवाइस या तो Android 2020 में अपग्रेड करते समय android-4.19-q
कर्नेल का उपयोग करना जारी रख सकता है, या android-4.19-stable
का समर्थन करने के लिए विक्रेता-विशिष्ट कोड को अपडेट कर सकता है। .
संगतता मैट्रिक्स
यह तालिका प्रत्येक Android प्लेटफ़ॉर्म रिलीज़ के साथ समर्थित और परीक्षण किए गए कर्नेल संस्करणों को दिखाती है।
Android प्लेटफ़ॉर्म रिलीज़ | उन्नयन के लिए समर्थित गुठली | लॉन्च के लिए समर्थित गुठली |
---|---|---|
Android 10 (2019) | android-3.18 (ईओएल)android-4.4-o (ईओएल)android-4.9-o (ईओएल)android-4.9-p (ईओएल)android-4.14-p (ईओएल) | android-4.9-q |
Android 11 (2020) | android-4.4-o (ईओएल)android-4.4-p (ईओएल)android-4.9-o (ईओएल)android-4.9-p (ईओएल)एंड्रॉइड-4.9-क्यू android-4.14-p (ईओएल)android-4.14-q | android-4.14-stable |
Android 12 (2021) | android-4.9-o (ईओएल)android-4.9-p (ईओएल)android-4.9-q (ईओएल)android-4.14-q | android-4.19-stable |
Android 13 (2022) | android-4.9-q | android11-5.4 |
जीवनकाल और सुरक्षा पैच का समर्थन करें
Android सामान्य कर्नेल समर्थित हैं जब तक कि संबद्ध LTS कर्नेल या Android प्लेटफ़ॉर्म रिलीज़ अब समर्थित नहीं है। जबकि एक कर्नेल समर्थित है, यह अपस्ट्रीम से LTS मर्ज प्राप्त करना जारी रखता है और Android-विशिष्ट कोड के लिए बग फिक्स करता है। इन सुधारों में मासिक Android सुरक्षा बुलेटिन में उद्धृत सभी कर्नेल सुरक्षा पैच शामिल हैं जो Android सामान्य कर्नेल के लिए प्रासंगिक हैं।
साझेदार आश्वस्त हो सकते हैं कि नियमित रूप से एंड्रॉइड कॉमन कर्नेल से विलय करके, वे सभी कर्नेल सुरक्षा पैच प्राप्त कर रहे हैं।
सामान्य कर्नेल परीक्षण
विक्रेताओं द्वारा डाउनस्ट्रीम परीक्षण के अलावा सामान्य गुठली का परीक्षण कई CI सिस्टम के साथ किया जाता है।
लिनारो कर्नेल कार्यात्मक परीक्षण
Linaro Kernel Functional Testing (LKFT) भौतिक arm32 और arm64 उपकरणों के एक सेट पर kselftest, LTP, VTS, और CTS सहित विभिन्न परीक्षण सूट आरंभ करता है। हाल के परीक्षा परिणाम यहां देखे जा सकते हैं।
कर्नेलसीआई परीक्षण
कर्नेलसीआई बिल्ड-एंड-बूट परीक्षण शुरू किए जाते हैं जब भी एक सामान्य कर्नेल शाखा के लिए एक नया पैच प्रतिबद्ध होता है। कई सौ बिल्ड कॉन्फ़िगरेशन का परीक्षण किया जाता है और विभिन्न बोर्डों पर बूट किया जाता है। Android कर्नेल के हाल के परिणाम यहां देखे जा सकते हैं।
Android पूर्व-सबमिट और पोस्ट-सबमिट परीक्षण
विफलताओं को आम कर्नेल में पेश होने से रोकने के लिए पूर्व-सबमिट परीक्षणों का उपयोग किया जाता है। परिणाम इस समय सार्वजनिक रूप से उपलब्ध नहीं हैं।
एंड्रॉइड पोस्टसबमिट परीक्षण तब किया जाता है जब एक नया पैच एक सामान्य कर्नेल शाखा के लिए प्रतिबद्ध होता है। आंशिक शाखा नाम के रूप में aosp_kernel
दर्ज करके, आप उपलब्ध परिणामों के साथ कर्नेल शाखाओं की एक सूची देखते हैं। उदाहरण के लिए, android-mainline
के परिणाम यहां देखे जा सकते हैं।
0-दिन परीक्षण
नए पैच किए जाने पर 0-दिवसीय परीक्षण सभी एंड्रॉइड सामान्य कर्नेल शाखाओं पर पैच-बाय-पैच परीक्षण करता है। विभिन्न बूट, कार्यात्मक और प्रदर्शन परीक्षण चलाए जाते हैं। सार्वजनिक समूह cros-kernel-buildreports में शामिल हों
टेस्ट मैट्रिक्स
Android सामान्य कर्नेल | Android प्लेटफ़ॉर्म रिलीज़ | टेस्ट सूट | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
मालिक | 13 | 12 | 11 | 10 | 9 (पाई) | एलकेएफटी | कर्नेलसीआई | प्री सबमिट करें | पोस्ट सबमिट करें | 0-डे | |
android-mainline | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android13-5.15 | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android12-5.10 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android11-5.4 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
android-4.19-q | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | android-4.9-q | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ |
Android सामान्य गुठली में योगदान
आम तौर पर, फीचर डेवलपमेंट मेनलाइन लिनक्स पर किया जाना चाहिए न कि एंड्रॉइड कॉमन कर्नेल पर। अपस्ट्रीम विकास को दृढ़ता से प्रोत्साहित किया जाता है, और विकास को वहां स्वीकार किए जाने के बाद, इसे आसानी से विशिष्ट एसीके शाखा में आवश्यकतानुसार बैकपोर्ट किया जा सकता है। एंड्रॉइड कर्नेल टीम एंड्रॉइड इकोसिस्टम के लाभ के लिए अपस्ट्रीमिंग प्रयासों का समर्थन करने में प्रसन्न है।
गेरिट को पैच जमा करें और इन योगदान दिशानिर्देशों के अनुरूप हों।