कुछ एंड्रॉइड ऐप कैसे याद करते हैं कि यह पहली बार नहीं है कि उन्हें इंस्टॉल किया जा रहा है?


33

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

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

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


आप इस जानकारी को क्यों हटाना चाहते हैं? क्या ऐप बनाने वालों के पास अधिकार हैं? मैं यह एक लोकप्रिय टिप्पणी होने की उम्मीद नहीं करता हूं, लेकिन विचार करें कि क्या आपने ऐप बनाने के लिए समय और परेशानी उठाई है।
एस। मिशेल

6
@ S.Mitchell आज कुछ ऐप डेवलपर और बड़ी विज्ञापन कंपनियां निर्दोष उपयोगकर्ताओं से अनावश्यक विवरण प्राप्त करने का प्रयास करती हैं। न केवल वे मैक एड्रेस चाहते हैं, बल्कि वे आपकी wifi SSID को भी जानना चाहते हैं। चारों ओर पाने का रास्ता। मैं इस गोपनीयता प्रणाली को सुनिश्चित करना चाहता हूं।
15

1
@ एस.मिथेल हैलो मिशेल। आप मेरे सवाल के कारण मुझे गलत समझ रहे होंगे। नहीं, मैं किसी भी सामाजिक या ऑनलाइन सेवाओं से प्रतिबंधित नहीं हूँ और न ही स्टैक एक्सचेंज से यदि आपको संदेह है। लेकिन मेरे लिए जानना सीख रहा है। मैं यहाँ प्राप्त उत्तरों के साथ कोई व्यावहारिक कार्य नहीं कर रहा हूँ। लेकिन निश्चित रूप से वे यह जानने में मदद करते हैं कि चीजें कैसे काम करती हैं। अगर कोई हैक करना नहीं जानता है तो कोई एंटी-हैकिंग सुरक्षा नहीं बना सकता है। वही उपमा यहाँ है। अगर मैं यह नहीं जान सकता कि ऐप कैसे काम करते हैं तो कोई बात नहीं है कि मैं एक बना पाऊंगा।
डिफाल्ट

7
@ S.Mitchell: Do app creators have rights?वास्तव में, मेरे फोन पर, वे नहीं करते हैं। मैं उन्हें अपना कोड चलाने और अपने डेटा को अपने फोन पर संग्रहीत करने दे सकता हूं, लेकिन उनके पास कोई अधिकार नहीं है और मैं अपने विवेक पर दोनों विशेषाधिकार रद्द करने का अधिकार सुरक्षित रखता हूं।
dotancohen

2
@ S.Mitchell मुझे सभी सवालों के जवाब देने के लिए प्रोत्साहित करेगा चाहे आपको लगता है कि वे मौजूद क्यों हैं। अच्छी बात है कि आप इस साइट को नहीं चलाते हैं!
मोनिका

जवाबों:


33

एक अद्वितीय उपकरण या उसके उपयोगकर्ता की पहचान करने के कई तरीके हैं:

  1. कुछ (गैर-डिफ़ॉल्ट) निर्देशिका में एक फ़ाइल रखें : आपने पहले ही यह कहा था; ऐप्स अक्सर किसी डिवाइस के आंतरिक संग्रहण को लिख सकते हैं। यह तरीका आसान है, ऑफ़लाइन काम करता है और स्पॉट करने के लिए सबसे आसान नहीं है (फ़ाइल को कुछ सिस्टम जैसी निर्देशिका में रखें और कोई भी इसे हटाने से परेशान नहीं करेगा)।
  2. एक उपकरण का ध्यान रखें ANDROID_ID(अद्वितीय प्रति ताजा स्थापना) : यह विधि सरल है लेकिन इसके लिए कम से कम पहले उपयोग पर इंटरनेट का उपयोग आवश्यक है। यह बहुत घुसपैठ नहीं है और कारखाने के रीसेट के मामले में बनी नहीं है। यह प्रति उपयोगकर्ता भी अद्वितीय है। इस जानकारी को देखें
  3. IMEI : बहुत घुसपैठ, अपरिवर्तनीय लेकिन एक सिम-सक्षम डिवाइस की आवश्यकता होती है। प्रत्येक डिवाइस के लिए IMEI अद्वितीय है, इसे बदला नहीं जा सकता है और उपयोगकर्ता का अनुसरण नहीं करता है, जिसका अर्थ है कि यदि आप अपना डिवाइस बेचते हैं, तो नए मालिक को स्क्रीन के साथ बधाई दी जाएगी जो उसे बताएगी कि ऐप पहले से ही फोन पर था।
  4. एक उपयोगकर्ता के Google खाते का पालन करें : यह ANDROID_IDदृष्टिकोण के समान ही है लेकिन उपयोगकर्ता की पहुंच के लिए स्पष्ट अनुमति (Android 6.0+) की आवश्यकता है। ऐसे ऐप्स जो Google खाते के इकोसिस्टम का लाभ उठाते हैं (उदाहरण के लिए गेम्स में हाईस्कूल और उपलब्धियाँ) इस प्रकार एक विशिष्ट उपयोगकर्ता का अनुसरण कर सकते हैं और इस बात की अधिक जानकारी प्राप्त कर सकते हैं कि क्या ऐप इंस्टॉल किया गया है या नहीं।

