
Android के लिए कस्टम Kali NetHunter कर्नेल बनाने की चरण-दर-चरण मार्गदर्शिका: स्रोत प्राप्ति, टूलचेन चयन, क्रॉस-कंपाइलेशन और फ्लैशिंग।
अधिकांश लोगों के लिए जो Nethunter डिवाइस सेट अप करना चाहते हैं, सबसे बड़ी बाधा कर्नेल की आवश्यकता है। जब तक आपके डिवाइस में पहले से प्रीबिल्ट (और मेंटेन) कर्नेल नहीं है, आपको खुद एक बनाने के लिए कहा जाएगा। इस प्रक्रिया पर पहले से ही बहुत सारे दस्तावेज़ मौजूद हैं, लेकिन मेरे अनुभव में यह जानना मुश्किल हो सकता है कि आपके मामले में क्या लागू होता है और क्या नहीं।
यह समस्या उन गधों लोगों के कारण और बढ़ जाती है जो “किसी भी Android डिवाइस के लिए Nethunter कर्नेल बनाएँ!” जैसे क्लिकबेट शीर्षक वाली गाइड लिखते हैं, या “दस मिनट में Nethunter कर्नेल कंपाइल करना सीखें!” जैसे झूठे वादे करते हैं। यह 2025 के इंटरनेट की एक दुर्भाग्यपूर्ण वास्तविकता भी है कि कई बेवकूफ लोग सोचते हैं कि ChatGPT या अन्य बड़े भाषा मॉडल के पास उनके सवालों के आधिकारिक उत्तर होते हैं, जबकि वास्तव में उन मॉडलों के पास केवल वही जानकारी होती है जो उन्होंने उपरोक्त गधों से स्क्रैप की होती है।
मैं यह गाइड यथासंभव विस्तार से और ईमानदारी से लिख रहा हूँ। हालाँकि, इसका उद्देश्य इस प्रक्रिया के लिए आपको पढ़ने की आवश्यकता वाला एकमात्र दस्तावेज़ होना नहीं है – निश्चित रूप से आपके पास ऐसे प्रश्न होंगे जिनका उत्तर यह दस्तावेज़ नहीं दे सकता। मैं आपको प्रोत्साहित करना चाहूँगा कि इन प्रश्नों के उत्तर प्रासंगिक सॉफ़्टवेयर दस्तावेज़ में खोजें, न कि YouTube पर या ChatGPT से।
इस प्रक्रिया का कोई भी भाग शुरू करने से पहले, आपके पास पहले से ही होना चाहिए:
apt update && apt upgrade -y (वैकल्पिक: मेटापैकेज जोड़े गए हों)इस प्रक्रिया को पूरा करने के लिए, आपको आवश्यकता होगी:
cd, rm, ls, mkdir, find, diff, grep, आदि)vim उन लोगों के लिए जो “कूल” हैं, अन्यथा nano)build-devel, Debian-आधारित पर build-essential) – मैं Perl + Python3 इंस्टॉल करने की भी सलाह दूँगा क्योंकि कुछ कर्नेल makefiles को इनकी आवश्यकता होती हैक्या यह मेरे डिवाइस के लिए संभव होगा?
Linux कर्नेल GNU General Public License 2.0 के तहत लाइसेंस प्राप्त है, जो एक copyleft लाइसेंस है। इसका मतलब है कि Linux कर्नेल का स्रोत कोड स्वतंत्र रूप से वितरित किया जाता है और आप स्रोत कोड में अपनी इच्छानुसार बदलाव कर सकते हैं (जैसा कि हर Android निर्माता ने किया है), हालाँकि, आपके परिणामी स्रोत कोड को भी स्वतंत्र रूप से वितरित किया जाना चाहिए।
बिल्कुल किसी को आश्चर्य नहीं होगा कि GPL-लाइसेंस प्राप्त कोड का उपयोग करने वाले कई विशाल निगम इस लाइसेंस की शर्तों की अवहेलना करते हैं। वे या तो अपना स्रोत कोड वितरित करने से इनकार कर देते हैं या केवल उसका एक हिस्सा जारी करते हैं (आमतौर पर टूटा हुआ, पुराना, और इनलाइन बाइनरी ब्लॉब्स के साथ)। यदि आपके डिवाइस के कर्नेल के लिए कोई स्रोत कोड उपलब्ध नहीं है, तो उसके लिए Nethunter कर्नेल बनाने का कोई तरीका नहीं है।
बूटलोडर अनलॉक करने और कस्टम ROM इंस्टॉल करने की आपकी क्षमता भी काफी हद तक आपके डिवाइस निर्माता की मर्जी पर निर्भर करती है। भले ही वे बूटलोडर अनलॉक करने की अनुमति देते हों और आप अपने फ़ोन को Magisk से रूट करने में सक्षम रहे हों, अगर वे डिवाइस ट्री प्रकाशित नहीं करते हैं, तो संभवतः आपके डिवाइस के लिए कोई कस्टम ROM नहीं हैं। इस स्थिति में, यह अत्यधिक संदिग्ध है कि उनके द्वारा प्रकाशित कर्नेल स्रोत कोड (यदि कोई हो) को रिलीज़ के बाद कोई रखरखाव मिला हो, या कि वह बिना संशोधनों के भी बिल्ड होगा। यदि आप किसी और को आपके डिवाइस के लिए कुछ भी (कर्नेल, ROM, रिकवरी) मेंटेन करते हुए नहीं देखते हैं, तो उस डिवाइस को पूर्ण Nethunter में बदलना आपके लिए कठिन, यदि असंभव नहीं, होगा।
कर्नेल संस्करणों पर एक टिप्पणी
मान लीजिए कि आपके डिवाइस के लिए नियमित रूप से अपडेट और मेंटेन किए जाने वाले कस्टम ROM/कर्नेल/रिकवरी मौजूद हैं, लेकिन Nethunter कर्नेल बिल्कुल नहीं है। इस मामले में, आपको यह प्रक्रिया पूरी करने में सक्षम होना चाहिए, लेकिन आपके डिवाइस द्वारा उपयोग किए जाने वाले Linux कर्नेल के संस्करण के आधार पर प्रक्रिया अलग-अलग होगी।
इस गाइड में दी गई जानकारी 4.14.x कर्नेल को संशोधित करने के मेरे अनुभव पर आधारित है। कुछ पुरानी गाइडें लिखी गई हैं जो GCC टूलचेन के उपयोग के बारे में बात करती हैं (LLVM/clang के बजाय, जिसका हम उपयोग करेंगे) और जो 3.x कर्नेल पर लागू होती हैं। यदि आपका डिवाइस Linux कर्नेल का 5.x/6.x संस्करण उपयोग करता है, तो इस गाइड में दी गई जानकारी इस प्रक्रिया को पूरा करने के लिए पर्याप्त नहीं होगी। Android बिल्ड विधि हर समय बदलती रहती है, और आपको ऐसी गाइड देखनी चाहिए जो GKI कर्नेल और Bazel/Kleaf के उपयोग को कवर करती हो।
अपने डिवाइस के कर्नेल स्रोत वाले रेपो खोजने का एक अच्छा तरीका उसके कोडनेम का उपयोग करना है। हर Android का एक कोडनेम होता है, हालाँकि कुछ निर्माता (जैसे OnePlus) इसे लेकर दूसरों (जैसे Samsung) की तुलना में थोड़ा अधिक मज़ेदार होते हैं। मेरे Xiaomi Poco X3 NFC का कोडनेम "surya" है, जबकि मेरे Samsung A51 का कोडनेम "SM-A515F" है। आम तौर पर, कर्नेल स्रोत रेपो नामकरण परंपरा का पालन करते हैं
android_kernel_MANUFACTURER_CODENAME
जहाँ निर्माता मूल कंपनी होती है, यानी android_kernel_xiaomi_surya, न कि android_kernel_poco_surya।
हालाँकि, आपके डिवाइस के SoC (system-on-a-chip) के आधार पर भी रेपो हो सकते हैं, कभी-कभी उसी SoC वाले अन्य डिवाइसों के स्रोत फ़ाइलों को शामिल करने के लिए उन्हें “unified” किया जाता है। यह उस Samsung के मामले में है जिसका मैंने उल्लेख किया है, जिसका स्रोत रेपो android_kernel_samsung_exynos9611 कहलाता है। github/gitlab पर एक नज़र डालें और देखें कि आपको क्या मिलता है।
इस गाइड के प्रयोजनों के लिए, मैं surya पर नवीनतम LineageOS 22.2 (2025-08-04 को बिल्ड) का उपयोग करूँगा, इसलिए, मैं LineageOS रेपो से कर्नेल स्रोत क्लोन करना चाहूँगा। लेकिन ऐसा करने से पहले, मैं अपने डिवाइस से कर्नेल बनाने के लिए उपयोग किए जाने वाले कंप्यूटर पर दो फ़ाइलें कॉपी करना चाहता हूँ: /proc/config.gz और /proc/version।
मैं पहली फ़ाइल, /proc/config.gz, को /sdcard पर कॉपी कर सकता था, उसे ADB से डिवाइस से पुल कर सकता था, gunzip कर सकता था, और उसका नाम बदल सकता था। लेकिन ऐसा लगता है कि यह बहुत सारे चरण हैं, इसलिए मैंने इसके बजाय यह किया:

फिर, डिवाइस पर ही, मैंने (रूट के रूप में) चलाया