Android सामान्य कर्नेल

AOSP के सामान्य कर्नेल (जिन्हें Android के सामान्य कर्नेल या ACKs भी कहा जाता है), kernel.org के कर्नेल के डाउनस्ट्रीम होते हैं. इनमें Android कम्यूनिटी के लिए ऐसे पैच शामिल होते हैं जिन्हें मुख्य या लंबे समय तक काम करने वाले (एलटीएस) कर्नेल में मर्ज नहीं किया गया है. इन पैच में ये शामिल हो सकते हैं:

  • Android की सुविधाओं के लिए ज़रूरी, अपस्ट्रीम फ़ंक्शन के बैकपोर्ट और चेरी-पिक
  • ऐसी सुविधाएं जो Android डिवाइसों के लिए तैयार हैं, लेकिन अपस्ट्रीम पर अब भी काम चल रहा है
  • वेंडर/OEM की ऐसी सुविधाएं जो अन्य नेटवर्क पार्टनर के लिए काम की हैं

android-mainline, Android की सुविधाओं के लिए मुख्य डेवलपमेंट ब्रैंच है. जब भी Linus Torvalds कोई रिलीज़ या रिलीज़ कैंडिडेट पोस्ट करते हैं, तो Linux मुख्य फ़ाइल को android-mainline में मर्ज कर दिया जाता है. साल 2019 से पहले, Android के सामान्य कर्नेल को हाल ही में घोषित किए गए एलटीएस कर्नेल को क्लोन करके और Android के हिसाब से पैच जोड़कर बनाया जाता था. android-mainline से नए Android कमन कर्नेल को अलग करने के लिए, इस प्रोसेस में 2019 में बदलाव किया गया था. यह नया मॉडल, पोर्ट को फ़ॉरवर्ड करने और Android पैच की जांच करने की ज़रूरत को कम करता है. साथ ही, यह धीरे-धीरे एक ही नतीजा पाने में मदद करता है. android-mainline को लगातार जांच की जाती है. इस मॉडल से यह पक्का होता है कि पब्लिश होने के दिन से ही, बेहतर क्वालिटी का कर्नेल उपलब्ध हो.

जब किसी नए LTS को अपस्ट्रीम के तौर पर घोषित किया जाता है, तो उससे जुड़े सामान्य कर्नेल को android-mainline से ब्रैंच किया जाता है. इससे पार्टनर, android-mainline से मर्ज करके, एलटीएस वर्शन के एलान से पहले प्रोजेक्ट शुरू कर सकते हैं. नई सामान्य कर्नेल शाखा बनने के बाद, पार्टनर आसानी से मर्ज सोर्स को नई शाखा में बदल सकते हैं.

आम तौर पर इस्तेमाल होने वाली अन्य कर्नेल शाखाओं को, उनसे जुड़े LTS कर्नेल से नियमित तौर पर मर्ज मिलते हैं. आम तौर पर, ये मर्ज, LTS रिलीज़ पोस्ट होने के तुरंत बाद किए जाते हैं. उदाहरण के लिए, जब Linux 6.1.75 पोस्ट किया गया था, तो उसे 6.1 के सामान्य कोर (android14-6.1) में मर्ज कर दिया गया था. पार्टनर को अपने कोर को अपडेट करने का सुझाव दिया जाता है, ताकि वे LTS और Android के लिए बग ठीक करने से जुड़ी नई जानकारी से अप-टू-डेट रहें.

ACK KMI कर्नेल शाखा

GKI के कर्नेल में, कर्नेल मॉड्यूल इंटरफ़ेस बेहतर तरीके से काम करता है. केएमआई की पहचान, केरल वर्शन और Android प्लैटफ़ॉर्म रिलीज़ से की जाती है. इसलिए, शाखाओं को ANDROID_RELEASE-KERNEL_VERSION नाम दिया जाता है. उदाहरण के लिए, Android 14 के लिए 6.1 GKI केरल का नाम android14-6.1 है. Android 15 के लिए, GKI kernel android15-6.6 को पेश किया गया था.

