स्रोत डाउनलोड कर रहा है

Android स्रोत ट्री Google द्वारा होस्ट किए गए Git रिपॉजिटरी में स्थित है। गिट रिपॉजिटरी में एंड्रॉइड स्रोत के लिए मेटाडेटा शामिल है, जिसमें स्रोत में परिवर्तन और जब परिवर्तन किए गए थे। यह पृष्ठ वर्णन करता है कि किसी विशिष्ट Android कोड लाइन के लिए स्रोत ट्री को कैसे डाउनलोड किया जाए।

बजाय स्रोत को डाउनलोड करने का एक विशिष्ट उपकरण के लिए फैक्टरी छवि के साथ शुरू करने के लिए, को देखने के लिए एक उपकरण का निर्माण का चयन

रेपो क्लाइंट को इनिशियलाइज़ करना

बाद रेपो लांचर स्थापित करने , एंड्रॉयड स्रोत भंडार का उपयोग करने के अपने ग्राहक की स्थापना:

  1. अपनी कार्यशील फ़ाइलों को रखने के लिए एक खाली निर्देशिका बनाएँ। इसे कोई भी नाम दें जो आपको पसंद हो:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. अपने वास्तविक नाम और ईमेल पते के साथ Git को कॉन्फ़िगर करें। Gerrit कोड की समीक्षा उपकरण का उपयोग करने के लिए, आपको लगता है कि एक के साथ जुड़ा हुआ है ईमेल पते की आवश्यकता पंजीकृत Google खाते । सुनिश्चित करें कि यह एक लाइव पता है जहां आप संदेश प्राप्त कर सकते हैं। आपके द्वारा यहां प्रदान किया गया नाम आपके कोड सबमिशन के लिए एट्रिब्यूशन में दिखाई देता है।

    git config --global user.name Your Name
    git config --global user.email you@example.com
    
  3. भागो repo init इसकी सबसे हाल के समस्या समाधान के साथ रेपो के नवीनतम संस्करण को प्राप्त करने के लिए। आपको मेनिफेस्ट के लिए एक URL निर्दिष्ट करना होगा, जो यह निर्दिष्ट करता है कि Android स्रोत में शामिल विभिन्न रिपॉजिटरी को आपकी कार्यशील निर्देशिका में कहाँ रखा गया है।

    repo init -u https://android.googlesource.com/platform/manifest
    

    मास्टर शाखा की जाँच करने के लिए:

    repo init -u https://android.googlesource.com/platform/manifest -b master
    

    गुरु के अलावा किसी अन्य शाखा की जाँच करने के लिए, के साथ यह निर्दिष्ट -b । शाखाओं की एक सूची के लिए, स्रोत कोड टैग और बनाता है

    पायथन 2 . के लिए

    पायथन 3 . के लिए

    आप मिलता है एक " /usr/bin/env 'python' no such file or directory " त्रुटि संदेश, नीचे दिए समाधान उपयोग करें:

    : अपने Ubuntu 20.04.2 LTS एक नव स्थापित (अपग्रेड किए गए बनाम) लिनक्स संस्करण है

    sudo ln -s /usr/bin/python3 /usr/bin/python

    Git संस्करण 2.19 या अधिक से अधिक का उपयोग करते हुए, तो आप निर्दिष्ट कर सकते हैं --partial- clone जब प्रदर्शन कर repo init । इस बनाता है Git के का उपयोग आंशिक क्लोन क्षमता केवल बजाय सब कुछ डाउनलोड करने की, जब जरूरत Git वस्तुओं डाउनलोड करने के लिए। क्योंकि आंशिक क्लोन का उपयोग करने का अर्थ है कि कई संचालन सर्वर के साथ संचार करना चाहिए, यदि आप एक डेवलपर हैं और आप कम विलंबता वाले नेटवर्क का उपयोग कर रहे हैं तो निम्न का उपयोग करें:

    repo init -u https://android.googlesource.com/platform/manifest -b master --partial-clone --clone-filter=blob:limit=10M
    

    विंडोज ओएस के लिए केवल: यदि आप करते हुए कहा कि प्रतीकात्मक लिंक, बनाया नहीं जा सका के कारण एक त्रुटि संदेश मिलता repo init विफल, संदर्भ GitHub प्रतीकात्मक लिंक प्रलेखन इन बनाने के लिए, या उनके समर्थन को सक्षम करने के लिए। गैर-व्यवस्थापकों के लिए, देखें लिंक प्रतीकात्मक बनाने के लिए अनुमति दे गैर-व्यवस्थापकों अनुभाग।

