एंड्रॉइड का कस्टम वर्शन स्क्रैच से बनाना एक बहुत बड़ी चुनौती लग सकती है, ऐसा काम जो केवल अनुभवी डेवलपर्स के बस की बात है। हालाँकि, वास्तविकता यह है कि, सही मार्गदर्शन और थोड़े धैर्य के साथ, कोई भी उत्सुक उपयोगकर्ता इस तकनीकी उपलब्धि को हासिल कर सकता है और अपने डिवाइस को अपनी ज़रूरतों के हिसाब से ऑपरेटिंग सिस्टम से लैस कर सकता है।
हम आपको विस्तृत और स्वाभाविक यात्रा पर ले जाएंगे, चरण दर चरण और अत्यधिक तकनीकी शब्दजाल के बिना, आपके कंप्यूटर को तैयार करने और स्रोत कोड डाउनलोड करने से लेकर संकलन, इंस्टॉल करने और अंत में Android के अपने स्वयं के संस्करण को अनुकूलित करने तक। आपको जो कुछ भी जानना है, वह खोज इंजन में रैंक करने वाली सर्वोत्तम जानकारी से प्रेरित और विस्तारित है, यहाँ पाया जा सकता है, स्पष्ट रूप से और उस व्यक्तिगत स्पर्श के साथ समझाया गया है जो Android विकास की दुनिया में गहराई से जाने पर बहुत सराहना की जाती है।
एंड्रॉइड का कस्टम संस्करण क्यों बनाएं?
अपना स्वयं का एंड्रॉयड ROM संकलित करने की प्रेरणाएं बहुत विविध हो सकती हैं।: उस फोन की लाइफ बढ़ाने से लेकर जिसे अब अपडेट नहीं मिलते, सबसे व्यापक रूप से इस्तेमाल किए जाने वाले मोबाइल ऑपरेटिंग सिस्टम के अंदरूनी कामकाज के बारे में नई चीजें सीखने और प्रयोग करने की सरल खुशी तक। साथ ही, Android अनुकूलित करें यह आपको सिस्टम के हर पहलू को नियंत्रित करने की अनुमति देता है, इंटरफ़ेस से लेकर विशिष्ट हार्डवेयर सुविधाओं तक, और उन अनुप्रयोगों या सेवाओं को हटाने की अनुमति देता है जिनकी आपको आवश्यकता नहीं है।
एंड्रॉइड का कस्टम संस्करण बनाने से पहले आपको क्या चाहिए होगा?
- 64-बिट लिनक्स वाला कंप्यूटर (संगतता संबंधी समस्याओं से बचने के लिए उबंटू या डेबियन की सिफारिश की जाती है)
- न्यूनतम 16 जीबी रैम (यदि आप संकलन में हमेशा समय नहीं लगाना चाहते तो यह आवश्यक है)।
- कम से कम 100 जीबी खाली हार्ड डिस्क स्थान (एंड्रॉइड स्रोत कोड वास्तव में भारी है और आपको संकलन के लिए कुछ हेडरूम की आवश्यकता होगी।)
- जावा डेवलपमेंट किट (JDK) आप जिस Android संस्करण को संकलित करना चाहते हैं, उसके लिए विशिष्ट संस्करण में। उदाहरण के लिए, Android 8.0 के लिए Java के विशिष्ट संस्करण की आवश्यकता होती है।
- Git, ccache और Python जैसे आवश्यक उपकरण.
- Android SDK और ADB जैसे प्लेटफ़ॉर्म टूल (एंड्रॉइड डिबग ब्रिज)।
इसलिए, प्रक्रिया में उतरने से पहले आपको अपने परिवेश को अच्छी तरह से तैयार करना होगा। चिंता न करें: इनमें से ज़्यादातर ज़रूरतें सिर्फ़ कुछ कमांड के साथ इंस्टॉल की जाती हैं, और इस गाइड सहित कई ट्यूटोरियल आपको चरण दर चरण उनके ज़रिए मार्गदर्शन करेंगे।
Android का कस्टम संस्करण बनाने के लिए विकास परिवेश तैयार करना
पहला गंभीर कदम यह है कि आप अपने पीसी को युद्ध के लिए तैयार करें।. उबंटू (या अपने पसंदीदा डेबियन-आधारित डिस्ट्रो) को स्थापित करें, इसे अपडेट करें, और सुनिश्चित करें कि आपके पास बुनियादी पैकेज अपडेट हैं।यहां उन आवश्यक कमांडों की सूची दी गई है जिन्हें आप टर्मिनल में चला सकते हैं:
- sudo apt update && sudo apt उन्नयन
- सुडो एप्ट इंस्टॉल गिट-कोर gnupg फ्लेक्स बाइसन बिल्ड-एसेंशियल ज़िप कर्ल zlib1g-dev
- सुडो एप्ट इंस्टॉल gcc-multilib g++-multilib libc6-dev-i386
- sudo apt install openjdk-8-jdk python3 git ccache
- sudo apt install libncurses5 libncurses5-dev libssl-dev libxml2-utils xsltproc अनज़िप फ़ॉन्टकॉन्फ़िग
याद रखें कि आप जिस एंड्रॉयड संस्करण को संकलित करने जा रहे हैं, उसके अनुसार जावा संस्करण को अनुकूलित करें।सभी एंड्रॉयड JDK के एक ही संस्करण का उपयोग नहीं करते हैं, इसलिए यदि आपके कोई प्रश्न हों तो कृपया आधिकारिक AOSP (एंड्रॉयड ओपन सोर्स प्रोजेक्ट) दस्तावेज़ देखें।
एंड्रॉइड स्रोत कोड डाउनलोड करें: यह कहां और कैसे करें
एंड्रॉयड स्रोत कोड काफी बड़ा है और इसे डाउनलोड करना एक साधारण गिट क्लोन जितना आसान नहीं है।एक विशिष्ट उपकरण का उपयोग किया जाता है: रेपो, जिसे गूगल द्वारा कई उप-परियोजनाओं वाले बड़े रिपॉजिटरी का प्रबंधन करने के लिए डिज़ाइन किया गया है।
सबसे पहले, स्थापित करें रेपो:
- एमकेडीआईआर ~/बिन
- पथ=~/बिन:$पथ
- कर्ल https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
- chmod a+x ~/bin/repo
इसके बाद, अपने स्रोत कोड के लिए एक फ़ोल्डर बनाएं और उसमें जाएँ:
- mkdir ~/android-source && cd ~/android-source
वहां से, उस शाखा के साथ रिपॉजिटरी को आरंभ करें जिसमें आपकी रुचि है (उदाहरण के लिए, एंड्रॉइड संस्करण 13 के लिए):
- रेपो init -u https://android.googlesource.com/platform/manifest -b android-13.0.0_r1
- रेपो सिंक
समन्वयन प्रक्रिया में घंटों लग सकते हैं, आपके कनेक्शन पर निर्भर करता है। यदि प्रक्रिया विफल हो जाती है, तो प्रक्रिया को दोहराएं रेपो सिंक जब तक यह सही तरीके से खत्म न हो जाए। हमेशा धैर्य रखें; इसमें थोड़ा समय लगना पूरी तरह से सामान्य है!
AOSP क्या है और यह अपना स्वयं का ROM बनाने के लिए क्यों महत्वपूर्ण है?
AOSP (एंड्रॉइड ओपन सोर्स प्रोजेक्ट) एंड्रॉइड का दिल है, वह नींव जिस पर निर्माता और डेवलपर्स काम करते हैं। कस्टम ROM संकलित करने का मतलब है इस कोड को लेना, इसे अपने डिवाइस के अनुकूल बनाना, और अपनी इच्छानुसार सुविधाएँ जोड़ना (या हटाना)। जब तक आप उन्हें अलग से फ्लैश नहीं करते, तब तक आपको Google की स्वामित्व वाली सेवाओं तक पहुँच नहीं मिलेगी, लेकिन यह आपको सिस्टम पर पूरा नियंत्रण देता है।
बिल्ड वातावरण को कॉन्फ़िगर करना
यहाँ मुख्य स्क्रिप्ट envsetup.sh है। यह स्क्रिप्ट संकलन के लिए आवश्यक सभी चर सेट करती हैस्रोत कोड रूट निर्देशिका से, टर्मिनल में चलाएँ:
- स्रोत build/envsetup.sh
यह कदम आवश्यक है और ऐसा आपको हर बार करना चाहिए जब आप कोड के साथ काम करने के लिए नया टर्मिनल खोलें।यदि आप इसे भूल जाते हैं, तो आपको ऐसी त्रुटियों का सामना करना पड़ेगा जिनका निदान करना कठिन हो सकता है।
लक्ष्य डिवाइस का चयन: सभी फोन एक जैसे नहीं होते!
अगला चरण वह विशिष्ट डिवाइस चुनना है जिसके लिए आप संकलन करेंगे।. यह कमांड के साथ किया जाता है लंच, जो उत्पाद, वैरिएंट और बिल्ड कॉन्फ़िगरेशन को परिभाषित करता है। उदाहरण के लिए, x86_64 आर्किटेक्चर वाले एमुलेटर के लिए:
- दोपहर का भोजन aosp_x86_64-eng
यदि आप किसी वास्तविक डिवाइस के लिए निर्माण कर रहे हैं, तो आपको सटीक उत्पाद नाम चुनना होगा। कई निर्माता आंतरिक नामों का उपयोग करते हैं (उदाहरण के लिए, मोटो जी6 प्लस के लिए 'एवर्ट')। डेवलपर पेज और विशिष्ट फ़ोरम पर लिस्टिंग हैं।
संकलन वेरिएंट को समझना: उपयोगकर्ता, यूजरडिबग, और इंजी
- उपयोगकर्ता: अंतिम-उपयोगकर्ता-उन्मुख निर्माण, कोई रूट पहुँच या विकास उपकरण नहीं।
- userdebugडेवलपर्स के लिए डिज़ाइन किया गया, इसमें डिबगिंग टूल शामिल हैं लेकिन यह उपयोगकर्ता इंटरफ़ेस के लगभग समान है।
- engआंतरिक डेवलपर्स के लिए, कम अनुकूलित लेकिन तेजी से और उन्नत विकल्पों के साथ संकलित होता है।
जो लोग अभी शुरुआत कर रहे हैं, userdebug सबसे लचीला और सुविधाजनक विकल्प हैरूट कंसोल और डिबगिंग टूल तक पहुंच की अनुमति देता है, जिससे परीक्षण और डिबगिंग बहुत आसान हो जाता है।
मालिकाना ब्लॉब्स स्थापित करना: वे क्या हैं और मुझे उनकी आवश्यकता क्यों है?
कैमरा, वाई-फाई या ऑडियो जैसे कार्यों के लिए एंड्रॉइड डिवाइस को अक्सर मालिकाना फ़ाइलों (ब्लॉब्स) की आवश्यकता होती है। ऐसा इसलिए है क्योंकि कई निर्माता इन घटकों के लिए स्रोत कोड जारी नहीं करते हैं। इन ब्लॉब्स के बिना, आपका ROM काम करेगा, लेकिन हार्डवेयर के कुछ हिस्सों तक पहुँच के बिना।
आम तौर पर, ये ब्लॉब्स आधिकारिक ROM से निकाले जाते हैं। कई डिवाइस के लिए, TheMuppets (GitHub पर) जैसे प्रोजेक्ट हैं जहाँ आप उन्हें अपने मॉडल के लिए डाउनलोड कर सकते हैं। उदाहरण के लिए, मोटोरोला मोटो G6 प्लस के लिए:
- git क्लोन https://github.com/TheMuppets/proprietary_vendor_motorola_evert विक्रेता/motorola/evert
संकलन के दौरान पता लगाने के लिए ये फ़ाइलें AOSP संरचना के भीतर उचित पथ में होनी चाहिए।
अपने डिवाइस के लिए वातावरण आरंभ करना
ब्लॉब्स के स्थापित हो जाने के बाद, अब विशिष्ट मोबाइल के लिए बिल्ड वातावरण को कॉन्फ़िगर करने का समय आ गया हैयदि आपके डिवाइस का नाम 'evert' है, उदाहरण के लिए:
- स्रोत build/envsetup.sh
- लंच lineage_evert-userdebug
यह सभी आवश्यक कॉन्फ़िगरेशन लोड करता है, यह सुनिश्चित करता है कि बिल्ड स्क्रिप्ट सामान्य एंड्रॉइड स्रोत कोड और आपके डिवाइस के लिए विशिष्ट फ़ाइलें दोनों को ढूंढ ले।
संकलन समय को अनुकूलित कैसे करें?
एंड्रॉइड को संकलित करना एक ऐसी प्रक्रिया है जो धीमी हो सकती है, खासकर पहली बारइसे अनुकूलित करने के लिए, इसका उपयोग करने की अनुशंसा की जाती है सीसीएचे, एक उपकरण जो मध्यवर्ती संकलन फ़ाइलों को संग्रहीत करता है ताकि आपको हर बार सब कुछ पुनः संकलित न करना पड़े।
- निर्यात USE_CCACHE=1
- सीकैश -एम 100जी
यह बिल्ड कैश के लिए 100GB आरक्षित रखता है, जो छोटे-छोटे परिवर्तन करने पर सिस्टम पुनर्निर्माण को काफी तेज कर सकता है।
आइये संकलित करें! सत्य का क्षण
सबसे प्रतीक्षित चरण यहां है: अपना स्वयं का एंड्रॉइड ROM संकलित करना।स्रोत कोड के मूल में टर्मिनल खोलें और चलाएँ:
- -j$(nproc) otapackage बनाएं
आपके प्रोसेसर की शक्ति और उपलब्ध RAM की मात्रा के आधार पर इस प्रक्रिया में कई घंटे लग सकते हैं।निराश मत होइए! पंखे से धुआँ निकलना और कंप्यूटर का लंबे समय तक 100% पर चलना सामान्य बात है। अंततः, यह रिकवरी (TWRP या इसी तरह) के माध्यम से इंस्टॉल करने के लिए तैयार ROM के साथ एक .zip फ़ाइल तैयार करेगा।
अंतिम परिणाम फ़ोल्डर में होगा बाहर/लक्ष्य/उत्पाद/ /
वैकल्पिक उपकरण जो आपके जीवन को आसान बना सकते हैं: स्क्रिबेट और कंपनी
जो लोग समय बचाना चाहते हैं और नौसिखिए गलतियों से बचना चाहते हैं, उनके लिए ScriBt जैसी सुविधाएं उपलब्ध हैं, जो रिपॉजिटरी सिंक्रोनाइजेशन से लेकर ब्लॉब डाउनलोड और डिपेंडेंसी इंस्टॉलेशन तक सब कुछ स्वचालित करता है। ये उपकरण आपके जीवन को बहुत सरल बना सकते हैं और उन लोगों के लिए आदर्श हैं जो अक्सर संकलन करते हैं या कई डिवाइस प्रबंधित करते हैं।
हालाँकि, स्वचालित स्क्रिप्ट पर आँख मूंदकर भरोसा करने से पहले मैन्युअल प्रक्रिया को समझना हमेशा उचित होता है।क्योंकि इस तरह से आप समस्याओं को हल करना सीखेंगे और समझेंगे कि प्रत्येक चरण पर क्या होता है।
अगर मैं और आगे जाना चाहूँ तो क्या होगा? विशिष्ट हार्डवेयर और थ्रेड राउटर के लिए संकलन
एंड्रॉयड पारिस्थितिकी तंत्र मोबाइल फोन तक ही सीमित नहीं है। आप थ्रेड समर्थन वाले राउटर जैसे विशेष उपकरणों के लिए भी एंड्रॉइड को संकलित कर सकते हैं।इन उपकरणों के लिए कस्टम HAL सेट अप करना, थ्रेड नेटवर्क चिप स्रोत कोड को अनुकूलित करना और कटलफिश जैसे एमुलेटर पर परीक्षण करना, जैसे उपकरणों का उपयोग करना आवश्यक है। ओटी-सीएलआई-एफटीडी y ओटी-सीटीएल.
यह प्रक्रिया अधिक उन्नत है और इसमें आम तौर पर XML फ़ाइलों, स्टार्टअप स्क्रिप्ट और अनुमतियों में संशोधन, साथ ही रेडियो-विशिष्ट APEX मॉड्यूल संकलित करना शामिल है। इसके लिए अनुभव की आवश्यकता होती है, लेकिन आधिकारिक दस्तावेज़ों का पालन करके यह पूरी तरह से संभव है।
आपके कस्टम ROM का परीक्षण और प्रमाणन
जब संकलन पूरा हो जाए तो परीक्षण का समय आता है।आपके कस्टम सिस्टम की स्थिरता और सुचारू संचालन सुनिश्चित करने के लिए, मानक उपकरणों का एक सेट है:
- वीटीएस (विक्रेता परीक्षण सूट): एचएएल संगतता और संचालन को सत्यापित करता है।
- सीटीएस (संगतता परीक्षण सूट): यह सुनिश्चित करता है कि APIs Android मानकों के अनुसार कार्य करें।
- एकीकरण जांचवे सम्पूर्ण प्रणाली का मूल्यांकन करते हैं तथा यह सुनिश्चित करते हैं कि विभिन्न घटकों में कोई टकराव न हो।
इसके अतिरिक्त, आप इस तरह के अनुप्रयोगों का उपयोग कर सकते हैं थ्रेडनेटवर्कडेमोऐप यदि आपने राउटर या IoT डिवाइस के लिए सिस्टम बनाया है तो दृश्य परीक्षण के लिए।
अनुकूलन: बुनियादी निर्माण से परे
निर्माण तो केवल पहला कदम है; एंड्रॉयड का कस्टम संस्करण बनाना ही सारा अंतर पैदा कर देता है।आप यूजर इंटरफ़ेस बदल सकते हैं, अनावश्यक ऐप्स हटा सकते हैं, या विशिष्ट मॉड जोड़ सकते हैं। यदि आपके पास प्रोग्रामिंग का ज्ञान है, तो आप सीधे कोड को संपादित कर सकते हैं या बेस सिस्टम में अपने खुद के ऐप्स जोड़ सकते हैं।
कई उपयोगकर्ता LineageOS जैसी लोकप्रिय परियोजनाओं को चुनते हैं, क्योंकि उनके पास एक विशाल समुदाय और अनुकूलन के लिए कई अतिरिक्त उपकरण हैं। पहिये को पुनः आविष्कृत करने की कोई आवश्यकता नहीं है: जब भी संभव हो, सामुदायिक योगदान का लाभ उठाएं।.
शुरुआती डेवलपर्स के लिए अतिरिक्त सुझाव
यदि आपकी प्रेरणा पेशेवर रूप से इस क्षेत्र में प्रवेश करना है Android विकाससंकलन में महारत हासिल करना और कस्टम Android संस्करण बनाना एक अत्यधिक मूल्यवान कौशल है। हम अनुशंसा करते हैं:
- दृश्यता और सर्वोत्तम अभ्यास प्राप्त करने के लिए अपने विकास और संशोधनों को GitHub जैसे प्लेटफ़ॉर्म पर अपलोड करें।
- अपने आप को प्रशिक्षित करें Kotlin और एंड्रॉइड स्टूडियो: ऐप्स बनाने और एंड्रॉइड सिस्टम को संशोधित करने के लिए आधिकारिक भाषा और वातावरण।
- पूर्ण ROM को संशोधित करने से पहले सरल ऐप्स के साथ प्रयोग करें।
- धैर्य रखें: संकलन और अनुकूलन करना सीखने से आपके लिए कई दरवाजे खुलेंगे, लेकिन इसमें समय लगता है!
अक्सर पूछे जाने वाले प्रश्न और सामान्य समस्याएं
- यदि निर्माण किसी अज्ञात त्रुटि के कारण विफल हो जाए तो मैं क्या करूँ? सभी चरणों की समीक्षा करें, जांचें कि क्या आपके पास पर्याप्त स्थान और मेमोरी है, और विस्तृत सिस्टम लॉग देखें।
- अगर मेरा फोन खराब हो जाए तो क्या मैं वापस जा सकता हूं? हां, अधिकांश मामलों में कस्टम रिकवरी के साथ आप मूल ROM को पुनः स्थापित कर सकते हैं।
- क्या इसमें गूगल सेवाएं शामिल करना संभव है? वे AOSP में डिफ़ॉल्ट रूप से शामिल नहीं हैं। उन्हें बाद में फ्लैश किया जा सकता है (Google Apps या "GApps"), लेकिन कुछ डिवाइस पर, सब कुछ पूरी तरह से काम नहीं कर सकता है।
- क्या स्वामित्व घटकों को हटाने से मुझे गोपनीयता प्राप्त होगी? हां, हालांकि आप कुछ कार्यक्षमता खो देंगे जो Google सेवाओं या निर्माताओं पर निर्भर करती है।
- क्या यह निर्माण किसी भी डिवाइस के लिए काम करता है? नहीं। आपको यह सुनिश्चित करना होगा कि आपके मॉडल (डिवाइस ट्री, ब्लॉब्स, कर्नेल और अन्य फ़ाइलें) के लिए समर्थन मौजूद है।
कस्टम एंड्रॉइड ROM बनाने में गोता लगाना एक रचनात्मक और, बिना किसी संदेह के, रोमांचक साहसिक कार्य है। वातावरण तैयार करने से लेकर, कोड को डाउनलोड करने और सिंक्रोनाइज़ करने से लेकर, प्रत्येक डिवाइस के लिए विशिष्ट कॉन्फ़िगरेशन और लंबे संकलन तक, यह प्रक्रिया मांग करने वाली है लेकिन बहुत फायदेमंद भी है। यह आपको अपने फोन या डिवाइस की पूरी क्षमता को उजागर करने की अनुमति देता है, इसे अपनी ज़रूरतों के हिसाब से ढालता है।
सीकैश, स्क्रिबाइट जैसे उपकरणों और सामुदायिक सहायता के साथ-साथ थोड़ी सी लगन और निरंतर सीखने से कोई भी उत्साही व्यक्ति आश्चर्यजनक परिणाम प्राप्त कर सकता है और अपने एंड्रॉयड अनुभव को अगले स्तर तक ले जा सकता है। इस गाइड को साझा करें और अन्य उपयोगकर्ताओं को Android का कस्टम संस्करण बनाने का तरीका सीखने में सहायता करें..