AOSP डेवलपमेंट (9.0 या इसके बाद के वर्शन) के लिए सेट अप करना

Android सोर्स कोड के Android के सबसे नए रिलीज़ ब्रांच (android17-release) को डाउनलोड और बिल्ड करने से पहले, पक्का करें कि आपका हार्डवेयर ज़रूरी शर्तों को पूरा करता हो और ज़रूरी सॉफ़्टवेयर सही तरीके से इंस्टॉल किया गया हो. आपको इन शब्दों के बारे में भी पता होना चाहिए:

Git
Git, वर्शन कंट्रोल करने का एक डिस्ट्रिब्यूटेड सिस्टम है. यह मुफ़्त है और इसका सोर्स कोड भी उपलब्ध है. Android, Git का इस्तेमाल स्थानीय कार्रवाइयों के लिए करता है. जैसे, ब्रांचिंग, कमिट, डिफ़, और बदलाव करना. Git के बारे में जानने के लिए, Git का दस्तावेज़ देखें.
Repo
Repo, Git के लिए Python रैपर है. इसकी मदद से, कई Git रिपॉज़िटरी में जटिल कार्रवाइयां आसानी से की जा सकती हैं. Repo, वर्शन कंट्रोल से जुड़ी सभी कार्रवाइयों के लिए Git की जगह नहीं लेता. यह सिर्फ़ Git की जटिल कार्रवाइयों को आसान बनाता है. Repo, मेनिफ़ेस्ट फ़ाइलों का इस्तेमाल करके, Git प्रोजेक्ट को Android के सुपरप्रोजेक्ट में इकट्ठा करता है.
मेनिफ़ेस्ट फ़ाइल
मेनिफ़ेस्ट फ़ाइल, एक एक्सएमएल फ़ाइल होती है. इसमें यह जानकारी होती है कि Android सोर्स में मौजूद अलग-अलग Git प्रोजेक्ट, AOSP सोर्स ट्री में कहां रखे गए हैं.

हार्डवेयर की ज़रूरी शर्तें पूरी करना

डेवलपमेंट वर्कस्टेशन को हार्डवेयर की इन ज़रूरी शर्तों को पूरा करना चाहिए या इनसे बेहतर होना चाहिए:

  • 64-बिट x86 सिस्टम.

  • कोड की जांच करने और उसे बिल्ड करने के लिए, डिस्क में कम से कम 400 जीबी जगह खाली होनी चाहिए. इसमें, कोड की जांच करने के लिए 250 जीबी और उसे बिल्ड करने के लिए 150 जीबी जगह शामिल है.

  • कम से कम 64 जीबी रैम. Google, Android को बिल्ड करने के लिए 72 कोर वाली मशीनों का इस्तेमाल करता है. इनमें 64 जीबी रैम होती है. हार्डवेयर के इस कॉन्फ़िगरेशन के साथ, Android को पूरी तरह बिल्ड करने में करीब 40 मिनट लगते हैं. वहीं, Android को इंक्रीमेंटल तरीके से बिल्ड करने में कुछ ही मिनट लगते हैं. इसके उलट, 6 कोर वाली मशीन में 64 जीबी रैम होने पर, पूरी तरह बिल्ड करने में करीब छह घंटे लगते हैं.

ऑपरेटिंग सिस्टम की ज़रूरी शर्तें पूरी करना

डेवलपमेंट वर्कस्टेशन पर, 64-बिट Linux डिस्ट्रिब्यूशन का कोई भी वर्शन होना चाहिए. साथ ही, इसमें GNU C Library (glibc) 2.17 या इसके बाद का वर्शन होना चाहिए.

ज़रूरी पैकेज इंस्टॉल करना

Android 11 या इसके बाद के वर्शन को बिल्ड करने के लिए, Ubuntu 18.04 या इसके बाद के वर्शन का इस्तेमाल करना ज़रूरी है. Ubuntu 18.04 या इसके बाद के वर्शन के लिए ज़रूरी पैकेज इंस्टॉल करने के लिए, यह कमांड चलाएं:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

इंस्टॉल किए गए पैकेज में, यह कमांड Git को इंस्टॉल करता है. इसका इस्तेमाल, AOSP सोर्स को डाउनलोड करने के लिए किया जाता है.

ज़रूरी सॉफ़्टवेयर इंस्टॉल करना

AOSP के साथ काम करने के लिए, OpenJDK, Make, Python 3, और Repo इंस्टॉल करना ज़रूरी है. Android के सबसे नए रिलीज़ ब्रांच में, OpenJDK, Make, और Python 3 के पहले से बिल्ड किए गए वर्शन शामिल होते हैं. इसलिए, इन्हें इंस्टॉल करने के लिए अतिरिक्त चरणों की ज़रूरत नहीं होती. Repo को इंस्टॉल करने का तरीका यहां बताया गया है.

Repo इंस्टॉल करना

Repo इंस्टॉल करने के लिए, यह तरीका अपनाएं:

  1. मौजूदा पैकेज की जानकारी डाउनलोड करें:

    sudo apt-get update
  2. Repo लॉन्चर इंस्टॉल करने के लिए, यह कमांड चलाएं:

    sudo apt-get install repo

    Repo लॉन्चर, एक Python स्क्रिप्ट उपलब्ध कराता है. यह स्क्रिप्ट, चेकआउट को शुरू करती है और Repo टूल को पूरी तरह डाउनलोड करती है.

    अगर यह स्क्रिप्ट सही तरीके से काम करती है, तो सीधे चौथे चरण पर जाएं.

  3. (ज़रूरी नहीं) Repo को मैन्युअल तरीके से इंस्टॉल करने के लिए, कमांड की यह सीरीज़ इस्तेमाल करें:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo

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

  4. Repo लॉन्चर का वर्शन देखें:

    repo version

    आउटपुट में, 2.4 या इसके बाद का वर्शन दिखना चाहिए. उदाहरण के लिए:

    repo launcher version 2.45

आउटपुट के लिए कोई दूसरी डायरेक्ट्री सेट करना

डिफ़ॉल्ट रूप से, हर बिल्ड का आउटपुट, मैचिंग सोर्स ट्री की out/ सबडायरेक्ट्री में सेव किया जाता है. OUT_DIR एनवायरमेंट वैरिएबल को एक्सपोर्ट करके, इस डायरेक्ट्री को बदला जा सकता है. उदाहरण के लिए, अगर आपको अपना आउटपुट किसी दूसरी ड्राइव में सेव करना है, तो OUT_DIR को उस ड्राइव पर पॉइंट किया जा सकता है:

export OUT_DIR=my_other_drive

आगे क्या करना है?