यदि आप अपने एंड्रॉइड फोन को रूट करने या कस्टम रोम डाउनलोड करने से परिचित हैं, जैसे कि अत्यधिक लोकप्रिय साइनोजनमोड या इसके उत्तराधिकारी वंश ओएस, तो आपने सोचा होगा - लोग इन रोम को कैसे बनाते हैं? एक अनुकूलित ROM को विकसित करने में वास्तव में कितना काम लगता है?
यह मार्गदर्शिका आपको अपना स्वयं का कस्टम Android ROM विकसित करने की मूल बातें बताएगी। यह ध्यान दिया जाना चाहिए कि यह एक बड़ा उपक्रम है - यदि आपके पास लिनक्स टर्मिनलों में कोडिंग या बेवकूफ बनाने में शून्य अनुभव है, तो आप इस गहरे अंत में गोता लगाने से पहले अपने बेल्ट के नीचे कुछ ज्ञान प्राप्त करना चाहेंगे। लेकिन अगर आपके पास उन चीजों के बारे में कम से कम एक बुनियादी विचार है, तो मैं चीजों को यथासंभव सरलता से समझाने की कोशिश करूंगा, ताकि आप इसका अनुसरण कर सकें।
मूल रूप से हम जो कर रहे हैं वह कच्चा . डाउनलोड कर रहा है Android स्रोत कोड (AOSP) और इसे अपनी पसंद के अनुसार संशोधित करना। चूंकि विभिन्न उपकरणों के लिए चुनने के लिए बहुत सारे स्रोत हैं, इसलिए यह मार्गदर्शिका केवल मास्टर का संदर्भ देगी। स्रोत एओएसपी (एंड्रॉइड ओपन सोर्स प्रोजेक्ट) के रूप में जाना जाता है।
अब एओएसपी के बारे में बात यह है कि शुद्ध स्रोत कोड शामिल नहीं है डिवाइस-विशिष्ट हार्डवेयर स्वामित्व। आम आदमी के शब्दों में, एओएसपी के साथ विकसित होने पर आपके कैमरे और जीपीयू जैसे हार्डवेयर "बॉक्स से बाहर" काम नहीं करेंगे। वास्तव में, आपका उपकरण इन हार्डवेयर बायनेरिज़ के बिना बूट भी नहीं होगा।
यदि आप Google-ब्रांडेड फ़ोन (Pixel, Nexus, आदि) के लिए विकास कर रहे हैं, तो आप सीधे Google से हार्डवेयर बायनेरिज़ पा सकते हैं, और यह मार्गदर्शिका आपको उन्हें अपने ROM में प्राप्त करने और बनाने के बारे में बताएगी। हालांकि, अगर आप एक ब्रांड-नाम वाले फोन (सोनी, सैमसंग, आदि) के लिए एक रोम विकसित कर रहे हैं ... ठीक है, अपने दिल को आशीर्वाद दें, क्योंकि आप एक सवारी के लिए हैं।
कुछ निर्माताओं के पास अपने स्वयं के ओपन-सोर्स प्रोजेक्ट हैं या डेवलपर्स के लिए विकास उपकरण जारी करते हैं, जबकि अन्य निर्माता अपने मालिकाना कोड पर एक तंग ढक्कन रखते हैं। यहां अधिक लोकप्रिय निर्माताओं से ओपन-सोर्स प्रोजेक्ट्स की एक संक्षिप्त सूची दी गई है:
सैमसंग ओपन सोर्स रिलीज सेंटर
सोनी डेवलपर वर्ल्ड
लेनोवो सपोर्ट
हुआवेई ओपन सोर्स रिलीज सेंटर
मोटोरोला डेवलपर्स
उस रास्ते से बाहर, आइए इस धारणा के तहत जारी रखें कि हम Google पिक्सेल डिवाइस के लिए सबसे बुनियादी, वेनिला एंड्रॉइड अनुभव के लिए एक रोम बना रहे हैं। अपने बेल्ट के तहत इस ज्ञान के साथ, आप अपने दम पर शाखा लगाने में सक्षम होंगे और विशिष्ट निर्माता के रोम के अनुकूलित संस्करण विकसित करना शुरू कर देंगे।
इस मार्गदर्शिका के लिए आवश्यकताएँ:
- एंड्रॉयड ओपन सोर्स प्रोजेक्ट
- Pixel XL फ़ोन या Linux के लिए एक Android एमुलेटर
- 64-बिट लिनक्स ऑपरेटिंग सिस्टम - उबंटू या लिनक्स मिंट सबसे नौसिखिया-अनुकूल डिस्ट्रो हैं, जबकि BBQLinux को विशेष रूप से Android डेवलपर्स को ध्यान में रखकर विकसित किया गया था।
- पायथन
- एक अच्छा कंप्यूटर (संकलन कोड बहुत मेमोरी और स्थान लेता है!)
अपना निर्माण परिवेश सेट करना
आइए अपने लिनक्स मशीन पर एंड्रॉइड एमुलेटर सेट करके शुरू करें। आपके पास Google Pixel XL डिवाइस है या नहीं, अपने नए ROM को Android एमुलेटर पर इससे पहले आज़माना हमेशा सबसे सुरक्षित होता है इसे अपने डिवाइस पर फ्लैश करना। मेरा निजी पसंदीदा Genymotion है, इसलिए मैं आपको उस विशेष एमुलेटर को स्थापित करने के बारे में बताऊंगा। हालाँकि, आप इस गाइड "सर्वश्रेष्ठ एंड्रॉइड एमुलेटर" को भी देख सकते हैं, क्योंकि उनमें से अधिकांश में लिनक्स संगतता भी है।
Genymotion वेबसाइट पर जाएं, एक खाता पंजीकृत करें, इसे ईमेल के माध्यम से सत्यापित करें, और निष्पादन योग्य को अपने Linux डेस्कटॉप पर डाउनलोड करें।
अब एक Linux टर्मिनल खोलें, और टाइप करें:
Chmod +x genymotion-xxxxx.bin (xxxx को फ़ाइल नाम में संस्करण संख्या से बदलें)
./genymotion-xxxxxx.bin
Y Press दबाएं Genymotion निर्देशिका बनाने के लिए। अब टर्मिनल में टाइप करें:
cd genymotion &&./genymotion
अब यह आपको इंस्टॉलेशन प्रक्रिया शुरू करने के लिए कहेगा, इसलिए बस नेक्स्ट पर क्लिक करते रहें जब तक कि आप ऐड वर्चुअल डिवाइसेज विंडो पर नहीं पहुंच जाते। डिवाइस मॉडल विकल्प के तहत "पिक्सेल एक्सएल" चुनें, और फिर इंस्टॉलेशन पूरा करें। आप चाहें तो वर्चुअल डिवाइस का परीक्षण कर सकते हैं, यह मूल रूप से आपके डेस्कटॉप पर Pixel XL फोन रखने जैसा होगा।
आइए अब पायथन सेट करें:
$ उपयुक्त-पायथन स्थापित करें
अब हमें आपके Linux मशीन पर Java Development Kit को सेटअप करने की आवश्यकता है। Linux टर्मिनल खोलें और निम्न कमांड टाइप करें:
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
अब आपको यूएसबी डिवाइस एक्सेस की अनुमति देने के लिए लिनक्स सिस्टम को कॉन्फ़िगर करने की आवश्यकता होगी। Linux टर्मिनल में निम्न कोड चलाएँ:
यह आवश्यक 51-android.txt फ़ाइल डाउनलोड करेगा जो उपरोक्त USB डिवाइस को एक्सेस करने की अनुमति देता है। .txt फ़ाइल खोलें और अपना Linux उपयोगकर्ता नाम शामिल करने के लिए इसे संशोधित करें, फिर .txt फ़ाइल को निम्न स्थान पर रखें:(रूट उपयोगकर्ता के रूप में ) नए नियम अपने आप प्रभावी होने के लिए अब अपने डिवाइस को USB के माध्यम से अपने कंप्यूटर में प्लग करें।
Android स्रोत डाउनलोड करना
AOSP को Git पर होस्ट किया गया है, इसलिए हम Git के साथ संचार करने के लिए Repo नामक टूल का उपयोग करने जा रहे हैं।
सबसे पहले हमें आपके होम डायरेक्टरी में एक /bin फोल्डर सेटअप करना होगा। Linux टर्मिनल में निम्न कमांड टाइप करें:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
अब हम रेपो टूल डाउनलोड करेंगे, इसलिए लिनक्स टर्मिनल में टाइप करें:
$ कर्ल https://storage.googleapis.com/git-repo-downloads/repo> ~/bin/repo
$ chmod a+x ~/bin/repo
रेपो स्थापित होने के बाद, हमें अब आपकी कार्य फ़ाइलों को रखने के लिए एक खाली निर्देशिका बनानी होगी। तो इसे Linux टर्मिनल में टाइप करें:
$ mkdir WORKING_DIRECTORY
$ सीडी WORKING_DIRECTORY
अब हम आपके नाम और ईमेल पते के साथ Git को कॉन्फ़िगर करेंगे - उस Gmail पते का उपयोग करें जिसे आप नियमित रूप से जांचते हैं , अन्यथा आप गेरिट कोड-समीक्षा टूल का उपयोग नहीं कर पाएंगे।
$ git config –global user.name “Your Name”
$ git config –global user.email [email protected]
अब हम रेपो को Git से AOSP के नवीनतम मास्टर मेनिफेस्ट को खींचने के लिए कहेंगे:
$ रेपो इनिट -यू https://android.googlesource.com/platform/manifest
यदि सफलतापूर्वक किया जाता है, तो आपको एक संदेश प्राप्त होगा कि रेपो को आपकी कार्यशील निर्देशिका में प्रारंभ किया गया है। आपको ".repo" . भी मिलेगा क्लाइंट निर्देशिका के अंदर निर्देशिका। तो अब हम इसके साथ Android स्रोत ट्री डाउनलोड करेंगे:
$ रेपो सिंक
Android स्रोत बनाना
यह वह जगह है जहाँ इस गाइड की शुरुआत में उल्लिखित हार्डवेयर बायनेरिज़ काम में आते हैं। आइए AOSP ड्राइवर पेज पर जाएं और Android 7.1.0 (NDE63P) के लिए Pixel XL बायनेरिज़ डाउनलोड करें। आप विक्रेता छवि और हार्डवेयर घटकों दोनों को डाउनलोड करना चाहते हैं। ये कंप्रेस्ड आर्काइव्स के रूप में आते हैं, इसलिए इन्हें अपने डेस्कटॉप पर एक्सट्रेक्ट करें और रूट फोल्डर से सेल्फ एक्सट्रैक्टिंग स्क्रिप्ट को रन करें। बायनेरिज़ को हमारे द्वारा पहले बनाए गए WORKING_DIRECTORY के मूल में स्थापित करना चुनें।
अब अपने Linux टर्मिनल में टाइप करें:
$ क्लॉबर बनाओ
$ स्रोत बिल्ड/envsetup.sh
अब हम निर्माण के लिए लक्ष्य चुनेंगे, इसलिए टाइप करें:
$ लंच aosp_marlin-userdebug
$ setpaths
$ make –j4
वहां, हमने अब स्रोत से एक Android ROM "बनाया" है। तो चलिए टर्मिनल में टाइप करके एमुलेटर में इसका परीक्षण करते हैं:
$ एमुलेटर
तो एमुलेटर में थोड़ा सा खेलें। जैसा कि आप देख सकते हैं, एक विशुद्ध रूप से वेनिला एंड्रॉइड अनुभव काफी कम है, और यही कारण है कि निर्माता एओएसपी को अपनी आवश्यकताओं के अनुसार अनुकूलित करते हैं। तो आप कर सकते थे यदि आप चाहें तो इस ROM को फ्लैश करें जिसे हमने अभी आपके डिवाइस में बनाया है, लेकिन बिना किसी एन्हांसमेंट को जोड़े, विशुद्ध रूप से वैनिला एंड्रॉइड अनुभव वास्तव में एक बहुत ही उबाऊ चीज होगी।
तो निर्माता आमतौर पर एओएसपी के साथ क्या करेंगे, यह फोर्क है, अपनी खुद की मालिकाना बाइनरी जोड़ें, यूआई को अनुकूलित करें, बूट लोगो जोड़ें, आदि। निर्माता मूल रूप से स्टॉक एंड्रॉइड रोम पर पेंट करते हैं, और इसलिए यह आपका अगला लक्ष्य भी होगा ।
देखते रहें, क्योंकि इस गाइड के दूसरे भाग में आपके ROM में फोंट, थीम और एक बूट एनिमेशन को जोड़ा जाएगा!