लाइसेंस देने के बारे में खास जानकारी

Google Play Licensing, नेटवर्क पर आधारित एक सेवा है. इसकी मदद से, कोई ऐप्लिकेशन, Google Play के भरोसेमंद लाइसेंसिंग सर्वर से क्वेरी कर सकता है. इससे यह पता चलता है कि ऐप्लिकेशन को मौजूदा डिवाइस के उपयोगकर्ता के लिए लाइसेंस दिया गया है या नहीं. लाइसेंस देने वाली सेवा, Google Play के लाइसेंसिंग सर्वर की इस क्षमता पर आधारित होती है कि वह यह तय कर सके कि किसी उपयोगकर्ता के पास किसी ऐप्लिकेशन को इस्तेमाल करने का लाइसेंस है या नहीं. Google Play, किसी उपयोगकर्ता को लाइसेंस वाला उपयोगकर्ता तब मानता है, जब वह ऐप्लिकेशन का खरीदार हो.

अनुरोध तब शुरू होता है, जब आपका ऐप्लिकेशन, Google Play क्लाइंट ऐप्लिकेशन पर होस्ट की गई किसी सेवा के लिए अनुरोध करता है. इसके बाद, Google Play ऐप्लिकेशन, लाइसेंसिंग सर्वर को अनुरोध भेजता है और नतीजे पाता है. Google Play ऐप्लिकेशन, आपके ऐप्लिकेशन को नतीजे भेजता है. इसके बाद, आपके पास यह तय करने का विकल्प होता है कि ऐप्लिकेशन को आगे इस्तेमाल करने की अनुमति देनी है या नहीं.

ध्यान दें: अगर किसी ऐप्लिकेशन का कोई वर्शन, क्लोज़्ड या ओपन टेस्टिंग ट्रैक में है, तो उस ऐप्लिकेशन को डाउनलोड और इंस्टॉल करने की अनुमति रखने वाले सभी लोगों को, ऐप्लिकेशन का लाइसेंस रखने वाला उपयोगकर्ता माना जाता है. ज़्यादा जानकारी के लिए, उपयोगकर्ताओं से शुरुआती सुझाव/राय पाने के लिए टेस्टिंग ट्रैक का इस्तेमाल करना लेख पढ़ें.

पहली इमेज. आपका ऐप्लिकेशन, License Verification Library और Google Play क्लाइंट के ज़रिए लाइसेंस की जांच शुरू करता है. Google Play क्लाइंट, Google Play सर्वर के साथ कम्यूनिकेशन को मैनेज करता है.

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

उपयोगकर्ता की पहचान करने और लाइसेंस की स्थिति का पता लगाने के लिए, लाइसेंसिंग सर्वर को ऐप्लिकेशन और उपयोगकर्ता के बारे में जानकारी चाहिए. आपका ऐप्लिकेशन और Google Play क्लाइंट, जानकारी इकट्ठा करने के लिए एक साथ काम करते हैं. इसके बाद, Google Play क्लाइंट इस जानकारी को सर्वर को भेजता है.

Android SDK, आपके ऐप्लिकेशन में लाइसेंसिंग की सुविधा जोड़ने में आपकी मदद करता है. इसके लिए, यह लाइब्रेरी सोर्स का एक डाउनलोड किया जा सकने वाला सेट उपलब्ध कराता है. इसे अपने ऐप्लिकेशन प्रोजेक्ट में शामिल किया जा सकता है: Google Market Licensing पैकेज. लाइसेंस की पुष्टि करने वाली लाइब्रेरी (एलवीएल) एक ऐसी लाइब्रेरी है जिसे अपने ऐप्लिकेशन में जोड़ा जा सकता है. यह Google Play की लाइसेंसिंग सेवा के साथ लाइसेंस से जुड़े सभी कम्यूनिकेशन को मैनेज करती है. अपने ऐप्लिकेशन में एलवीएल जोड़ने पर, आपका ऐप्लिकेशन मौजूदा उपयोगकर्ता के लिए लाइसेंस के स्टेटस का पता लगा सकता है. इसके लिए, उसे सिर्फ़ एक तरीके को कॉल करना होगा और एक कॉलबैक लागू करना होगा, जो स्टेटस रिस्पॉन्स को स्वीकार करता है.

आपका ऐप्लिकेशन, लाइसेंस देने वाले सर्वर से सीधे तौर पर क्वेरी नहीं करता है. इसके बजाय, यह लाइसेंस के अनुरोध को शुरू करने के लिए, रिमोट आईपीसी पर Google Play क्लाइंट को कॉल करता है. लाइसेंस के अनुरोध में:

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