एक सफल इनिशियलाइज़ेशन एक संदेश के साथ समाप्त होता है जिसमें कहा गया है कि रेपो को आपकी वर्किंग डायरेक्टरी में इनिशियलाइज़ किया गया है। आपका क्लाइंट निर्देशिका अब एक होता है .repo निर्देशिका जहां इस तरह प्रकट रूप में फाइल रखा जाता है।

Android स्रोत ट्री डाउनलोड करना

डिफ़ॉल्ट मेनिफेस्ट में निर्दिष्ट रिपॉजिटरी से एंड्रॉइड सोर्स ट्री को अपनी वर्किंग डायरेक्टरी में डाउनलोड करने के लिए, रन करें:

repo sync

गति के समन्वयित होने के लिए, पारित -c (वर्तमान शाखा) और -j threadcount झंडे:

repo sync -c -j8

Android स्रोत फ़ाइलें आपकी कार्यशील निर्देशिका में उनके प्रोजेक्ट नामों के अंतर्गत डाउनलोड की जाती हैं।

दबाने उत्पादन करने के लिए, पारित -q (शांत) झंडा। देखें रेपो कमान संदर्भ सभी विकल्प के लिए।

प्रमाणीकरण का उपयोग करना

डिफ़ॉल्ट रूप से, Android स्रोत कोड तक पहुंच अनाम है। सर्वर को अत्यधिक उपयोग से बचाने के लिए, प्रत्येक IP पता एक कोटा से जुड़ा होता है।

अन्य उपयोगकर्ताओं के साथ एक आईपी पता साझा करते समय (उदाहरण के लिए, जब एनएटी फ़ायरवॉल से परे स्रोत भंडार तक पहुंच हो), कोटा नियमित उपयोग पैटर्न के लिए भी ट्रिगर हो सकता है (उदाहरण के लिए, यदि कई उपयोगकर्ता एक ही आईपी पते से नए क्लाइंट को सिंक करते हैं। एक छोटी सी अवधि में)।

उस स्थिति में, आप प्रमाणीकृत पहुंच का उपयोग कर सकते हैं, जो तब प्रत्येक उपयोगकर्ता के लिए एक अलग कोटा का उपयोग करता है, चाहे आईपी पता कुछ भी हो।

सबसे पहले, के साथ एक पासवर्ड बनाने पासवर्ड जनरेटर और पासवर्ड जनरेटर पेज पर दिए गए निर्देशों का पालन करें।

इसके बाद, बल यूआरआई प्रकट का उपयोग करके पहुँच प्रमाणीकृत https://android.googlesource.com/a/platform/manifest । सूचना कैसे /a/ निर्देशिका उपसर्ग चलाता अनिवार्य प्रमाणीकरण। आप किसी मौजूदा क्लाइंट को निम्नलिखित कमांड के साथ अनिवार्य प्रमाणीकरण का उपयोग करने के लिए परिवर्तित कर सकते हैं:

repo init -u https://android.googlesource.com/a/platform/manifest

नेटवर्क समस्याओं का निवारण

प्रॉक्सी के पीछे से डाउनलोड करते समय (जो कुछ कॉर्पोरेट वातावरण में आम है), आपको रेपो के उपयोग के लिए प्रॉक्सी को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता हो सकती है:

export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

शायद ही कभी, लिनक्स ग्राहकों अनुभव कनेक्टिविटी समस्याओं, (आमतौर पर प्राप्त वस्तुओं के दौरान) डाउनलोड के बीच में अटक। टीसीपी/आईपी स्टैक की सेटिंग्स को समायोजित करने और गैर-समानांतर आदेशों का उपयोग करने से स्थिति में सुधार हो सकता है। टीसीपी सेटिंग को संशोधित करने के लिए आपके पास रूट एक्सेस होना चाहिए:

sudo sysctl -w net.ipv4.tcp_window_scaling=0
repo sync -j1

स्थानीय दर्पण का उपयोग करना

कई क्लाइंट का उपयोग करते समय, विशेष रूप से उन स्थितियों में जहां बैंडविड्थ दुर्लभ है, संपूर्ण सर्वर सामग्री का स्थानीय दर्पण बनाना और क्लाइंट को उस दर्पण से सिंक करना बेहतर है (जिसके लिए नेटवर्क एक्सेस की आवश्यकता नहीं है)। एक पूर्ण दर्पण के लिए डाउनलोड दो क्लाइंट के डाउनलोड से छोटा है, और इसमें अधिक जानकारी है।

