एप्लिकेशन हस्ताक्षर सत्यापन: यह कैसे काम करता है, इसे एक्सपोज़ड के साथ कैसे अक्षम करें, और आपको ऐसा क्यों नहीं करना चाहिए

आप एक्सपोज़ड फ्रेमवर्क का उपयोग करके एंड्रॉइड एप्लिकेशन (एपीके) हस्ताक्षर सत्यापन को आसानी से अक्षम कर सकते हैं, लेकिन आपको अधिकांश मामलों में ऐसा नहीं करना चाहिए।

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

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

एंड्रॉइड हस्ताक्षर सत्यापन मूल बातें

डिफ़ॉल्ट रूप से, Android OS की आवश्यकता होती है

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

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

[इस अन्यथा गहन लेख में एक हास्य के अलावा, एक बहुत ही सार्वजनिक उदाहरण है जिसमें एक निजी एप्लिकेशन हस्ताक्षर कुंजी खो गई थी या समझौता हो गई थी। मैं निश्चित रूप से Google के स्वयं के ऑथेंटिकेटर ऐप का उल्लेख कर रहा हूं, जिसे एक अपडेट प्राप्त हुआ जिसने इसके पैकेज का नाम बदल दिया com.google.android.apps.authenticator को com.google.android.apps.authenticator2 लगभग दो साल पहले के अपडेट में। इस परिवर्तन के कारण, सभी बाद के प्रमाणक ऐप अपडेट केवल नए पैकेज नाम के तहत जारी किए जा सकते हैं - नई निजी हस्ताक्षर कुंजी द्वारा उत्पन्न नए हस्ताक्षर के साथ।]

आप हस्ताक्षर सत्यापन को (अस्थायी रूप से) अक्षम क्यों करना चाहते हैं?

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

ऐसा कैसे करें

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

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

सुरक्षित रहें, और इसका विवेकपूर्ण उपयोग करें।