2012-07-27 22 views
15

डिफ़ॉल्ट ServerManagedPolicy कि गूगल अपने License Verification Library में प्रदान करता है सर्वर प्रतिसाद पर निर्भर करता है लाइसेंस पुनर्वैधीकरण अंतराल निर्धारित करने के लिए। इसके परिणामस्वरूप शाश्वतता में हर कुछ दिनों में पुनर्मूल्यांकन की आवश्यकता होती है। यह न केवल उपयोगकर्ताओं के लिए एक उपद्रव है, यह उन उपयोगकर्ताओं के लिए एक गंभीर समस्या हो सकती है जो बिना किसी कनेक्टिविटी के विस्तारित अवधि में जाते हैं। (। हम सिर्फ जो कई हफ्तों के लिए इंटरनेट कनेक्टिविटी के बिना होने की उम्मीद है एक उपयोगकर्ता है, जो कि इस सवाल को प्रेरित है से एक जांच की थी)क्या यह Google एलवीएल नीति कार्यान्वयन उचित रूप से सुरक्षित होगा?

सारांश में, मैं एक एल्गोरिथ्म कि दो उद्देश्य पूरे होंगे तलाश कर रहा हूँ:

ServerManagedPolicy की तुलना में
  1. काफी कम हो कनेक्टिविटी आवश्यकताओं;
  2. एंटी-पाइरेसी सुरक्षा का एक ही स्तर प्रदान करते हैं।

this question के जवाब में सुझाव दिया नीति एल्गोरिथ्म गूगल के सर्वर से प्रतिक्रिया में प्रदान की बार उपेक्षा करते हैं और करने के लिए (एक महीने के बारे में एक लाइसेंस प्राप्त समयावधि समाप्त होने के उपयोग करने का लाइसेंस चेक के साथ हर कुछ दिन का प्रयास किया जा रहा है एक लाइसेंस प्राप्त प्रतिक्रिया प्राप्त होने पर समाप्ति अवधि का विस्तार करें)।

हालांकि यह दृष्टिकोण आंशिक रूप से पहला गोल के पते, यह अभी भी उन ऐप्स का उपयोग करके एक महीने में एक बार जुड़े होने की आवश्यकता है, तो यह (कम से कम में से एक) हमारे उपयोगकर्ताओं के लिए कार्य नहीं करेगा।

निम्नलिखित कलन विधि पहला लक्ष्य पूरा करता है, लेकिन मैं दूसरे के बारे में पता नहीं है। इस एल्गोरिदम की कमजोरियों को इंगित करने वाली किसी भी टिप्पणी, या किसी अन्य दृष्टिकोण के लिए सुझावों का स्वागत किया जाएगा।

  1. पहले भाग पर, लाइसेंस जांच करें और पूर्ण कार्यक्षमता प्रदान करने से पहले लाइसेंस प्राप्त प्रतिक्रिया पर जोर दें। एक बार प्राप्त होने के बाद, अपेक्षाकृत कम समाप्ति अवधि निर्धारित करें (लेकिन Google Play द्वारा प्रदान की जाने वाली धनवापसी अवधि से अधिक, वर्तमान में 15 मिनट)। इसके अलावा कुछ दिनों की ग्रेस अवधि भी पंजीकृत करें।
  2. ऐप लाइसेंस समाप्ति अवधि के बाद फिर से जांचना शुरू कर देगा। अगर यह कनेक्ट करने में विफल रहा (हवाई जहाज मोड, आदि), तो यह अभी भी अनुग्रह अवधि की समाप्ति तक कार्य करेगा।
  3. रियायती अवधि की समाप्ति के बाद, सामान्य एप्लिकेशन कामकाज अनुमति देने से पहले एक दूसरे लायसेंस किए प्रतिक्रिया पर जोर देते हैं।
  4. दूसरा लायसेंस किए प्रतिक्रिया प्राप्त करने के बाद, स्थायी रूप से अनुप्रयोग के सभी सुविधाओं को सक्षम और फिर कभी नहीं की जाँच परेशान।
  5. यदि किसी भी समय एक अनिवार्य प्रतिक्रिया प्राप्त होती है, तो पूर्ण कार्यक्षमता को स्थायी रूप से अक्षम करें। (उपयोगकर्ता जाहिर है, सभी एप्लिकेशन डेटा हटाए द्वारा चरण 1 पर लौट सकते हैं।)

अतिरिक्त अंक:

  • एक सुझाव पहले लाइसेंस जांच छोड़ और की समाप्ति तक प्रतीक्षा करने के लिए बनाया गया था लाइसेंस जांच करने से पहले वापसी अवधि। पहली लाइसेंस प्राप्त प्रतिक्रिया पर जोर देने का उद्देश्य शोषण को रोकने के लिए है, जहां लाइसेंस जांच विफल होने के बाद, उपयोगकर्ता बस ऐप प्रक्रिया को रोकता है, ऐप डेटा साफ़ करता है, और ऐप को पुनरारंभ करता है। (ऐप मूल्य प्रदान करता है भले ही एक समय में केवल 15 मिनट के लिए उपयोग योग्य हो।)
  • दूसरी लाइसेंस प्राप्त प्रतिक्रिया पर जोर देने का उद्देश्य खरीद-बैकअप-रिटर्न-पुनर्स्थापना शोषण के आसपास होना है।
  • मैं यह नहीं पूछ रहा हूं कि कॉल-बैक लाइसेंस जांच एक अच्छा विचार है या नहीं (यही वह है जो Google उनकी बहिष्कृत प्रति सुरक्षा तंत्र के स्थान पर प्रदान करता है)। मुझे यह भी पता है कि कोई समुद्री डाकू सुरक्षा मूर्खतापूर्ण नहीं है और Google की संपूर्ण लाइसेंसिंग तंत्र को बाधित किया जा सकता है (इस मामले में पॉलिसी एल्गोरिदम के डिजाइन के बारे में सभी प्रश्न अप्रासंगिक हैं)। इस प्रश्न का मुख्य बिंदु अन्य नीतियों (जैसे ServerManagedPolicy) की तुलना में उपर्युक्त एल्गोरिदम के सापेक्ष जोखिम (हमारे लिए) और लाभ (उपयोगकर्ता को) है।