2, 3 और 4 को नेटवर्क कनेक्शन और डेवलपर की तरफ एक सर्वर की आवश्यकता होती है।


मैं Xprivacy का उपयोग करके 2,3 और 4th भाग प्रबंधित कर सकता हूं। मैं उनमें से प्रत्येक को खराब कर दूंगा। लेकिन पहले वाला, यह आसान नहीं है। वैसे भी क्या मैं इस भेद्यता का पता लगा सकता हूँ?
16

3
यह एक भेद्यता नहीं है, बस एक दुर्व्यवहार की विशेषता है। रजिस्ट्री में फाइलों को रखने वाले अनुप्रयोगों की तरह। आपके फोन के आंतरिक भंडारण पर सभी निर्देशिकाओं के माध्यम से जाने और संदिग्ध फ़ाइलों की तलाश करने के अलावा बहुत कुछ नहीं है।
जाइंटट्री

1
इस ऐप को खोजने / बनाने का सौभाग्य। आंतरिक संग्रहण पर कुछ गुम फ़ाइल के कारण सिस्टम क्रैश नहीं कर सकता है। आम तौर पर, ऐप्स समान फ्रेमवर्क का उपयोग करते हैं जो समान फ़ाइलों का उपयोग करते हैं लेकिन, जैसा कि आपने पहले ही बताया था, उन फ़ाइलों को ढूंढना असंभव है (हमेशा नहीं, लेकिन अधिकांश समय)। ऐसी फाइलें जिनमें "आईडी", "उपयोगकर्ता" या इसी तरह की चीजें होती हैं, उनमें अक्सर ऐसी आईडी होती है और उन आईडी का उपयोग आमतौर पर विज्ञापन के लिए किया जाता है।
जाइंटट्री सेप

2
@ S.Mitchell नहीं, मैं किसी भी ऑनलाइन सेवाओं, वेब एप्लिकेशन और ऑनलाइन गेमिंग से कभी भी प्रतिबंधित नहीं हूं। लेकिन मेरा मानना ​​है कि एंड्रॉइड डेवलपमेंट में आगे बढ़ने के लिए सिस्टम अपने इंटरफेस के पीछे कैसे काम करता है, यह जानना सही कदम है।
डिफाल्ट

8
@ user334283 "कभी नहीं पता कि आप किस फ़ाइल का नाम खोज रहे हैं"। यह गलत है। एंड्रॉइड, एक लिनक्स ओएस होने के नाते, straceउपयोगिता है जिसे सभी सिस्टम कॉल का ट्रैक रखने के लिए उपयोग किया जा सकता है। इसलिए आपको straceडिवाइस पर फ़ाइलों से संबंधित सभी सिस्टम कॉल का उपयोग करके और अपने ऐप को शुरू करना होगा और ऐप द्वारा मौजूदगी के लिए पढ़ी गई / चेक की गई सभी फाइलों को आप स्पॉट कर लेंगे। ज़रूर: शायद स्मार्टफोन पर करना काफी मुश्किल है लेकिन निश्चित रूप से संभव है
बकुरीउ