आपके पास यह चुनने का विकल्प होता है कि आपका ऐप्लिकेशन, लाइसेंस की जांच कब और कितनी बार करे. साथ ही, आपके पास यह कंट्रोल करने का पूरा अधिकार होता है कि ऐप्लिकेशन, जवाब को कैसे मैनेज करे, हस्ताक्षर किए गए जवाब के डेटा की पुष्टि कैसे करे, और ऐक्सेस कंट्रोल को कैसे लागू करे.

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

लाइसेंस के जवाब सुरक्षित होते हैं

हर लाइसेंस क्वेरी की पुष्टि करने के लिए, सर्वर लाइसेंस रिस्पॉन्स डेटा पर हस्ताक्षर करता है. इसके लिए, आरएसए कुंजी के ऐसे जोड़े का इस्तेमाल किया जाता है जिसे सिर्फ़ Google Play सर्वर और आपके साथ शेयर किया जाता है.

लाइसेंस देने की सेवा, हर ऐप्लिकेशन के लिए लाइसेंस देने वाली कुंजी का एक पेयर जनरेट करती है. साथ ही, Play Console में आपके ऐप्लिकेशन के सेवाएं और एपीआई पेज पर सार्वजनिक कुंजी दिखाती है. आपको Play Console से सार्वजनिक कुंजी कॉपी करके, उसे अपने ऐप्लिकेशन के सोर्स कोड में शामिल करना होगा. सर्वर, निजी कुंजी को अपने पास रखता है और इसका इस्तेमाल, उस खाते से पब्लिश किए गए ऐप्लिकेशन के लाइसेंस के जवाबों पर हस्ताक्षर करने के लिए करता है.

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

लाइसेंस की पुष्टि करने वाली लाइब्रेरी

Android SDK, डाउनलोड किया जा सकने वाला एक पैकेज उपलब्ध कराता है. इसे Google Market Licensing पैकेज कहा जाता है. इसमें License Verification Library (LVL) शामिल होती है. एलवीएल, आपके ऐप्लिकेशन में लाइसेंसिंग जोड़ने की प्रोसेस को बहुत आसान बना देता है. साथ ही, यह आपके ऐप्लिकेशन के लिए ज़्यादा सुरक्षित और भरोसेमंद तरीके से लाइसेंसिंग लागू करने में मदद करता है. एलवीएल, इंटरनल क्लास उपलब्ध कराता है. ये क्लास, लाइसेंस की क्वेरी से जुड़ी ज़्यादातर स्टैंडर्ड कार्रवाइयों को मैनेज करती हैं. जैसे, लाइसेंस का अनुरोध शुरू करने के लिए Google Play क्लाइंट से संपर्क करना, जवाबों की पुष्टि करना, और उन्हें मान्य करना. यह ऐसे इंटरफ़ेस भी दिखाता है जिनकी मदद से, लाइसेंसिंग की नीति तय करने और अपने ऐप्लिकेशन की ज़रूरत के हिसाब से ऐक्सेस मैनेज करने के लिए, कस्टम कोड को आसानी से प्लग इन किया जा सकता है. मुख्य एलवीएल इंटरफ़ेस ये हैं:

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

Policy का इस्तेमाल शुरू करने में आपकी मदद करने के लिए, LVL दो पूरी तरह से लागू किए गए Policy उपलब्ध कराता है. इनका इस्तेमाल बिना किसी बदलाव के किया जा सकता है या अपनी ज़रूरतों के हिसाब से इनमें बदलाव किया जा सकता है:

ServerManagedPolicy
एक फ़्लेक्सिबल Policy जो लाइसेंसिंग सर्वर की दी गई सेटिंग का इस्तेमाल करता है. इससे रिस्पॉन्स कैश मेमोरी को मैनेज किया जा सकता है. साथ ही, डिवाइस के ऑफ़लाइन होने पर ऐप्लिकेशन को ऐक्सेस किया जा सकता है. जैसे, जब उपयोगकर्ता हवाई जहाज़ में हो. ज़्यादातर ऐप्लिकेशन के लिए, ServerManagedPolicy का इस्तेमाल करने का सुझाव दिया जाता है.
StrictPolicy
एक पाबंदी वाला Policy, जो किसी भी जवाब के डेटा को कैश मेमोरी में सेव नहीं करता है. साथ ही, ऐप्लिकेशन को सिर्फ़ तब ऐक्सेस करने की अनुमति देता है, जब सर्वर लाइसेंस वाला जवाब देता है.