+0

से "अदृश्य" संक्रमण उल्लेख किया है से बचने होगा "खरीदा है, अभी भी सत्यापन की आवश्यकता है" "खरीदे गए, कोई और सत्यापन आवश्यक" मुद्दों में है। आपको अपने ऐप में कहीं भी प्रतिबिंबित करने की आवश्यकता है, अगर केवल कुछ सेटिंग्स संवाद में। (लाइसेंस: अस्थायी कहीं, अगर "रिटर्न विंडो" बंद होने के बाद क्लिक किया जाता है तो एक चेक * दाएं * * उत्पन्न करता है, यदि एक सतत संदेश प्राप्त करने के लिए "बहुत जल्द" होता है तो एक त्रुटि संदेश उत्पन्न होता है। एक बार दूसरी बार सत्यापित (स्वचालित, या मैन्युअल रूप से), लाइसेंस बन जाता है: शाश्वत।) – Yakk

+0

@Yakk - मुझे यकीन नहीं है कि आप क्या समस्या देख रहे हैं। क्या यह है कि उपयोगकर्ता को दूसरी जांच के समय पर नियंत्रण की आवश्यकता है? –

+1

तो कोई आपके उत्पाद को खरीदता है, यह जानकर कि यह "ऑफलाइन काम करता है"। फिर वे इसे डाउनलोड करते हैं, इसे चलाते हैं, यह काम करता है। इसके बाद, वे कनेक्टिविटी खो देते हैं (कोई डेटा नहीं, वाईफाई किसी भी कारण से बंद)। 3 दिन बाद, उनका ऐप थोड़ा निदान के साथ काम करना बंद कर देता है। बिंदु यह कहने में सक्षम होना है कि "ऐप ऑफ़लाइन काम करता है * एक बार यह सतत लाइसेंस * कहता है"। यह (स्पष्ट रूप से) आपके ग्राहकों के लिए एक महत्वपूर्ण राज्य परिवर्तन है: उस समय राज्य में दिखाई देने वाला राज्य परिवर्तन महत्वपूर्ण है। – Yakk

उत्तर

5

समुद्री डाकू के संबंध में, हमेशा जोखिम होने जा रहा है, आप जो कुछ भी करते हैं वह पूरी तरह से इसे रोक नहीं पाएगा।

अन्य जोखिमों के विपरीत, आप अपने ग्राहकों को ऐसे ऐप से परेशान करने का जोखिम उठाते हैं जिसका उपयोग नहीं कर सकते हैं।

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

ऐप खरीदने पर मैं लाइसेंस प्राप्त प्रतिक्रिया पर जोर देता हूं, और दूसरी प्रतिक्रिया से परेशान नहीं होता। अगर कोई एक प्रतिक्रिया के आसपास अपना रास्ता खोज सकता है, तो वे उन्हें दूसरे स्थान पर ले जाएंगे।

संपादित करें: मैं kcoppock साथ सहमत हैं कि एक लाइसेंस की जांच 20 मिनट खरीदने के बाद ग्राहकों के लिए कम से कम हस्तक्षेप का कारण और वापसी बग आप

+2

एक शॉट शॉट स्वीकृति एक बहुत ही आसान और जाने-माने शोषण के अधीन है: 1) ऐप खरीदें; 2) इसे चलाएं और एक लाइसेंस प्राप्त प्रतिक्रिया प्राप्त करें; 3) अपने डिवाइस का बैक अप लें; 4) ऐप वापस करें (15 मिनट की वापसी विंडो के भीतर); 5) बैकअप से अपने ऐप को बहाल करें। Voilà - एक unpurchased ऐप जो सोचता है कि यह लाइसेंस प्राप्त है। इसे रोकने के लिए, रिटर्न विंडो बंद होने के बाद कम-से-कम एक लाइसेंस जांच होनी चाहिए। मुझे यह जोड़ना चाहिए कि सवाल यह है कि प्रस्तावित नीति में एलवीएल के साथ आने वाली डिफ़ॉल्ट नीति की तुलना में अधिक चोरी या अन्य जोखिम हैं (जिसके लिए हर कुछ दिनों में जांच की आवश्यकता होती है)। –

+1

पहले लॉन्च के बाद ~ 20 मिनट के लिए लाइसेंसिंग चेक (पूर्ण कार्यक्षमता की अनुमति क्यों दे रही है) में देरी क्यों करें? फिर आप रिटर्न विंडो के बाहर हैं। – kcoppock

+0

@kcoppock - हाँ, शायद यह एक अच्छा विचार है। यह [यहां] पोस्ट की गई सिफारिशों के अनुरूप है (http://www.androidpolice.com/2010/08/24/response-to-a-response-more-on-googles-android-licensing-service/)। असली सवाल यह है कि, समाप्ति अवधि के बाद हमें दी गई एक लाइसेंस प्राप्त प्रतिक्रिया पर निर्भर करता है, उदाहरण के लिए, 'सर्वर प्रबंधन नीति' के डिफ़ॉल्ट व्यवहार से हमें किसी और जोखिम का सामना करना पड़ता है। –