AOSP के बारे में अक्सर पूछे जाने वाले सवाल

इस दस्तावेज़ में, Android Open Source Platform (AOSP) के बारे में सामान्य सवालों के जवाब दिए गए हैं.

android-latest-release के बारे में जानकारी

मैं aosp-main में सबमिट क्यों नहीं कर पा रहा/रही हूं?

aosp-main पर सबमिट नहीं किया जा सकता, क्योंकि वह शाखा अब रीड-ओनली है.

मुझे AOSP में बदलावों का सुझाव कहां देना चाहिए?

आपको Repo का इस्तेमाल करते समय, android-latest-release में नए बदलावों का सुझाव देना चाहिए. इसके अलावा, सीधे Git का इस्तेमाल करते समय, android-latest-release मेनिफ़ेस्ट में बताई गई नई रिलीज़ शाखा में बदलावों का सुझाव देना चाहिए. दूसरी शाखाओं (जैसे कि aosp-main) में मौजूद, सुझाए गए मौजूदा बदलावों को दूसरी शाखाओं में ले जाने की ज़रूरत नहीं है.

मुझे किस शाखा के साथ सिंक करना चाहिए?

  • Repo का इस्तेमाल करते समय, इस कमांड का इस्तेमाल करके android-latest-release से सिंक करें:

    repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest
  • Git का सीधे तौर पर इस्तेमाल करते समय, android-latest-release मेनिफ़ेस्ट में बताई गई डिफ़ॉल्ट रीविज़न शाखा के साथ सिंक करें.

शाखाओं को सिंक करने के बारे में ज़्यादा जानकारी के लिए, रिपो क्लाइंट को शुरू करना देखें.

क्या android-latest-release से कोड को aosp-main में मर्ज किया जाएगा?

नहीं, कोड को aosp-main में मर्ज नहीं किया जाएगा. यह शाखा 27 मार्च, 2025 से रीड-ओनली है.

अगली रिलीज़ का कोड कहां पुश किया जाता है?

Google, अगली रिलीज़ के लिए कोड को नए सार्वजनिक रिलीज़ ब्रैंच पर पुश करता है और उस ब्रैंच पर ले जाने के लिए android-latest-release मेनिफ़ेस्ट को अपडेट करता है.

क्या मेरे बदलाव के अनुरोध को android-latest-release शाखा से, इंटरनल Gerrit में चुना जाएगा?

सुझाए गए बदलाव को अपलोड करने के बाद, Google उसकी समीक्षा करेगा. अगर उसे स्वीकार कर लिया जाता है, तो उसे Gerrit के इंटरनल वर्शन में शामिल कर लिया जाएगा.

मुझे कैसे पता चलेगा कि बदलाव का अनुरोध स्वीकार कर लिया गया है?

स्वीकार किए गए और चुने गए बदलाव, Android होस्ट पर रिलीज़ शाखा में आने वाले समय में पुश किए जाते हैं. साथ ही, android-latest-release का इस्तेमाल करके, उन्हें रिपॉज़िटरी के साथ सिंक किया जा सकता है. सुझाए गए बदलाव को स्वीकार या अस्वीकार किए जाने पर, सूचना देने की कोई सुविधा नहीं है.

जब कोई बाहरी योगदानकर्ता किसी बदलाव का सुझाव देता है, तब से लेकर उसे नई रिलीज़ शाखा में मर्ज करने तक का सामान्य वर्कफ़्लो क्या है?

  1. बाहरी योगदान देने वाला व्यक्ति, android-latest-release (Repo का इस्तेमाल करते समय) या android-latest-release मेनिफ़ेस्ट में बताई गई नई रिलीज़ शाखा (सीधे Git का इस्तेमाल करते समय) में बदलाव का सुझाव देता है.

  2. Google, बदलाव की समीक्षा करता है. अगर बदलाव:

    • स्वीकार किए जाने के बाद, Google उस बदलाव को चुनता है और उसे इंटरनल डेवलपमेंट ब्रांच में मर्ज करता है.

    • स्वीकार नहीं किया गया. Google, बदलावों को चुनिंदा तौर पर लागू नहीं करता.

  3. बाहरी योगदान देने वाला व्यक्ति, android-latest-release में अपने बदलाव की जांच करता है.

अगर मुझे सुझाए गए बदलाव की अब ज़रूरत नहीं है, तो क्या होगा?

अगर आपको सुझाए गए बदलाव की ज़रूरत नहीं है, तो उसे मर्ज न करें. इसके अलावा, अगर आपको पता है कि Google ने पहले ही बदलाव की समीक्षा कर ली है, तो बदलाव को छोड़ दें, ताकि वह Android होस्ट पर, सुझाए गए बदलाव के इतिहास में बना रहे.