फ़ीचर और लॉन्च कर्नेल

Android 15 से पहले, डिवाइस लॉन्च करने के लिए, सबसे हाल ही के तीन में से किसी भी कर्नेल का इस्तेमाल किया जा सकता था. Android 15 और उसके बाद के वर्शन में, डिवाइस लॉन्च करने के लिए कर्नेल के दो सबसे नए वर्शन इस्तेमाल किए जा सकते हैं. Android 15 के लिए लॉन्च केर्नेल, android15-6.6 और android14-6.1 हैं.

प्लैटफ़ॉर्म रिलीज़ को अपडेट करते समय, कर्नेल को अपग्रेड करने की ज़रूरत नहीं होती. इसलिए, ऐसे कर्नेल का इस्तेमाल अब भी डिवाइस लॉन्च करने के लिए किया जा सकता है जिनमें प्लैटफ़ॉर्म रिलीज़ के लिए नई सुविधाएं मौजूद नहीं हैं. इसलिए, Android 14 के लिए डिज़ाइन किए गए कर्नेल, जैसे कि android14-6.1 का इस्तेमाल, प्लैटफ़ॉर्म रिलीज़ को Android 15 पर अपग्रेड करने के बाद भी डिवाइसों पर किया जा सकता है.

Android प्लैटफ़ॉर्म रिलीज़ लॉन्च कर्नेल फ़ीचर कर्नेल
Android 15 (2024) android15-6.6
android14-6.1
android15-6.6
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android14-6.1
android14-5.15
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android13-5.15
android13-5.10
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android12-5.10
android12-5.4
Android 11 (2020) android11-5.4
android-4.19-stable
android11-5.4
android-4.19-stable

1 अगर प्लैटफ़ॉर्म रिलीज़ के लिए, उससे जुड़े बीएसपी को अपडेट किया गया है, तो अन्य पाबंदियां लागू हो सकती हैं. सामान्य शब्दों में, कर्नेल का Android रिलीज़ नंबर टारगेट FCM वर्शन से ज़्यादा या उसके बराबर होना चाहिए. ज़्यादा जानकारी के लिए, वेंडर इंटरफ़ेस ऑब्जेक्ट - मैच कर्नेल की शाखाएं देखें.

सामान्य कर्नेल हैरारकी

android-mainline में मौजूद ब्रांच

सामान्य कर्नेल हैरारकी का सबसे ऊपरी लेवल, पहले चित्र में दिखाया गया है.

android-mainline kernel से सामान्य कर्नेल बनाना

पहला डायग्राम. android-mainline कर्नेल से सामान्य कर्नेल बनाना

ध्यान दें कि साल 2022 में, android-mainline से एक नया Android कॉमन कर्नेल android14-6.1 ब्रैंच किया गया था. साल 2023 में, अगली एलटीएस (लंबे समय तक सहायता) का एलान होने पर, android15-6.6 को android-mainline से जोड़ा गया.

जैसा कि पहली इमेज में दिखाया गया है, हर कर्नेल वर्शन दो GKI कर्नेल के लिए आधार हो सकता है. उदाहरण के लिए, दो v5.15 कर्नेल android13-5.15 और android14-5.15 हैं. ये दोनों अपने-अपने प्लैटफ़ॉर्म की रिलीज़ के लिए कर्नेल हैं. यही वजह 5.10 के मामले में भी थी. जब एलटीएस (लंबे समय तक सहायता) का एलान हुआ था, तब android12-5.10 को बनाया गया था. साथ ही, android13-5.10 को android12-5.10 से ब्रांच करके, वसंत 2021 में कर्नेल फ़ीचर की उपलब्धि हासिल करने के लिए बनाया गया. ऐसा Android 13 के लिए सुविधाओं को डेवलप करने की अनुमति देने के लिए किया गया. Android 15 (2024) और Android 15 (2024) से लेकर, हर कर्नेल वर्शन के लिए सिर्फ़ एक नया GKI कर्नेल है. इसमें कोई android15-6.1 कर्नेल नहीं है.