2

यह भंडारण से जुड़ा नहीं है, बल्कि क्लाउड से जुड़ा है। यह तब भी याद है जब आपने अपना डेटा हटा दिया था। इसे बंद करने के लिए, अपने डिवाइस के सेटिंग ऐप पर जाएं, व्यक्तिगत के तहत Google खाते पर टैप करें (यदि आप चाहते हैं कि आपके पास कई खाते हैं तो टैप करें), फिर उन ऐप्स को स्विच करें जिन्हें आप ऑटो-सिंक नहीं करना चाहते हैं।


ऑटो-सिंक मूल समस्या नहीं है। तृतीय-पक्ष पार्टी सर्वर सुनिश्चित करते हैं कि उनका ऐप आपके मैक पते, IMEI, डिवाइस आईडी, विज्ञापन आईडी को इकट्ठा करने में सक्षम है और भविष्य में डिवाइस का फिर से पता लगाने के लिए इसे सर्वर पर संग्रहीत करें। इन विवरणों को अलग-अलग रखने से आपकी गोपनीयता बनी रहेगी लेकिन अगर कोई ऐप विंडोज़ की तरह "रजिस्ट्री प्रविष्टियों" को लिख रहा है तो यह अनिर्दिष्ट होगा।
15

2

GiantTree का जवाब इसे सबसे अच्छा कवर करता है, लेकिन सोचने के लिए एक और बिंदु है। यह स्पष्ट रूप से एक " डार्क पैटर्न " होगा, लेकिन यह पहचान कुछ उपयोगकर्ता डेटा को फ़िंगरप्रिंटिंग के माध्यम से भी किया जा सकता है - इसे उनके पहले बिंदु ("फाइल रखें") पर एक संस्करण के रूप में देखा जा सकता है, लेकिन यह पता लगाना कठिन और कम सुविधाजनक होगा बचने के लिए।

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

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

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

कृपया ध्यान दें: किसी भी तरह से मैं यह नहीं कह रहा हूं कि यह सही है या "अच्छा" एक तरह से काम कर रहा है यदि आप एप्लिकेशन लिख रहे हैं, लेकिन यह उचित है कि इस पर चर्चा करें क्योंकि यह केवल चर्चा के माध्यम से है कि लोग यह पता लगाएंगे कि क्या वे हैं इसके बारे में कुछ करने के लिए पर्याप्त है और जो हो सकता है।


1

SharedPreferences वर्ग है - https://developer.android.com/reference/android/content/SaringPreferences.html - जो कुछ ऐप्स वरीयता डेटा संग्रहीत करने के लिए उपयोग करते हैं। ऐप के अनइंस्टॉल होने पर यह डेटा डिलीट नहीं होता है। यदि बाद में ऐप को फिर से इंस्टॉल किया जाता है, तो पहले से सहेजे गए शेयर्डप्रिफरेंस कुंजियाँ अभी भी इसके लिए उपलब्ध हैं।


6
SharedPreferencesऐप को अनइंस्टॉल किए जाने पर वास्तव में डिलीट कर दिया जाता है। डेवलपर्स के लिए बैकअप सेट अप करने के तरीके हैं, लेकिन डिफ़ॉल्ट रूप से उन्हें अनइंस्टॉल पर हटा दिया जाता है। (स्रोत: एक डेवलपर के रूप में, मैं वरीयताओं को स्पष्ट करने के लिए अपने ऐप्स की स्थापना रद्द करता हूं। यह भी देखें: stackoverflow.com/a/9815641/1438733 )
एरिक

1

एक और संभावना है - एक बहुत बड़े "समय समाप्त होने के साथ" लगातार कुकीज़ का उपयोग । मुझे लगता है कि एक ही डेवलपर के कई ऐप पारंपरिक रूप से क्रेडेंशियल्स साझा करने के लिए उपयोग किए जाते हैं, जब खातों की सुविधा के माध्यम से संग्रहीत क्रेडेंशियल्स जनता के लिए इतने खुले / ज्ञात नहीं थे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.