इस दस्तावेज़ में, Android Open Source Platform (AOSP) के बारे में सामान्य सवालों के जवाब दिए गए हैं.
android-latest-release के बारे में जानकारी
मैं aosp-main में सबमिट क्यों नहीं कर पा रहा/रही हूं?
aosp-main
में सबमिट नहीं किया जा सकता, क्योंकि अब इस ब्रांच को सिर्फ़ पढ़ने के लिए सेट कर दिया गया है.
मुझे AOSP में बदलावों के सुझाव कहां देने चाहिए?
आपको android-latest-release
में नए बदलावों का सुझाव देना चाहिए. इसके लिए, Repo का इस्तेमाल करते समय या सीधे तौर पर 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
manifest में बताई गई डिफ़ॉल्ट रीविज़न ब्रांच के साथ सिंक करें.
ब्रांच सिंक करने के बारे में ज़्यादा जानने के लिए, Repo क्लाइंट शुरू करना लेख पढ़ें.
क्या android-latest-release का कोड, aosp-main में मर्ज किया जाएगा?
नहीं, कोड को aosp-main
में मर्ज नहीं किया जाएगा. 27 मार्च, 2025 से यह सिर्फ़ पढ़ने के लिए उपलब्ध है.
अगली रिलीज़ के लिए कोड कहां पुश किया जाता है?
Google, अगली रिलीज़ के लिए कोड को सबसे नई सार्वजनिक रिलीज़ ब्रांच में पुश करता है. साथ ही, android-latest-release
मेनिफ़ेस्ट को अपडेट करता है, ताकि वह उस ब्रांच की ओर इशारा करे.
क्या बदलाव का मेरा अनुरोध, android-latest-release ब्रांच से इंटरनल Gerrit में चेरीपिक किया जाएगा?
सुझाया गया बदलाव अपलोड करने के बाद, Google उसकी समीक्षा करेगा. अगर उसे स्वीकार कर लिया जाता है, तो Google उसे Gerrit में शामिल कर लेगा.
मुझे कैसे पता चलेगा कि बदलाव करने का मेरा अनुरोध स्वीकार कर लिया गया है?
स्वीकार किए गए और चुने गए बदलाव, Android होस्ट पर रिलीज़ ब्रांच में आने वाले समय में पुश किए जाएंगे. इन्हें android-latest-release
का इस्तेमाल करके, रेपो के साथ सिंक किया जा सकता है.
प्रस्तावित बदलाव को स्वीकार या अस्वीकार किए जाने पर, सूचना पाने का कोई तरीका नहीं है.
बाहरी योगदानकर्ता के सुझाव देने से लेकर, उसे रिलीज़ की नई ब्रांच में मर्ज करने तक का सामान्य वर्कफ़्लो क्या है?
बाहरी योगदानकर्ता,
android-latest-release
में बदलाव का सुझाव देता है (Repo का इस्तेमाल करते समय) याandroid-latest-release
मेनिफ़ेस्ट में बताई गई सबसे नई रिलीज़ ब्रांच में बदलाव का सुझाव देता है (Git का सीधे तौर पर इस्तेमाल करते समय).Google, बदलाव की समीक्षा करता है. अगर बदलाव:
स्वीकार किया गया. Google, उस बदलाव को चुनता है और उसे इंटरनल डेवलपमेंट ब्रांच में मर्ज कर देता है.
बदलाव स्वीकार नहीं किया गया. Google, बदलाव को अपनी मर्ज़ी से नहीं चुनता.
बाहरी योगदानकर्ता,
android-latest-release
में अपने बदलाव की जांच करता है.
अगर मुझे सुझाया गया बदलाव अब नहीं चाहिए, तो क्या होगा?
अगर आपको बदलाव के सुझाव की अब ज़रूरत नहीं है, आपको बदलाव को मर्ज नहीं करना है या आपको पता है कि Google ने पहले ही बदलाव की समीक्षा कर ली है, तो बदलाव को छोड़ दें. इससे यह Android होस्ट पर, बदलाव के सुझाव के इतिहास में बना रहेगा.
ओपन-सोर्स सवाल
Google ने Android का सोर्स कोड क्यों खोला?
Google ने AOSP को मोबाइल ऐप्लिकेशन लॉन्च करने के हमारे अनुभवों के आधार पर शुरू किया था. हम यह पक्का करना चाहते थे कि कैरियर, ओईएम, और डेवलपर के लिए हमेशा एक ओपन प्लैटफ़ॉर्म उपलब्ध रहे, ताकि वे अपने नए आइडिया को हकीकत में बदल सकें. हम किसी भी तरह की समस्या से बचना चाहते थे, ताकि इंडस्ट्री का कोई भी खिलाड़ी, किसी दूसरे खिलाड़ी के इनोवेशन को सीमित या कंट्रोल न कर सके. 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 का सोर्स कोड ओपन किया है, ताकि कोई भी व्यक्ति अपनी ज़रूरतों के हिसाब से सॉफ़्टवेयर में बदलाव कर सके और उसे डिस्ट्रिब्यूट कर सके.
Android प्रॉडक्ट को डेवलप करने के लिए, Google की रणनीति क्या है?
हम प्रतिस्पर्धी मार्केटप्लेस में बेहतरीन डिवाइस लॉन्च करते हैं. इसके बाद, हम अपने मुख्य प्लैटफ़ॉर्म में किए गए नए बदलावों और सुधारों को अगले वर्शन के तौर पर शामिल करते हैं.
इसका मतलब यह है कि Android इंजीनियरिंग टीम, "फ़्लैगशिप" डिवाइसों की कम संख्या पर फ़ोकस करती है. साथ ही, उन प्रॉडक्ट लॉन्च को सपोर्ट करने के लिए, Android सॉफ़्टवेयर का अगला वर्शन डेवलप करती है. इन फ़्लैगशिप डिवाइसों में, प्रॉडक्ट से जुड़े जोखिमों को कम किया जाता है. साथ ही, ये ओईएम कम्यूनिटी के लिए एक नया रास्ता खोलते हैं. इसके बाद, ओईएम कम्यूनिटी के ज़्यादातर डिवाइसों में नई सुविधाओं का इस्तेमाल किया जाता है. इस तरह, हम यह पक्का करते हैं कि Android प्लैटफ़ॉर्म, असल दुनिया के डिवाइसों की ज़रूरतों के हिसाब से विकसित हो.
Android सॉफ़्टवेयर कैसे डेवलप किया जाता है?
Android के हर प्लैटफ़ॉर्म वर्शन (जैसे कि 1.5 या 8.1) के लिए, ओपन-सोर्स ट्री में एक ब्रांच होती है. सबसे नई ब्रांच को मौजूदा स्टेबल ब्रांच वर्शन माना जाता है. android-latest-release
मेनिफ़ेस्ट इसी वर्शन की ओर इशारा करता है.
यह वह ब्रांच है जिसे मैन्युफ़ैक्चरर अपने डिवाइसों पर पोर्ट करते हैं. इस ब्रांच को हमेशा रिलीज़ के लिए तैयार रखा जाता है.
आखिर में, Google एक फ़्लैगशिप डिवाइस डेवलप करने के साथ-साथ, Android प्लैटफ़ॉर्म के अगले वर्शन पर भी काम करता है.
Android के कुछ हिस्सों को निजी तौर पर क्यों डेवलप किया जाता है?
आम तौर पर, किसी डिवाइस को बाज़ार में लॉन्च करने में एक साल से ज़्यादा समय लगता है. इसके अलावा, डिवाइस बनाने वाली कंपनियां भी अपने डिवाइसों में नया सॉफ़्टवेयर उपलब्ध कराना चाहती हैं. वहीं, ऐप्लिकेशन लिखते समय डेवलपर को प्लैटफ़ॉर्म के नए वर्शन को लगातार ट्रैक करने की ज़रूरत नहीं होती. दोनों ग्रुप के बीच, प्रॉडक्ट शिप करने और पीछे न रहने की चिंता बनी रहती है.
इस समस्या को हल करने के लिए, Android के अगले वर्शन के कुछ हिस्सों को एक प्राइवेट ब्रांच में डेवलप किया गया है. इनमें कोर प्लैटफ़ॉर्म एपीआई भी शामिल हैं. ये एपीआई, Android के अगले वर्शन का हिस्सा हैं. हमारा मकसद, प्लैटफ़ॉर्म का अगला वर्शन बनाते समय, Android के सोर्स कोड के मौजूदा स्टेबल वर्शन पर ध्यान देना है. इससे डेवलपर और ओईएम, एक ही वर्शन का इस्तेमाल कर सकते हैं. इसके लिए, उन्हें आने वाले समय में किए जाने वाले काम को ट्रैक करने की ज़रूरत नहीं होती.
सोर्स कोड कब रिलीज़ किए जाते हैं?
जब वे तैयार हों. सोर्स कोड रिलीज़ करना एक मुश्किल प्रोसेस है. Android के कुछ हिस्सों, जैसे कि कर्नल को ओपन सोर्स के तौर पर डेवलप किया जाता है. साथ ही, इसका सोर्स कोड हमेशा उपलब्ध रहता है. अन्य हिस्सों को पहले प्राइवेट ट्री में डेवलप किया जाता है. इसके बाद, जब प्लैटफ़ॉर्म का अगला वर्शन तैयार हो जाता है, तब उस सोर्स कोड को रिलीज़ किया जाता है.
कुछ रिलीज़ में, मुख्य प्लैटफ़ॉर्म एपीआई काफ़ी पहले तैयार हो जाते हैं. इससे हम डिवाइस की रिलीज़ से पहले, सोर्स कोड को शुरुआती तौर पर देख सकते हैं. अन्य रिलीज़ में, ऐसा नहीं किया जा सकता. हम प्लैटफ़ॉर्म का सोर्स कोड तब रिलीज़ करते हैं, जब हमें लगता है कि वर्शन स्टेबल है और डेवलपमेंट प्रोसेस इसकी अनुमति देती है.
Android के नए वर्शन का सोर्स कोड रिलीज़ करने में क्या-क्या शामिल है?
Android प्लैटफ़ॉर्म के नए वर्शन का सोर्स कोड रिलीज़ करना एक अहम प्रोसेस है. सबसे पहले, सॉफ़्टवेयर को किसी डिवाइस के लिए सिस्टम इमेज में बनाया जाता है. इसके बाद, इसे अलग-अलग तरह के सर्टिफ़िकेट दिए जाते हैं. इनमें, उन देशों/इलाकों के लिए सरकार से मिलने वाला रेगुलेटरी सर्टिफ़िकेट भी शामिल है जहां फ़ोन लॉन्च किए जाएंगे. कोड की जांच ऑपरेटर भी करते हैं. यह प्रोसेस का एक अहम चरण है, क्योंकि इससे सॉफ़्टवेयर में मौजूद बग का पता लगाने में मदद मिलती है.
जब रेगुलेटर और ऑपरेटर, रिलीज़ को मंज़ूरी दे देते हैं, तो डिवाइस बनाने वाली कंपनी बड़े पैमाने पर डिवाइसों का प्रोडक्शन शुरू कर देती है. साथ ही, हम सोर्स कोड रिलीज़ करना शुरू कर देते हैं.
बड़े पैमाने पर प्रोडक्शन के साथ-साथ, Google की टीम ओपन-सोर्स रिलीज़ तैयार करने के लिए कई कोशिशें शुरू करती है. इन कोशिशों में, फ़ाइनल एपीआई में बदलाव करना, दस्तावेज़ को अपडेट करना (जैसे, ज़रूरी शर्तें पूरी करने से जुड़ी टेस्टिंग के दौरान किए गए किसी भी बदलाव को दिखाना), नए वर्शन के लिए एसडीके तैयार करना, और प्लैटफ़ॉर्म के साथ काम करने से जुड़ी जानकारी लॉन्च करना शामिल है.
हमारी कानूनी टीम, कोड को ओपन सोर्स में रिलीज़ करने के लिए फ़ाइनल साइन-ऑफ़ करती है. ओपन-सोर्स में योगदान देने वाले लोगों को, योगदान देने वालों के लिए कानूनी समझौते पर हस्ताक्षर करना होता है. इससे यह पुष्टि होती है कि उनके योगदान पर बौद्धिक संपत्ति का मालिकाना हक उनका है. इसी तरह, Google को यह पुष्टि करनी होगी कि सोर्स को योगदान देने की अनुमति है.
बड़े पैमाने पर प्रॉडक्ट का उत्पादन शुरू होने के बाद, सॉफ़्टवेयर रिलीज़ करने की प्रोसेस में आम तौर पर एक महीना लगता है. इसलिए, सोर्स कोड रिलीज़ करने की प्रोसेस अक्सर उसी समय होती है जब डिवाइस उपयोगकर्ताओं तक पहुंचते हैं.
AOSP, Android Compatibility Program से किस तरह जुड़ा है?
AOSP, Android सॉफ़्टवेयर को बनाए रखता है और नए वर्शन डेवलप करता है. यह ओपन-सोर्स है. इसलिए, इस सॉफ़्टवेयर का इस्तेमाल किसी भी मकसद के लिए किया जा सकता है. इसमें ऐसे डिवाइसों को डेवलप करना भी शामिल है जो एक ही सोर्स पर आधारित अन्य डिवाइसों के साथ काम नहीं करते.
Android Compatibility Program का काम, Android के ऐसे बुनियादी वर्शन को तय करना है जो डेवलपर के बनाए गए तीसरे पक्ष के ऐप्लिकेशन के साथ काम करता हो. Android के साथ काम करने वाले डिवाइस, Android नेटवर्क में शामिल हो सकते हैं. इसमें Google Play भी शामिल है. जो डिवाइस, Android के साथ काम करने की ज़रूरी शर्तों को पूरा नहीं करते वे इस नेटवर्क में शामिल नहीं हो सकते.
दूसरे शब्दों में कहें, तो Android Compatibility Program के ज़रिए हम Android के साथ काम करने वाले डिवाइसों को उन डिवाइसों से अलग करते हैं जो सिर्फ़ सोर्स कोड के डेरिवेटिव चलाते हैं. हम Android के सोर्स कोड के सभी इस्तेमाल का स्वागत करते हैं. हालांकि, Android के इकोसिस्टम में शामिल होने के लिए, यह ज़रूरी है कि प्रोग्राम के ज़रिए किसी डिवाइस को Android के साथ काम करने वाले डिवाइस के तौर पर पहचाना जाए.
मैं Android में कैसे योगदान दे सकता/सकती हूं?
बग की शिकायत की जा सकती है, Android के लिए ऐप्लिकेशन लिखे जा सकते हैं या AOSP में सोर्स कोड का योगदान दिया जा सकता है.
हम कुछ ही तरह के कोड स्वीकार करते हैं. उदाहरण के लिए, कोई व्यक्ति किसी दूसरे ऐप्लिकेशन एपीआई का योगदान करना चाहेगा. जैसे, पूरी तरह से C++ पर आधारित एनवायरमेंट. हम उस योगदान को अस्वीकार कर देंगे, क्योंकि Android, ऐप्लिकेशन को एआरटी रनटाइम में चलाने के लिए बढ़ावा देता है. इसी तरह, हम GPL या LGPL लाइब्रेरी जैसे ऐसे योगदान स्वीकार नहीं करेंगे जो लाइसेंसिंग से जुड़े हमारे लक्ष्यों के मुताबिक नहीं हैं.
हमारा सुझाव है कि सोर्स कोड में योगदान देने में दिलचस्पी रखने वाले लोग, Android कम्यूनिटी में दिए गए चैनलों के ज़रिए हमसे संपर्क करें. ऐसा कोई भी काम शुरू करने से पहले करें. ज़्यादा जानकारी के लिए, योगदान करना लेख पढ़ें.
मैं Android कमिटर कैसे बनूं?
AOSP में, कमिटर की कोई खास भूमिका नहीं होती. सभी योगदान (इनमें Google के कर्मचारियों के योगदान भी शामिल हैं) Gerrit नाम के वेब-आधारित सिस्टम से होकर गुज़रते हैं. यह सिस्टम, Android इंजीनियरिंग प्रोसेस का हिस्सा है. यह सिस्टम, Git सोर्स कोड मैनेजमेंट सिस्टम के साथ मिलकर काम करता है. इससे सोर्स कोड के योगदान को आसानी से मैनेज किया जा सकता है.
अनुमति देने वाले व्यक्ति को, सुझाए गए सभी बदलावों की समीक्षा करनी होगी और उन्हें स्वीकार करना होगा. आम तौर पर, मंज़ूरी देने वाले लोग Google के कर्मचारी होते हैं. हालांकि, मंज़ूरी देने वाले ये लोग, सभी सबमिशन के लिए ज़िम्मेदार होते हैं. भले ही, सबमिशन कहीं से भी किया गया हो.
ज़्यादा जानकारी के लिए, पैच सबमिट करना लेख पढ़ें.