ACK KMI branch लाइफ़साइकल

ACK KMI की शाखा का लाइफ़साइकल, नीचे दी गई इमेज 2 में दिखाया गया है.

6.6 ACK KMI ब्रांच का लाइफ़साइकल

दूसरी इमेज. 6.6 ACK KMI branch lifecycle

डेवलपमेंट प्रोसेस और शाखा के लाइफ़साइकल के बारे में साफ़ तौर पर बताने के लिए, दूसरे चित्र में 6.6 के लिए ACK KMI शाखाओं पर फ़ोकस किया गया है.

ACK KMI की हर शाखा, तीन चरणों से गुज़रती है. इन चरणों को दूसरे चित्र में दिखाया गया है. हर चरण के लिए, अलग-अलग रंग का इस्तेमाल किया गया है. जैसा कि दिखाया गया है, LTS को नियमित तौर पर मर्ज किया जाता है, भले ही वह किसी भी फ़ेज़ में हो.

डेवलपमेंट का फ़ेज़

जब यह ब्रांच बन जाती है, तो ACK KMI ब्रांच डेवलपमेंट के चरण में शामिल हो जाती है. इसे दूसरी इमेज में डेवलपर के तौर पर लेबल किया गया है. इसके बाद, Android प्लैटफ़ॉर्म की अगली रिलीज़ के लिए, सुविधाओं के योगदान के लिए उपलब्ध होता है. दूसरे चित्र में, android15-6.6 तब बनाया गया था, जब 6.6 को अपस्ट्रीम LTS कर्नेल के तौर पर घोषित किया गया था.

स्टेबलाइज़ेशन फ़ेज़

जब ACK KMI ब्रैंच को सुविधा पूरी होने का एलान किया जाता है, तो वह स्थिरता के चरण में प्रवेश कर जाता है. इसे दूसरे चित्र में स्थिर के तौर पर लेबल किया गया है. पार्टनर की सुविधाएं और गड़बड़ी ठीक करने के लिए किए गए बदलाव अब भी स्वीकार किए जाते हैं. हालांकि, इंटरफ़ेस पर असर डालने वाले किसी भी बदलाव का पता लगाने के लिए, केएमआई ट्रैकिंग चालू की गई है. इस चरण में, केएमआई में बदलाव स्वीकार किए जाते हैं और केएमआई की परिभाषा को पहले से तय किए गए समयसीमा (आम तौर पर हर दो हफ़्ते) पर अपडेट किया जाता है. केएमआई मॉनिटरिंग के बारे में जानकारी के लिए, जीकेआई की खास जानकारी देखें.

KMI फ़्रीज़ किया गया फ़ेज़

किसी नए प्लैटफ़ॉर्म की रिलीज़ को AOSP पर पुश करने से पहले, ACK KMI ब्रांच को फ़्रीज़ किया जाता है. यह ब्रांच, अपने पूरे जीवनकाल के लिए फ़्रीज़ रहती है. इसका मतलब है कि KMI को तोड़ने वाले किसी भी बदलाव को तब तक स्वीकार नहीं किया जाता, जब तक सुरक्षा से जुड़ी कोई गंभीर समस्या नहीं मिलती. इस समस्या को स्थिर KMI पर असर डाले बिना ठीक नहीं किया जा सकता. KMI के काम न करने से जुड़ी समस्याओं से बचने के लिए, LTS से मर्ज किए गए कुछ पैच में बदलाव किया जा सकता है या उन्हें हटाया जा सकता है. ऐसा तब किया जाता है, जब Android डिवाइसों के लिए सुधार की ज़रूरत न हो.