ये निर्देश मानते हैं कि आईने में बनाई गई है /usr/local/aosp/mirror । सबसे पहले, मिरर को ही बनाएं और सिंक करें। सूचना --mirror झंडा, जब एक नए ग्राहक बनाने जो आप केवल निर्दिष्ट कर सकते हैं:

mkdir -p /usr/local/aosp/mirror
cd /usr/local/aosp/mirror
repo init -u https://android.googlesource.com/mirror/manifest --mirror
repo sync

जब मिरर सिंक हो जाता है, तो आप इससे नए क्लाइंट बना सकते हैं। ध्यान दें कि आपको एक निरपेक्ष पथ निर्दिष्ट करना होगा:

mkdir -p /usr/local/aosp/master
cd /usr/local/aosp/master
repo init -u /usr/local/aosp/mirror/platform/manifest.git
repo sync

अंत में, क्लाइंट को सर्वर के विरुद्ध सिंक करने के लिए, सर्वर के विरुद्ध मिरर को सिंक करें, फिर क्लाइंट को मिरर के विरुद्ध सिंक करें:

cd /usr/local/aosp/mirror
repo sync
cd /usr/local/aosp/master
repo sync

दर्पण को LAN सर्वर पर संग्रहीत करना और इसे NFS, SSH, या Git पर एक्सेस करना संभव है। इसे हटाने योग्य ड्राइव पर स्टोर करना और उपयोगकर्ताओं या मशीनों के बीच उस ड्राइव को पास करना भी संभव है।

गिट टैग सत्यापित करना

निम्नलिखित सार्वजनिक कुंजी को अपने GnuPG कुंजी डेटाबेस में लोड करें। कुंजी का उपयोग एनोटेट टैग पर हस्ताक्षर करने के लिए किया जाता है जो रिलीज का प्रतिनिधित्व करते हैं।

gpg --import

कॉपी और नीचे दिए गए महत्वपूर्ण पेस्ट, फिर EOF (Ctrl-D) इनपुट अंत और चाबी कार्रवाई करने के लिए।

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+
OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
=Wi5D
-----END PGP PUBLIC KEY BLOCK-----

कुंजियाँ आयात करने के बाद, आप किसी भी टैग को इसके साथ सत्यापित कर सकते हैं:

git tag -v TAG_NAME

मालिकाना बायनेरिज़ प्राप्त करें

एओएसपी का उपयोग केवल शुद्ध स्रोत कोड से नहीं किया जा सकता है और इसे चलाने के लिए अतिरिक्त हार्डवेयर-संबंधित स्वामित्व पुस्तकालयों की आवश्यकता होती है, जैसे हार्डवेयर ग्राफिक्स त्वरण के लिए। डाउनलोड लिंक और नीचे दिए गए अनुभागों देखें डिवाइस बाइनरी अतिरिक्त संसाधनों के लिए।

मालिकाना बायनेरिज़ डाउनलोड करें

आप से भी टैग AOSP रिहाई शाखाओं चल समर्थित उपकरणों के लिए सरकारी बाइनरी डाउनलोड कर सकते हैं गूगल के ड्राइवरों । ये बायनेरिज़ गैर-ओपन सोर्स कोड के साथ अतिरिक्त हार्डवेयर क्षमताओं तक पहुँच जोड़ते हैं। AOSP मास्टर शाखा का निर्माण करने के लिए, का उपयोग बाइनरी पूर्वावलोकन के बजाय। जब एक डिवाइस के लिए मास्टर शाखा का निर्माण, के लिए बाइनरी का उपयोग सबसे हाल ही में क्रमांकित रिहाई या हाल ही की तारीख के साथ।

मालिकाना बायनेरिज़ निकालें

बायनेरिज़ का प्रत्येक सेट एक संपीड़ित संग्रह में एक स्व-निकालने वाली स्क्रिप्ट के रूप में आता है। प्रत्येक संग्रह को असम्पीडित करें, स्रोत ट्री की जड़ से शामिल स्व-निकालने वाली स्क्रिप्ट चलाएँ, फिर पुष्टि करें कि आप संलग्न लाइसेंस समझौते की शर्तों से सहमत हैं। बाइनरी और उनके मिलान makefiles में स्थापित कर रहे हैं vendor/ स्रोत पेड़ के पदानुक्रम।

साफ - सफाई

यह सुनिश्चित करने के लिए कि नए स्थापित बायनेरिज़ को निकाले जाने के बाद ठीक से ध्यान में रखा गया है, किसी भी पिछले बिल्ड के मौजूदा आउटपुट का उपयोग करके हटा दें:

make clobber