ओपन-सोर्स सवाल

Google ने Android का सोर्स कोड क्यों खोला?

Google ने मोबाइल ऐप्लिकेशन लॉन्च करने के अपने अनुभवों के आधार पर, AOSP शुरू किया था. हम यह पक्का करना चाहते थे कि कैरियर, OEM, और डेवलपर के लिए हमेशा एक ओपन प्लैटफ़ॉर्म उपलब्ध रहे, ताकि वे अपने इनोवेटिव आइडिया को ज़िंदगी में ला सकें. हम किसी भी तरह की गड़बड़ी से बचना चाहते थे, ताकि इंडस्ट्री का कोई भी व्यक्ति किसी दूसरे के इनोवेशन पर पाबंदी न लगा सके या उन्हें कंट्रोल न कर सके. AOSP के लिए हमारा सबसे अहम लक्ष्य यह पक्का करना है कि ओपन सोर्स Android सॉफ़्टवेयर को ज़्यादा से ज़्यादा डिवाइसों पर इस्तेमाल किया जा सके और वह सभी डिवाइसों के साथ काम करे, ताकि सभी को इसका फ़ायदा मिल सके.

Android किस तरह का ओपन-सोर्स प्रोजेक्ट है?

Google, AOSP के मुख्य वर्शन को डेवलप करने की निगरानी करता है. साथ ही, डेवलपर और उपयोगकर्ता समुदायों को बेहतर बनाने के लिए काम करता है. ज़्यादातर मामलों में, Android के सोर्स कोड को कॉपीलेफ़्ट लाइसेंस के बजाय, अनुमति देने वाले Apache License 2.0 के तहत लाइसेंस दिया जाता है. हमने Apache 2.0 लाइसेंस को इसलिए चुना है, क्योंकि हमारा मानना है कि इससे Android सॉफ़्टवेयर का इस्तेमाल बड़े पैमाने पर करने के लिए बढ़ावा मिलता है. ज़्यादा जानकारी के लिए, लाइसेंस देखें.

Android का कंट्रोल Google के पास क्यों है?

सॉफ़्टवेयर प्लैटफ़ॉर्म लॉन्च करना मुश्किल है. किसी प्लैटफ़ॉर्म को लंबे समय तक कामयाब बनाने के लिए, उसे सभी के लिए उपलब्ध होना ज़रूरी है. ऐसा इसलिए, क्योंकि इससे डेवलपर का ध्यान खींचा जा सकता है और सभी को एक जैसी सुविधाएं मिलती हैं. यह भी ज़रूरी है कि प्लैटफ़ॉर्म, उपयोगकर्ताओं के लिए एक शानदार प्रॉडक्ट हो.

Google ने पेशेवर इंजीनियरिंग संसाधनों को इस बात के लिए उपलब्ध कराया है कि Android एक ऐसा सॉफ़्टवेयर प्लैटफ़ॉर्म हो जो पूरी तरह से प्रतिस्पर्धी हो. Google, Android प्रोजेक्ट को प्रॉडक्ट डेवलपमेंट के बड़े ऑपरेशन के तौर पर देखता है. साथ ही, कारोबार से जुड़े ऐसे समझौते करता है जिनसे यह पक्का हो सके कि Android पर काम करने वाले बेहतरीन डिवाइस, मार्केट में उपलब्ध हों.

हम यह पक्का करते हैं कि Android, लोगों के लिए एक बेहतर प्लैटफ़ॉर्म और ओपन-सोर्स प्रोजेक्ट के तौर पर काम करे. आखिर, कौन किसी ऐसे प्रॉडक्ट का सोर्स कोड चाहेगा जो सफल नहीं हुआ?

हमारा मकसद, Android के लिए एक बेहतर नेटवर्क बनाना है. हमने Android का सोर्स कोड इसलिए उपलब्ध कराया है, ताकि कोई भी व्यक्ति अपनी ज़रूरतों के हिसाब से सॉफ़्टवेयर में बदलाव कर सके और उसे डिस्ट्रिब्यूट कर सके.

Android प्रॉडक्ट डेवलपमेंट के लिए, Google की रणनीति क्या है?

हम प्रतिस्पर्धी मार्केटप्लेस में बेहतरीन डिवाइस लॉन्च करते हैं. इसके बाद, हम मुख्य प्लैटफ़ॉर्म में किए गए बदलावों और सुधारों को अगले वर्शन के तौर पर शामिल करते हैं.

