Google Play लाइसेंसिंग, नेटवर्क पर काम करने वाली सेवा है. इसकी मदद से, ऐप्लिकेशन किसी भरोसेमंद Google Play लाइसेंसिंग सर्वर से क्वेरी कर सकता है. इससे यह पता चलता है कि ऐप्लिकेशन का लाइसेंस, डिवाइस के मौजूदा उपयोगकर्ता के पास है या नहीं. लाइसेंस देने वाली सेवा, Google Play के लाइसेंसिंग सर्वर की क्षमता पर आधारित होती है. इससे यह तय किया जाता है कि किसी उपयोगकर्ता के पास किसी ऐप्लिकेशन को इस्तेमाल करने का लाइसेंस है या नहीं. अगर उपयोगकर्ता ने ऐप्लिकेशन को रिकॉर्ड किया है, तो Google Play उसे लाइसेंस वाला उपयोगकर्ता मानता है.
अनुरोध तब शुरू होता है, जब आपका ऐप्लिकेशन, Google Play क्लाइंट ऐप्लिकेशन की ओर से होस्ट की गई सेवा का अनुरोध करता है. इसके बाद, Google Play ऐप्लिकेशन, लाइसेंस देने वाले सर्वर को अनुरोध भेजता है और नतीजा पाता है. Google Play ऐप्लिकेशन, आपके ऐप्लिकेशन को नतीजा भेजता है. इसके आधार पर, ऐप्लिकेशन को आगे इस्तेमाल करने की अनुमति दी जा सकती है या नहीं.
ध्यान दें: अगर किसी ऐप्लिकेशन का वर्शन क्लोज़्ड या ओपन टेस्टिंग ट्रैक में है, तो उस ऐप्लिकेशन को डाउनलोड और इंस्टॉल करने की अनुमति वाले सभी उपयोगकर्ताओं को, ऐप्लिकेशन का लाइसेंस मिला हुआ माना जाता है. ज़्यादा जानकारी के लिए, उपयोगकर्ताओं से शुरुआती सुझाव, शिकायत या राय पाने के लिए टेस्टिंग ट्रैक का इस्तेमाल करना लेख पढ़ें.
![](https://developer.android.google.cn/static/images/google/play/licensing/licensing_arch.png?hl=hi)
पहली इमेज. आपका ऐप्लिकेशन, लाइसेंस की पुष्टि करने वाली लाइब्रेरी और Google Play क्लाइंट की मदद से लाइसेंस की जांच शुरू करता है. यह क्लाइंट, Google Play सर्वर के साथ इंटरैक्ट करता है.
ध्यान दें: पहले, किसी ऐप्लिकेशन को टेस्ट करने के लिए, पब्लिश नहीं किया गया "ड्राफ़्ट" वर्शन अपलोड किया जा सकता था. यह सुविधा अब काम नहीं करती; इसके बजाय, आपको इसे क्लोज़्ड या ओपन टेस्टिंग ट्रैक पर पब्लिश करना होगा. ज़्यादा जानकारी के लिए, ड्राफ़्ट ऐप्लिकेशन अब काम नहीं करते लेख पढ़ें.
उपयोगकर्ता की सही पहचान करने और लाइसेंस की स्थिति तय करने के लिए, लाइसेंस देने वाले सर्वर को ऐप्लिकेशन और उपयोगकर्ता के बारे में जानकारी की ज़रूरत होती है. आपका ऐप्लिकेशन और Google Play क्लाइंट, जानकारी इकट्ठा करने के लिए साथ मिलकर काम करते हैं. इसके बाद, Google Play क्लाइंट इस जानकारी को सर्वर को भेजता है.
अपने ऐप्लिकेशन में लाइसेंस जोड़ने में आपकी मदद करने के लिए, Android SDK टूल, लाइब्रेरी सोर्स का एक ऐसा सेट उपलब्ध कराता है जिसे डाउनलोड किया जा सकता है. इस सेट को अपने ऐप्लिकेशन प्रोजेक्ट में शामिल किया जा सकता है: Google Market का लाइसेंस देने वाला पैकेज. लाइसेंस की पुष्टि करने वाली लाइब्रेरी (एलवीएल), एक ऐसी लाइब्रेरी है जिसे अपने ऐप्लिकेशन में जोड़ा जा सकता है. यह लाइब्रेरी, Google Play की लाइसेंसिंग सेवा के साथ लाइसेंस से जुड़े सभी कम्यूनिकेशन को मैनेज करती है. आपके ऐप्लिकेशन में जोड़े गए एलवीएल की मदद से, आपका ऐप्लिकेशन मौजूदा उपयोगकर्ता के लिए लाइसेंस का स्टेटस पता लगा सकता है. इसके लिए, उसे बस एक तरीके को कॉल करना होगा और स्टेटस का जवाब पाने वाला कॉलबैक लागू करना होगा.
आपका ऐप्लिकेशन, लाइसेंस देने वाले सर्वर से सीधे तौर पर क्वेरी नहीं करता. इसके बजाय, लाइसेंस का अनुरोध शुरू करने के लिए, रिमोट आईपीसी के ज़रिए Google Play क्लाइंट को कॉल करता है. लाइसेंस के अनुरोध में:
- आपका ऐप्लिकेशन, इन चीज़ों की जानकारी देता है: उसका पैकेज का नाम, एक नॉन्स, जिसका इस्तेमाल बाद में सर्वर से मिले किसी भी जवाब की पुष्टि करने के लिए किया जाता है, और एक कॉलबैक, जिस पर जवाब असिंक्रोनस तरीके से दिया जा सकता है.
- Google Play क्लाइंट, उपयोगकर्ता और डिवाइस के बारे में ज़रूरी जानकारी इकट्ठा करता है. जैसे, डिवाइस के प्राइमरी Google खाते का उपयोगकर्ता नाम, आईएमएसआई, और अन्य जानकारी. इसके बाद, यह आपके ऐप्लिकेशन की ओर से, लाइसेंस की जांच का अनुरोध सर्वर पर भेजता है.
- Google Play सर्वर, उपलब्ध सभी जानकारी का इस्तेमाल करके अनुरोध का आकलन करता है. इससे, उपयोगकर्ता की पहचान को भरोसेमंद तरीके से स्थापित करने में मदद मिलती है. इसके बाद, सर्वर आपके ऐप्लिकेशन के लिए खरीदारी के रिकॉर्ड के हिसाब से उपयोगकर्ता की पहचान की जांच करता है और लाइसेंस का जवाब देता है. Google Play क्लाइंट, आईपीसी कॉलबैक के ज़रिए आपके ऐप्लिकेशन को यह जवाब देता है.
आपके पास यह चुनने का विकल्प होता है कि आपका ऐप्लिकेशन कब और कितनी बार अपने लाइसेंस की जांच करे. साथ ही, आपके पास यह कंट्रोल करने का पूरा अधिकार होता है कि वह रिस्पॉन्स को कैसे मैनेज करे, हस्ताक्षर किए गए रिस्पॉन्स डेटा की पुष्टि कैसे करे, और ऐक्सेस कंट्रोल कैसे लागू करे.
ध्यान दें कि लाइसेंस की जांच के दौरान, आपका ऐप्लिकेशन किसी भी नेटवर्क कनेक्शन को मैनेज नहीं करता है. इसके अलावा, यह Android प्लैटफ़ॉर्म में लाइसेंस से जुड़े किसी भी एपीआई का इस्तेमाल नहीं करता.
लाइसेंस के रिस्पॉन्स सुरक्षित हैं
लाइसेंस से जुड़ी हर क्वेरी की पुष्टि करने के लिए, सर्वर आरएसए पासकोड की जोड़ी का इस्तेमाल करके, लाइसेंस के जवाब के डेटा पर हस्ताक्षर करता है. यह पासकोड सिर्फ़ Google Play के सर्वर और आपके बीच शेयर किया जाता है.
लाइसेंस देने वाली सेवा, हर ऐप्लिकेशन के लिए एक लाइसेंस पासकोड जोड़ी जनरेट करती है. साथ ही, Play Console में आपके ऐप्लिकेशन के सेवाएं और एपीआई पेज पर सार्वजनिक पासकोड दिखाती है. आपको Play Console से सार्वजनिक कुंजी कॉपी करनी होगी और उसे अपने ऐप्लिकेशन के सोर्स कोड में जोड़ना होगा. सर्वर, निजी कुंजी को अपने पास सुरक्षित रखता है और उस खाते से पब्लिश किए गए ऐप्लिकेशन के लिए, लाइसेंस के जवाबों पर हस्ताक्षर करने के लिए इसका इस्तेमाल करता है.
जब आपके ऐप्लिकेशन को हस्ताक्षर किया गया जवाब मिलता है, तो वह डेटा की पुष्टि करने के लिए, एम्बेड की गई सार्वजनिक कुंजी का इस्तेमाल करता है. लाइसेंस देने वाली सेवा में सार्वजनिक पासकोड क्रिप्टोग्राफ़ी का इस्तेमाल करने से, ऐप्लिकेशन उन जवाबों का पता लगा सकता है जिनमें बदलाव किया गया है या जिन्हें स्पूफ़ किया गया है.
लाइसेंस की पुष्टि करने में समस्याएं
Android SDK टूल, Google Market Licensing पैकेज नाम का एक डाउनलोड किया जा सकने वाला पैकेज उपलब्ध कराता है. इसमें लाइसेंस की पुष्टि करने वाली लाइब्रेरी (LVL) शामिल होती है. एलवीएल की मदद से, अपने ऐप्लिकेशन में लाइसेंस जोड़ने की प्रोसेस को आसानी से पूरा किया जा सकता है. साथ ही, इससे यह पक्का करने में मदद मिलती है कि आपके ऐप्लिकेशन को ज़्यादा सुरक्षित और बेहतर तरीके से लागू किया जा सके. LVL, इंटरनल क्लास उपलब्ध कराता है. ये क्लास, लाइसेंस क्वेरी के ज़्यादातर स्टैंडर्ड ऑपरेशन को मैनेज करती हैं. जैसे, लाइसेंस का अनुरोध शुरू करने के लिए Google Play क्लाइंट से संपर्क करना और जवाबों की पुष्टि करना. इसमें ऐसे इंटरफ़ेस भी होते हैं जिनकी मदद से, लाइसेंसिंग नीति तय करने और अपने ऐप्लिकेशन के हिसाब से ऐक्सेस मैनेज करने के लिए, आसानी से कस्टम कोड प्लग इन किया जा सकता है. LVL के मुख्य इंटरफ़ेस ये हैं:
Policy
- आपके लागू करने के तरीके से यह तय होता है कि ऐप्लिकेशन को ऐक्सेस करने की अनुमति दी जाए या नहीं. यह तय करने के लिए, सर्वर से मिले लाइसेंस के जवाब और उपलब्ध किसी भी अन्य डेटा (जैसे, आपके ऐप्लिकेशन से जुड़े बैकएंड सर्वर से मिले डेटा) का इस्तेमाल किया जाता है. लाइसेंस के जवाब के अलग-अलग फ़ील्ड का आकलन किया जा सकता है और ज़रूरत पड़ने पर अन्य पाबंदियां भी लागू की जा सकती हैं. इसे लागू करने से, आपको लाइसेंस की जांच से जुड़ी गड़बड़ियों को मैनेज करने में भी मदद मिलती है. जैसे, नेटवर्क से जुड़ी गड़बड़ियां.
LicenseCheckerCallback
- आपके लागू करने की सुविधा, लाइसेंस के जवाब को मैनेज करने वाले
Policy
ऑब्जेक्ट के नतीजे के आधार पर, ऐप्लिकेशन के ऐक्सेस को मैनेज करती है. आपके लागू किए गए तरीके से, ऐक्सेस को किसी भी ज़रूरी तरीके से मैनेज किया जा सकता है. जैसे, यूज़र इंटरफ़ेस (यूआई) में लाइसेंस का नतीजा दिखाना या उपयोगकर्ता को ऐप्लिकेशन खरीदने के लिए निर्देश देना (अगर फ़िलहाल लाइसेंस नहीं है).
Policy
का इस्तेमाल शुरू करने में आपकी मदद करने के लिए, एलवीएल में पूरी तरह से लागू किए गए दो Policy
दिए गए हैं. इनका इस्तेमाल, बिना किसी बदलाव के या अपनी ज़रूरतों के हिसाब से किया जा सकता है:
ServerManagedPolicy
- एक सुविधाजनक
Policy
जो लाइसेंस देने वाले सर्वर की दी गई सेटिंग का इस्तेमाल करके, रिस्पॉन्स कैश मेमोरी में सेव करने की सुविधा को मैनेज करता है. साथ ही, डिवाइस के ऑफ़लाइन होने पर (जैसे, जब उपयोगकर्ता हवाई जहाज़ में हो) ऐप्लिकेशन को ऐक्सेस करता है. ज़्यादातर ऐप्लिकेशन के लिए,ServerManagedPolicy
का इस्तेमाल करने का सुझाव दिया जाता है. StrictPolicy
- पाबंदी वाला
Policy
, जो रिस्पॉन्स का कोई डेटा कैश मेमोरी में सेव नहीं करता. साथ ही, ऐप्लिकेशन को सिर्फ़ तब ऐक्सेस करने की अनुमति देता है, जब सर्वर से लाइसेंस वाला रिस्पॉन्स मिलता है.
LVL, Android SDK टूल के डाउनलोड किए जा सकने वाले पैकेज के तौर पर उपलब्ध है. इस पैकेज में LVL और एक उदाहरण ऐप्लिकेशन, दोनों शामिल होते हैं. इससे पता चलता है कि लाइब्रेरी को आपके ऐप्लिकेशन के साथ कैसे इंटिग्रेट किया जाना चाहिए और आपके ऐप्लिकेशन को रिस्पॉन्स डेटा, यूज़र इंटरैक्शन, और गड़बड़ी की स्थितियों को कैसे मैनेज करना चाहिए.
LVL सोर्स, Android लाइब्रेरी प्रोजेक्ट के तौर पर उपलब्ध कराए जाते हैं. इसका मतलब है कि लाइब्रेरी सोर्स का एक सेट बनाए रखा जा सकता है और उसे कई ऐप्लिकेशन में शेयर किया जा सकता है. SDK टूल की मदद से, पूरी तरह से टेस्ट करने का एनवायरमेंट भी उपलब्ध है. इससे, ऐप्लिकेशन को पब्लिश करने से पहले, उनमें लाइसेंस लागू करने की सुविधा को डेवलप और टेस्ट किया जा सकता है. भले ही, आपके पास किसी डिवाइस का ऐक्सेस न हो.
ज़रूरी शर्तें और सीमाएं
Google Play की लाइसेंस देने वाली सेवा को इस तरह से डिज़ाइन किया गया है कि आप Google Play पर पब्लिश किए जाने वाले ऐप्लिकेशन पर, लाइसेंस कंट्रोल लागू कर सकें. इस सेवा को इस तरह से डिज़ाइन नहीं किया गया है कि आप उन ऐप्लिकेशन का ऐक्सेस कंट्रोल कर सकें जिन्हें Google Play पर पब्लिश नहीं किया गया है या जो ऐसे डिवाइसों पर चलते हैं जिनमें Google Play क्लाइंट उपलब्ध नहीं है.
अपने ऐप्लिकेशन में लाइसेंस की सुविधा लागू करते समय, इन बातों का ध्यान रखें:
- कोई ऐप्लिकेशन इस सेवा का इस्तेमाल सिर्फ़ तब कर सकता है, जब उसके होस्ट डिवाइस पर Google Play क्लाइंट इंस्टॉल हो और डिवाइस पर Android 1.5 (एपीआई लेवल 3) या इसके बाद का वर्शन चल रहा हो.
- लाइसेंस की जांच करने के लिए, लाइसेंस देने वाले सर्वर को नेटवर्क से ऐक्सेस किया जा सकता हो. लाइसेंस को कैश मेमोरी में सेव करने की सुविधा लागू की जा सकती है, ताकि नेटवर्क कनेक्शन न होने पर भी अपने ऐप्लिकेशन को ऐक्सेस किया जा सके.
- आपके ऐप्लिकेशन के लाइसेंस कंट्रोल की सुरक्षा, आखिरकार आपके लागू करने के डिज़ाइन पर निर्भर करती है. यह सेवा, लाइसेंस की सुरक्षित तरीके से जांच करने के लिए ज़रूरी चीज़ें उपलब्ध कराती है. हालांकि, लाइसेंस को लागू करने और मैनेज करने का फ़ैसला आपका होता है. यहां दिए गए दस्तावेज़ों में बताए गए सबसे सही तरीकों को अपनाकर, यह पक्का किया जा सकता है कि आपका लागू किया गया तरीका सुरक्षित हो.
- किसी ऐप्लिकेशन में लाइसेंस जोड़ने से, उस डिवाइस पर ऐप्लिकेशन के काम करने के तरीके पर कोई असर नहीं पड़ता जिस पर Google Play उपलब्ध नहीं है.
- बिना किसी शुल्क के उपलब्ध ऐप्लिकेशन के लिए, लाइसेंस कंट्रोल लागू किए जा सकते हैं. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब APK एक्सपैंशन फ़ाइलें उपलब्ध कराने के लिए इस सेवा का इस्तेमाल किया जा रहा हो.
कॉपीराइट की सुरक्षा के लिए बदलाव
Google Play लाइसेंसिंग, आपके ऐप्लिकेशन के ऐक्सेस को कंट्रोल करने के लिए, एक सुविधाजनक और सुरक्षित तरीका है. यह, कॉपी प्रोटेक्शन के उस तरीके की जगह ले लेता है जो पहले Google Play पर उपलब्ध था. हालांकि, अब यह काम नहीं करता. साथ ही, यह आपके ऐप्लिकेशन को ज़्यादा से ज़्यादा लोगों तक पहुंचाने में मदद करता है.
लाइसेंस की मदद से, लाइसेंस पर आधारित मॉडल का इस्तेमाल किया जा सकता है. यह मॉडल, उन सभी डिवाइसों पर लागू किया जा सकता है जिन पर Google Play का ऐक्सेस है. ऐक्सेस, होस्ट डिवाइस की विशेषताओं पर निर्भर नहीं करता. यह Google Play पर मौजूद आपके ऐप्लिकेशन (ऐप्लिकेशन के सार्वजनिक पासकोड के ज़रिए) और लाइसेंस देने की आपकी तय की गई नीति पर निर्भर करता है. आपके ऐप्लिकेशन को किसी भी डिवाइस पर, किसी भी स्टोरेज में इंस्टॉल और मैनेज किया जा सकता है. जैसे, एसडी कार्ड.
लाइसेंस की कोई भी सुविधा, बिना अनुमति के होने वाले सभी तरह के इस्तेमाल को पूरी तरह से रोक नहीं सकती. हालांकि, लाइसेंस की सेवा की मदद से, डिवाइस के लॉक या अनलॉक होने के बावजूद, काम करने वाले सभी डिवाइसों पर सामान्य इस्तेमाल के ज़्यादातर तरीकों के लिए ऐक्सेस को कंट्रोल किया जा सकता है.
अपने ऐप्लिकेशन में ऐप्लिकेशन का लाइसेंस देने की सुविधा जोड़ने के लिए, लाइसेंस देने की सुविधा सेट अप करना पर जाएं.