जब कोई ACK KMI शाखा फ़्रीज़ हो जाती है, तो बग ठीक करने और पार्टनर की सुविधाओं को तब तक स्वीकार किया जा सकता है, जब तक मौजूदा KMI कॉमन कर्नेल काम कर रहा हो. एक्सपोर्ट किए गए नए सिंबल की मदद से, 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 प्लैटफ़ॉर्म की रिलीज़ के लिए, कर्नेल को सुरक्षित तरीके से इस्तेमाल किया जा सकता है. ऐसा डिवाइस के साथ लॉन्च होने के दौरान किया जाता है. पिछली रिलीज़ के साथ लगातार टेस्ट करने से यह पक्का होता है कि साथ काम करने की क्षमता बनी रहेगी. इसलिए, दूसरी इमेज में दिखाया गया है कि android15-6.6 कर्नेल का इस्तेमाल, Android 15 डिवाइसों और इसके बाद के डिवाइसों के लिए किया जा सकता है. Android प्लैटफ़ॉर्म की रिलीज़, पिछले वर्शन के साथ भी काम करती है. इसलिए, android14-6.1 कर्नेल का इस्तेमाल, Android 15 डिवाइसों के लिए लॉन्च या अपग्रेड करने के लिए किया जा सकता है.

KMI जनरेशन नंबर

अगर स्टेबलाइज़ेशन के दौरान एलटीएस मर्ज हो जाता है या सुरक्षा से जुड़ी कोई समस्या आती है या इसके बाद कोई ऐसी समस्या होती है जिसके लिए केएमआई में बदलाव करने वाले पैच को स्वीकार करने की ज़रूरत होती है, तो build.config.common में रिकॉर्ड किए गए केएमआई जनरेशन नंबर की संख्या बढ़ जाती है. uname कमांड का इस्तेमाल करके, मौजूदा केएमआई जनरेशन को देखा जा सकता है:

$ uname -r
6.6.30-android15-6-g86d10b30f51f

प्लैटफ़ॉर्म रिलीज़ के बाद की संख्या, केएमआई जनरेशन (इस मामले में 6) है.

अगर केएमआई जनरेशन बदलता है, तो केरल, वेंडर के उन मॉड्यूल के साथ काम नहीं करता जो पिछले केएमआई जनरेशन के मुताबिक होते हैं. इसलिए, मॉड्यूल को फिर से बनाया जाना चाहिए और केरल के साथ सिंक करके अपडेट किया जाना चाहिए. केएमआई फ़्रीज़ होने के बाद, केएमआई जनरेशन में बहुत कम बदलाव होने की उम्मीद है.

अलग-अलग कर्नेल के साथ काम करना

एक ही LTS फ़ैमिली के कर्नेल के बीच काम करने की ज़रूरी शर्तें बदल रही हैं. ये बदलाव, GKI के नए कर्नेल से शुरू हो रहे हैं.

GKI कर्नेल

GKI के कर्नेल, उन सभी Android प्लैटफ़ॉर्म रिलीज़ के साथ काम करते हैं जिन पर कर्नेल वर्शन काम करता है. इसके अलावा, Android प्लैटफ़ॉर्म की रिलीज़, पिछली रिलीज़ के GKI कर्नेल के साथ काम करती हैं. इसलिए, Android 15 (2024) पर चलने वाले डिवाइसों पर, Android 14 (2023) के लिए डेवलप किए गए android14-6.1 कर्नेल का इस्तेमाल सुरक्षित तरीके से किया जा सकता है. GKI के साथ काम करने की पुष्टि, GKI के सभी वर्शन के साथ GKI के कर्नेल की लगातार VTS और CTS जांच करके की जाती है.

केएमआई स्थिर है, ताकि वेंडर इमेज में कर्नेल मॉड्यूल के रीबिल्ड की ज़रूरत के बिना, कर्नेल को अपडेट किया जा सके.

अलग-अलग जीकेआई कर्नेल के बीच, केएमआई की सुविधा को बनाए नहीं रखा जाता है. उदाहरण के लिए, उदाहरण के लिए, सभी मॉड्यूल फिर से बनाए बिना, android14-6.1 कर्नेल को android15-6.6 कर्नेल से बदला नहीं जा सकता.

