Android स्रोत का पेड़ Google द्वारा होस्ट किए गए Git रिपॉजिटरी में स्थित है। Git रिपॉजिटरी में एंड्रॉइड स्रोत के मेटाडेटा शामिल हैं, जिसमें स्रोत में परिवर्तन और जब परिवर्तन किए गए थे। यह पृष्ठ बताता है कि किसी विशिष्ट Android कोड लाइन के लिए स्रोत ट्री को कैसे डाउनलोड किया जाए।
स्रोत को डाउनलोड करने के बजाय किसी विशिष्ट डिवाइस के लिए फ़ैक्टरी छवि के साथ शुरू करने के लिए, एक डिवाइस बिल्ड का चयन करना देखें।
एक रेपो ग्राहक की शुरुआत
रेपो लॉन्चर को स्थापित करने के बाद, एंड्रॉइड स्रोत रिपॉजिटरी तक पहुंचने के लिए अपने क्लाइंट को सेट करें:
अपनी कार्यशील फ़ाइलों को रखने के लिए एक खाली निर्देशिका बनाएं। यदि आप macOS का उपयोग कर रहे हैं, तो यह केस-सेंसिटिव फाइल सिस्टम पर होना चाहिए। इसे आप जैसा भी नाम दें:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
अपने वास्तविक नाम और ईमेल पते के साथ Git कॉन्फ़िगर करें। जेरिट कोड-समीक्षा टूल का उपयोग करने के लिए, आपको एक ईमेल पते की आवश्यकता होती है जो एक पंजीकृत Google खाते से जुड़ा होता है। सुनिश्चित करें कि यह एक लाइव पता है जहां आप संदेश प्राप्त कर सकते हैं। आपके द्वारा यहां दिया गया नाम आपके कोड सबमिशन के लिए अट्रैक्शन में दिखता है।
git config --global user.name Your Name
git config --global user.email you@example.com
repo init
के नवीनतम संस्करण को इसके सबसे हालिया बग फिक्स के साथ पाने के लिएrepo init
चलाएं। आपको मैनिफ़ेस्ट के लिए एक URL निर्दिष्ट करना होगा, जो निर्दिष्ट करता है कि एंड्रॉइड स्रोत में शामिल विभिन्न रिपॉजिटरी को आपके वर्किंग डायरेक्टरी में कहाँ रखा गया है।repo init -u https://android.googlesource.com/platform/manifest
मास्टर शाखा देखने के लिए:
repo init -u https://android.googlesource.com/platform/manifest -b master
मास्टर के अलावा अन्य शाखा की जाँच करने के लिए, इसे
-b
साथ निर्दिष्ट करें। शाखाओं की सूची के लिए, स्रोत कोड टैग और बिल्ड देखें ।केवल macOS के लिए: यदि कोई प्रमाणपत्र त्रुटि के कारण maco पर
repo init
विफल हो जाता है, तो आपको पहले निम्नलिखित को चलाने की आवश्यकता हो सकती है:open /Applications/Python\ 3.6/Install\ Certificates.command
यदि Git संस्करण 2.19 या अधिक का उपयोग करते हैं, तो आप repo init
--partial-clone
प्रदर्शन करते समय --partial-clone
निर्दिष्ट कर सकते हैं। यह Git की आंशिक क्लोन क्षमता का उपयोग करता है, जब सब कुछ डाउनलोड करने के बजाय केवल Git ऑब्जेक्ट को डाउनलोड करने की आवश्यकता होती है। क्योंकि आंशिक क्लोन का उपयोग करने का अर्थ है कि कई ऑपरेशनों को सर्वर से संवाद करना चाहिए, यदि आप एक डेवलपर हैं तो निम्न का उपयोग करें और आप कम अक्षांश वाले नेटवर्क का उपयोग कर रहे हैं:
repo init -u https://android.googlesource.com/platform/manifest -b master --partial-clone --clone-filter=blob:limit=10M
केवल Windows OS के लिए: यदि आपको एक त्रुटि संदेश मिलता है जिसमें कहा गया है कि प्रतीकात्मक लिंक नहीं बनाए जा सकते हैं, जिससे repo init
विफल हो जाता है, तो इन्हें बनाने के लिए, या इनका समर्थन सक्षम करने के लिए GitHub Symbolic Links प्रलेखन का संदर्भ लें। गैर-व्यवस्थापकों के लिए, प्रतीकात्मक लिंक अनुभाग बनाने के लिए गैर-व्यवस्थापकों को देखें।
एक सफल आरंभीकरण एक संदेश के साथ समाप्त होता है जिसमें कहा गया है कि रेपो आपकी कार्यशील निर्देशिका में आरंभीकृत है। आपकी क्लाइंट निर्देशिका में अब एक .repo
निर्देशिका होती है जहाँ प्रकट होने वाली फ़ाइलों को रखा जाता है।
एंड्रॉइड स्रोत पेड़ डाउनलोड करना
डिफ़ॉल्ट रूप में निर्दिष्ट रिपॉजिटरी से एंड्रॉइड सोर्स ट्री को अपनी वर्किंग डायरेक्टरी में डाउनलोड करने के लिए, रन करें:
repo sync
सिंक को गति देने के लिए, -c
(करंट ब्रांच) और -j threadcount
झंडे पास करें:
repo sync -c -j8
Android स्रोत फ़ाइलों को उनके प्रोजेक्ट नामों के तहत आपकी कार्यशील निर्देशिका में डाउनलोड किया जाता है।
आउटपुट को दबाने के लिए, -q
(शांत) ध्वज पास करें। सभी विकल्पों के लिए रेपो कमांड संदर्भ देखें।
प्रमाणीकरण का उपयोग करना
डिफ़ॉल्ट रूप से, एंड्रॉइड स्रोत कोड तक पहुंच अनाम है। अत्यधिक उपयोग के खिलाफ सर्वर की सुरक्षा के लिए, प्रत्येक आईपी पता एक कोटा से जुड़ा हुआ है।
अन्य उपयोगकर्ताओं के साथ एक IP पता साझा करते समय (उदाहरण के लिए, NAT फ़ायरवॉल से परे स्रोत रिपॉजिटरी तक पहुंचते समय), कोटा नियमित उपयोग पैटर्न के लिए भी ट्रिगर हो सकता है (उदाहरण के लिए, यदि कई उपयोगकर्ता एक ही आईपी पते से नए क्लाइंट को एक ही चरण में सिंक करते हैं। अल्प अवधि)।
उस स्थिति में, आप प्रमाणित उपयोग का उपयोग कर सकते हैं, जो तब आईपी पते की परवाह किए बिना, प्रत्येक उपयोगकर्ता के लिए एक अलग कोटा का उपयोग करता है।
सबसे पहले, पासवर्ड जनरेटर के साथ एक पासवर्ड बनाएं और पासवर्ड जनरेटर पेज पर दिए गए निर्देशों का पालन करें।
अगला, प्रकट URI https://android.googlesource.com/a/platform/manifest
का उपयोग करके प्रमाणित उपयोग को बाध्य https://android.googlesource.com/a/platform/manifest
। ध्यान दें कि कैसे /a/
निर्देशिका उपसर्ग अनिवार्य प्रमाणीकरण को ट्रिगर करता है। आप निम्न आदेश के साथ अनिवार्य प्रमाणीकरण का उपयोग करने के लिए एक मौजूदा ग्राहक को बदल सकते हैं:
समस्या निवारण नेटवर्क समस्याएँ
जब एक प्रॉक्सी के पीछे से डाउनलोड करना (जो कुछ कॉर्पोरेट वातावरण में आम है), तो आपको उपयोग करने के लिए रेपो के लिए प्रॉक्सी को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता हो सकती है:
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/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 का उपयोग केवल शुद्ध स्रोत कोड से नहीं किया जा सकता है और इसके लिए अतिरिक्त हार्डवेयर से संबंधित स्वामित्व वाली लाइब्रेरी चलाने की आवश्यकता होती है, जैसे कि हार्डवेयर ग्राफिक्स त्वरण। अतिरिक्त संसाधनों के लिए डाउनलोड लिंक और डिवाइस बायनेरिज़ के लिए नीचे दिए गए अनुभाग देखें।
मालिकाना बायनेरी डाउनलोड करें
आप Google के ड्राइवरों से टैग की गई AOSP रिलीज़ शाखाओं को चलाने वाले समर्थित उपकरणों के लिए आधिकारिक बायनेरी डाउनलोड कर सकते हैं। ये बायनेरिज़ नॉन-ओपन सोर्स कोड के साथ अतिरिक्त हार्डवेयर क्षमताओं तक पहुंच को जोड़ते हैं। AOSP मास्टर शाखा का निर्माण करने के लिए, बजाय बायनेरिज़ पूर्वावलोकन का उपयोग करें। डिवाइस के लिए मास्टर शाखा का निर्माण करते समय, सबसे हाल के जारी किए गए रिलीज़ के लिए या सबसे हाल की तारीख के साथ बायनेरिज़ का उपयोग करें।
मालिकाना बायनेरिज़ निकालें
बायनेरिज़ का प्रत्येक सेट एक संपीड़ित संग्रह में एक स्व-निष्कर्षण स्क्रिप्ट के रूप में आता है। प्रत्येक संग्रह को अनकम्प्रेस्ड करें, शामिल ट्री को मूल पेड़ के मूल से निकालने वाली स्क्रिप्ट चलाएं, फिर पुष्टि करें कि आप संलग्न लाइसेंस समझौते की शर्तों से सहमत हैं। स्रोत वृक्ष के vendor/
पदानुक्रम में बायनेरिज़ और उनके मिलान मेकफ़ाइल्स स्थापित हैं।
साफ - सफाई
यह सुनिश्चित करने के लिए कि स्थापित किए जाने के बाद नव स्थापित बायनेरिज़ को ठीक से ध्यान में रखा गया है, किसी भी पिछले बिल्ड के मौजूदा आउटपुट को उपयोग करके हटा दें:
053b123123c0