LVL, Android SDK के डाउनलोड किए जा सकने वाले पैकेज के तौर पर उपलब्ध है. इस पैकेज में एलवीएल और एक उदाहरण ऐप्लिकेशन, दोनों शामिल हैं. इससे पता चलता है कि लाइब्रेरी को आपके ऐप्लिकेशन के साथ कैसे इंटिग्रेट किया जाना चाहिए. साथ ही, यह भी पता चलता है कि आपका ऐप्लिकेशन, जवाब के डेटा, यूज़र इंटरैक्शन, और गड़बड़ी की स्थितियों को कैसे मैनेज करेगा.

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

ज़रूरी शर्तें और सीमाएं

Google Play की लाइसेंस देने वाली सेवा को इस तरह से डिज़ाइन किया गया है कि इसकी मदद से, Google Play पर पब्लिश किए जाने वाले ऐप्लिकेशन के लिए लाइसेंस कंट्रोल लागू किए जा सकें. इस सेवा को इस तरह से डिज़ाइन नहीं किया गया है कि इसकी मदद से, उन ऐप्लिकेशन के ऐक्सेस को कंट्रोल किया जा सके जिन्हें Google Play के ज़रिए पब्लिश नहीं किया गया है. इसके अलावा, इस सेवा को उन डिवाइसों पर भी इस्तेमाल नहीं किया जा सकता जिन पर Google Play क्लाइंट उपलब्ध नहीं है.

अपने ऐप्लिकेशन में लाइसेंसिंग की सुविधा लागू करते समय, इन बातों का ध्यान रखें:

  • कोई ऐप्लिकेशन इस सेवा का इस्तेमाल सिर्फ़ तब कर सकता है, जब उसके होस्ट डिवाइस पर Google Play क्लाइंट इंस्टॉल हो और डिवाइस में Android 1.5 (एपीआई लेवल 3) या इसके बाद का वर्शन चल रहा हो.
  • लाइसेंस की जांच पूरी करने के लिए, लाइसेंसिंग सर्वर को नेटवर्क पर ऐक्सेस किया जा सकता है. नेटवर्क कनेक्टिविटी न होने पर, अपने ऐप्लिकेशन का ऐक्सेस मैनेज करने के लिए, लाइसेंस कैश मेमोरी के इस्तेमाल से जुड़ी सेटिंग लागू की जा सकती हैं.
  • आपके ऐप्लिकेशन के लाइसेंसिंग कंट्रोल की सुरक्षा, आखिर में आपके ऐप्लिकेशन के डिज़ाइन पर निर्भर करती है. यह सेवा, लाइसेंस की सुरक्षित तरीके से जांच करने के लिए बिल्डिंग ब्लॉक उपलब्ध कराती है. हालांकि, लाइसेंस को लागू करने और उसे मैनेज करने का फ़ैसला आपको करना होता है. यहां दिए गए दस्तावेज़ों में बताए गए सबसे सही तरीकों को अपनाकर, यह पक्का किया जा सकता है कि आपका डेटा सुरक्षित रहे.
  • किसी ऐप्लिकेशन में लाइसेंसिंग की सुविधा जोड़ने से, उस ऐप्लिकेशन के फ़ंक्शन पर कोई असर नहीं पड़ता. ऐसा तब होता है, जब ऐप्लिकेशन को ऐसे डिवाइस पर चलाया जाता है जिस पर Google Play उपलब्ध नहीं है.
  • बिना शुल्क वाले ऐप्लिकेशन के लिए लाइसेंसिंग कंट्रोल लागू किए जा सकते हैं. हालांकि, ऐसा सिर्फ़ तब किया जा सकता है, जब इस सेवा का इस्तेमाल APK एक्सपैंशन फ़ाइलें उपलब्ध कराने के लिए किया जा रहा हो.

कॉपी करने से सुरक्षा देने वाली सुविधा के बदले में

Google Play Licensing, आपके ऐप्लिकेशन के ऐक्सेस को कंट्रोल करने का एक सुविधाजनक और सुरक्षित तरीका है. यह सुविधा, कॉपी प्रोटेक्शन की सुविधा (अब काम नहीं करती) की जगह पर काम करती है. यह सुविधा पहले Google Play पर उपलब्ध थी. साथ ही, इससे आपको अपने ऐप्लिकेशन को ज़्यादा लोगों तक पहुंचाने में मदद मिलती है.

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

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

अपने ऐप्लिकेशन में लाइसेंस देने की सुविधा जोड़ने के लिए, लाइसेंस देने की सुविधा सेट अप करना पर जाएं.