इसका मतलब है कि Android की इंजीनियरिंग टीम, कुछ "फ़्लैगशिप" डिवाइसों पर फ़ोकस करती है. साथ ही, उन प्रॉडक्ट लॉन्च के लिए Android सॉफ़्टवेयर का अगला वर्शन डेवलप करती है. ये फ़्लैगशिप डिवाइस, प्रॉडक्ट से जुड़े ज़्यादातर जोखिमों को कम करते हैं. साथ ही, ये OEM कम्यूनिटी के लिए एक नई राह तय करते हैं. OEM कम्यूनिटी, इन डिवाइसों के बाद नई सुविधाओं का फ़ायदा देने वाले और भी डिवाइस लॉन्च करती है. इस तरह, हम यह पक्का करते हैं कि Android प्लैटफ़ॉर्म, असल डिवाइसों की ज़रूरतों के हिसाब से बेहतर होता रहे.

Android सॉफ़्टवेयर कैसे डेवलप किया जाता है?

Android के हर प्लैटफ़ॉर्म वर्शन (जैसे, 1.5 या 8.1) के लिए, ओपन-सोर्स ट्री में एक ब्रैंच होती है. सबसे हाल ही की शाखा को मौजूदा स्थिर शाखा वर्शन माना जाता है, जिस पर android-latest-release मेनिफ़ेस्ट सेट होता है. यह वह शाखा है जिसे मैन्युफ़ैक्चरर अपने डिवाइसों पर पोर्ट करते हैं. इस शाखा को हमेशा रिलीज़ के लिए तैयार रखा जाता है.

आखिर में, Google किसी फ़्लैगशिप डिवाइस को डेवलप करने के साथ-साथ, Android प्लैटफ़ॉर्म के अगले वर्शन पर भी काम करता है.

Android के कुछ हिस्सों को निजी तौर पर क्यों डेवलप किया जाता है?

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

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

सोर्स कोड की रिलीज़ कब की जाती हैं?

जब वे तैयार हों. सोर्स कोड रिलीज़ करना काफ़ी मुश्किल प्रोसेस है. Android के कुछ हिस्सों, जैसे कि कर्नेल को सार्वजनिक तौर पर डेवलप किया जाता है. साथ ही, उनका सोर्स कोड हमेशा उपलब्ध होता है. अन्य हिस्सों को पहले एक निजी ट्री में डेवलप किया जाता है. प्लैटफ़ॉर्म का अगला वर्शन तैयार होने पर, उस सोर्स कोड को रिलीज़ किया जाता है.

कुछ रिलीज़ में, मुख्य प्लैटफ़ॉर्म के एपीआई काफ़ी पहले से तैयार होते हैं, ताकि डिवाइस के रिलीज़ होने से पहले ही, हम सोर्स कोड को पॉइंट कर सकें. अन्य रिलीज़ में ऐसा नहीं किया जा सकता. हम सभी मामलों में, प्लैटफ़ॉर्म का सोर्स तब रिलीज़ करते हैं, जब हमें लगता है कि वर्शन सही है और डेवलपमेंट की प्रोसेस की अनुमति है.

Android के नए वर्शन का सोर्स कोड रिलीज़ करने में क्या-क्या शामिल है?

Android प्लैटफ़ॉर्म के नए वर्शन का सोर्स कोड रिलीज़ करना एक अहम प्रोसेस है. सबसे पहले, सॉफ़्टवेयर को किसी डिवाइस के लिए सिस्टम इमेज में बनाया जाता है. इसके बाद, उसे अलग-अलग तरह के सर्टिफ़िकेट दिए जाते हैं. इनमें उन इलाकों के लिए सरकारी नियमों के मुताबिक सर्टिफ़िकेट भी शामिल हैं जहां फ़ोन को डिप्लॉय किया जाएगा. कोड की जांच ऑपरेटर भी करता है. यह प्रोसेस का एक अहम चरण है, क्योंकि इससे सॉफ़्टवेयर के गड़बड़ियों का पता चलता है.

जब रेगुलेटर और ऑपरेटर, रिलीज़ को मंज़ूरी देते हैं, तो डिवाइस बनाने वाली कंपनी बड़े पैमाने पर डिवाइसों का निर्माण शुरू कर देती है. साथ ही, हम सोर्स कोड को रिलीज़ करना शुरू कर देते हैं.

बड़े पैमाने पर प्रोडक्शन के साथ-साथ, Google की टीम ओपन-सोर्स रिलीज़ तैयार करने के लिए कई काम शुरू करती है. इनमें एपीआई में किए गए आखिरी बदलाव, दस्तावेज़ अपडेट करना (उदाहरण के लिए, क्वालीफ़िकेशन टेस्टिंग के दौरान किए गए बदलावों को दिखाने के लिए), नए वर्शन के लिए SDK टूल तैयार करना, और प्लैटफ़ॉर्म के साथ काम करने की जानकारी लॉन्च करना शामिल है.