GKI के कर्नेल, सिर्फ़ उनकी शुरुआती और बाद की रिलीज़ के लिए काम करते हैं. ये सेटिंग, पुरानी रिलीज़ के साथ काम नहीं करतीं. इसलिए, Android 14 (2023) पर काम करने वाले डिवाइसों के लिए, android15-6.6 कर्नेल काम नहीं करता.

कंपैटिबिलिटी मैट्रिक

इस टेबल में, Android प्लैटफ़ॉर्म के हर रिलीज़ के साथ काम करने वाले और जिनकी जांच की गई है उन कर्नेल वर्शन के बारे में बताया गया है.

Android प्लैटफ़ॉर्म रिलीज़ अपग्रेड के लिए काम करने वाले कर्नेल लॉन्च के लिए काम करने वाले कर्नेल
Android 15 (2024) android15-6.6
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android15-6.6
android14-6.1
Android 14 (2023) android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
Android 13 (2022) android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
Android 12 (2021) android12-5.10
android12-5.4
android11-5.4
android-4.19-stable
android-4.19-stable
android11-5.4
android12-5.4
android12-5.10
Android 11 (2020) android11-5.4
android-4.19-stable
android11-5.4
android-4.19-stable

लाइफ़टाइम और सुरक्षा पैच के साथ काम करना

ACK को अपस्ट्रीम से LTS मर्ज मिलते हैं. साथ ही, Android के लिए बने कोड की गड़बड़ियां ठीक की जाती हैं. इन सुधारों में, हर महीने के Android Security Bulletins में बताए गए, kernel के लिए सभी सुरक्षा पैच शामिल हैं. ये पैच, ACK के लिए काम के हैं.

kernel.org पर मौजूद अपस्ट्रीम स्टेबल कर्नेल की तुलना में, ACKs का इस्तेमाल ज़्यादा समय तक किया जा सकता है. इस मामले में, Google इस सेक्शन में दिखाई गई, सेवा बंद होने की तारीख (ईओएल) तक सहायता उपलब्ध कराता है. जब कर्नेल की सेवा बंद हो जाती है, तो Google उन्हें इस्तेमाल करना बंद कर देता है. साथ ही, उन पर काम करने वाले डिवाइसों को असुरक्षित माना जाता है.

कर्नेल 6.6 से, स्थिर कर्नेल के लिए सहायता की अवधि चार साल है.

इस टेबल में, काम करने वाले ACK के लाइफ़टाइम की जानकारी दी गई है:

ACK शाखा लॉन्च
की तारीख
सहायता
लाइफ़टाइम
(साल)
ईओएल
android-4.19-stable 2018-10-22 6 2025-01-01
android11-5.4 2019-11-24 6 2026-01-01
android12-5.4 2019-11-24 6 2026-01-01
android12-5.10 2020-12-13 6 2027-07-01
android13-5.10 2020-12-13 6 2027-07-01
android13-5.15 2021-10-31 6 2028-07-01
Android14-5.15 2021-10-31 6 2028-07-01
Android14-6.1 2022-12-11 6 2029-07-01
android15-6.6 2023-10-29 4 2028-07-01

सामान्य कर्नेल टेस्टिंग

वेंडर की ओर से डाउनस्ट्रीम जांच के अलावा, सामान्य कर्नेल की जांच कई सीआई सिस्टम के साथ की जाती है.

Linux Kernel Functional Test

Linux Kernel Functional Test (LKFT), फ़िज़िकल arm32 और arm64 डिवाइसों के सेट पर, kselftest, LTP, VTS, और CTS जैसे अलग-अलग टेस्ट सुइट शुरू करता है. हाल ही के जांच के नतीजे यहां देखे जा सकते हैं.

KernelCI टेस्टिंग

जब भी किसी सामान्य कर्नेल शाखा में नया पैच किया जाता है, तो KernelCI के बिल्ड और बूट टेस्ट शुरू हो जाते हैं. कई बोर्ड पर, कई सौ बिल्ड कॉन्फ़िगरेशन की जांच की जाती है और उन्हें बूट किया जाता है. Android कर्नेल के हाल ही के नतीजे यहां देखे जा सकते हैं.

Android पर, पहले से सबमिट करने और सबमिट करने के बाद की जांच

सबमिट करने से पहले की जाने वाली जांच का इस्तेमाल, Android के सामान्य कर्नेल में गड़बड़ियों को रोकने के लिए किया जाता है. परीक्षण परिणाम सारांश Android सामान्य कर्नेल गेरिट में कोड परिवर्तन के 'जांच' टैब में मिल सकता है.

Android पोस्ट सबमिट टेस्टिंग, Android के सामान्य kernel branch में पब्लिश किए गए नए बिल्ड पर की जाती है. ऐसा तब होता है, जब ci.android.com में Android के सामान्य kernel branch में नए पैच को कमिट किया जाता है. ci.android.com में, aosp_kernel को ब्रैंच के नाम के कुछ हिस्से के तौर पर डालने पर, आपको उन kernel branch की सूची दिखती है जिनके नतीजे उपलब्ध हैं. उदाहरण के लिए, android-mainline के नतीजे यहां देखे जा सकते हैं. किसी खास बिल्ड पर क्लिक करने पर, आपको Test Results टैब में टेस्ट का स्टेटस दिखेगा.

Android प्लैटफ़ॉर्म सोर्स ट्री में, टेस्ट ग्रुप kernel-presubmit के साथ टेस्ट-मैपिंग की मदद से तय किए गए टेस्ट, Android कर्नेल ब्रांच के लिए पहले से सबमिट किए गए टेस्ट के तौर पर चलाए जाएंगे. उदाहरण के लिए, test/vts/tests/kernel_proc_file_api_test/TEST_MAPPING में यह कॉन्फ़िगरेशन, Android के सामान्य कोर कोड के चेक-इन के समय, vts_kernel_proc_file_api_test को सबमिट करने से पहले किए जाने वाले टेस्ट के तौर पर चालू करेगा.

{
  "kernel-presubmit": [
    {
      "name": "vts_kernel_proc_file_api_test"
    }
  ]
}

ज़ीरो-डे टेस्टिंग

0-day टेस्टिंग में, नए पैच को कमिट करने के बाद, Android के सभी सामान्य kernel branch पर पैच-बाय-पैच टेस्टिंग की जाती है. इसके बाद, अलग-अलग तरह के बूट, फ़ंक्शन, और परफ़ॉर्मेंस टेस्ट चलाए जाते हैं. सार्वजनिक ग्रुप cros-kernel-buildreports में शामिल हों

टेस्ट मैट्रिक्स

Android का सामान्य कर्नेल Android प्लैटफ़ॉर्म के रिलीज़ टेस्ट सुइट
मुख्य नेविगेशन 15 14 13 12 11 10 LKFT KernelCI सबमिट करने से पहले सबमिट करने के बाद 0-day
android-mainline
android15-6.6
android14-6.1
android14-5.15
android13-5.15
android13-5.10
android12-5.10
android12-5.4
android11-5.4
android-4.19-stable

Android सामान्य कर्नेल में योगदान दें

आम तौर पर, सुविधा का डेवलपमेंट मुख्य Linux पर किया जाना चाहिए, न कि Android के सामान्य कर्नेल पर. अपस्ट्रीम डेवलपमेंट को पूरी तरह से प्रोत्साहित किया जाता है और वहां डेवलपमेंट स्वीकार किए जाने के बाद, उसे ज़रूरत के मुताबिक खास ACK शाखा में आसानी से बैकपोर्ट किया जा सकता है. Android Kernel टीम को Android नेटवर्क के फ़ायदे के लिए, अपस्ट्रीमिंग में मदद करके खुशी होगी.

Gerrit पर पैच सबमिट करें और योगदान से जुड़े इन दिशा-निर्देशों का पालन करें.