कोड को ओपन सोर्स के तौर पर रिलीज़ करने के लिए, हमारी कानूनी टीम आखिरी बार हस्ताक्षर करती है. ओपन-सोर्स में योगदान देने वाले लोगों को, योगदान देने के लिए Contributor के लाइसेंस समझौते पर हस्ताक्षर करने होते हैं. इससे यह पुष्टि होती है कि योगदान देने वाले व्यक्ति के पास, अपने योगदान के बौद्धिक संपत्ति के मालिकाना हक का अधिकार है. इसी तरह, Google को यह पुष्टि करनी होगी कि योगदान देने के लिए, सोर्स को मंज़ूरी मिली है या नहीं.

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

AOSP, Android Compatibility Program से कैसे जुड़ा है?

AOSP, Android सॉफ़्टवेयर को मैनेज करता है और इसके नए वर्शन डेवलप करता है. यह सॉफ़्टवेयर ओपन-सोर्स है. इसलिए, इसका इस्तेमाल किसी भी काम के लिए किया जा सकता है. जैसे, ऐसे डिवाइसों को डेवलप करना जो एक ही सोर्स पर आधारित अन्य डिवाइसों के साथ काम न करते हों.

Android Compatibility Program का मकसद, Android के बेसलाइन को लागू करना है. यह बेसलाइन, डेवलपर के लिखे गए तीसरे पक्ष के ऐप्लिकेशन के साथ काम करता है. Android के साथ काम करने वाले डिवाइस, Google Play के साथ-साथ Android नेटवर्क में शामिल हो सकते हैं. वहीं, Android के साथ काम करने की ज़रूरी शर्तें पूरी न करने वाले डिवाइस, इस नेटवर्क में शामिल नहीं होते.

दूसरे शब्दों में, Android Compatibility Program की मदद से हम Android के साथ काम करने वाले डिवाइसों को, उन डिवाइसों से अलग करते हैं जो सिर्फ़ सोर्स कोड के डेरिवेटिव चलाते हैं. हम Android सोर्स कोड के सभी इस्तेमाल का स्वागत करते हैं. हालांकि, Android नेटवर्क में शामिल होने के लिए, यह ज़रूरी है कि प्रोग्राम में किसी डिवाइस को Android के साथ काम करने वाला डिवाइस माना गया हो.

मैं Android में योगदान कैसे दे सकता/सकती हूं?

इसमें, गड़बड़ियों की शिकायत की जा सकती है, Android के लिए ऐप्लिकेशन लिखे जा सकते हैं या AOSP में सोर्स कोड का योगदान दिया जा सकता है.

हम कुछ खास तरह के कोड ही स्वीकार करते हैं. उदाहरण के लिए, कोई व्यक्ति किसी अन्य ऐप्लिकेशन एपीआई का योगदान देना चाह सकता है. जैसे, C++ पर आधारित पूरा एनवायरमेंट. हम उस योगदान को अस्वीकार कर देंगे, क्योंकि Android, ऐप्लिकेशन को ART रनटाइम में चलाने का सुझाव देता है. इसी तरह, हम GPL या LGPL लाइब्रेरी जैसे योगदान स्वीकार नहीं करेंगे. ये लाइब्रेरी, लाइसेंस देने के हमारे लक्ष्यों के मुताबिक नहीं हैं.

अगर आपको सोर्स कोड में योगदान देना है, तो हमारा सुझाव है कि आप कोई भी काम शुरू करने से पहले, Android कम्यूनिटी में दिए गए चैनलों के ज़रिए हमसे संपर्क करें. ज़्यादा जानकारी के लिए, योगदान देना लेख पढ़ें.

मैं Android कमिटर कैसे बनूं?

AOSP में, असल में कमिटर की कोई सुविधा नहीं है. सभी योगदान, Gerrit नाम के वेब-आधारित सिस्टम से गुज़रते हैं. इसमें Google के कर्मचारियों के योगदान भी शामिल हैं. यह सिस्टम, Android की इंजीनियरिंग प्रोसेस का हिस्सा है. यह सिस्टम, Git सोर्स कोड मैनेजमेंट सिस्टम के साथ मिलकर काम करता है, ताकि सोर्स कोड में किए गए योगदान को आसानी से मैनेज किया जा सके.

अनुमति देने वाले व्यक्ति को, सुझाए गए सभी बदलावों की समीक्षा करनी होगी और उन्हें स्वीकार करना होगा. आम तौर पर, मंज़ूरी देने वाले लोग Google के कर्मचारी होते हैं. हालांकि, मंज़ूरी देने वाले ये लोग सभी सबमिशन के लिए ज़िम्मेदार होते हैं. भले ही, वे किसी भी सोर्स से सबमिट किए गए हों.

ज़्यादा जानकारी के लिए, पैच सबमिट करना लेख पढ़ें.