2010-12-01 12 views
33

मुझे यह देखने की ज़रूरत है कि मैंने अपने डिवाइस पर इंस्टॉल किए गए एप्लिकेशन पर हस्ताक्षर किए हैं। क्या यह आमतौर पर डिवाइस या पीसी पर करना संभव है?एंड्रॉइड डिवाइस पर एपीके पर हस्ताक्षर करने वाले व्यक्ति की पहचान कैसे देखें?

+0

उपयोग कर सकते हैं ठीक है, नहीं हर अनुप्रयोग, सही पृष्ठ के बारे में है? इसके अलावा, ऐप के डेवलपर होने के नाते मैं पेज के बारे में कुछ भी लिख सकता हूं, जो कि ऐप पर हस्ताक्षर करने के लिए इस्तेमाल किए गए प्रमाणपत्र में जानकारी से मेल नहीं खाता है ... –

+0

एंड्रॉइड पर, आप सभी ऐप्स को गिनने और X509 प्राप्त करने के लिए पैकेजमैनेजर का उपयोग कर सकते हैं हस्ताक्षर प्रमाणपत्र, [लिंक] http://stackoverflow.com/a/16305427/2225646 देखें। Google Play में एक निःशुल्क ऐप भी है: इंडेनाइल हस्ताक्षर। – Yojimbo

उत्तर

54

(मान लीजिए कि आप कच्चे एपीके फ़ाइल तक पहुंच प्राप्त कर सकते हैं - जो आप आमतौर पर कर सकते हैं, यदि आप जानते हैं या इसके नाम और स्थान का शिक्षित अनुमान बनाते हैं, भले ही आप गैर-डेटा पर/डेटा की सामग्री सूचीबद्ध नहीं कर सकते -rooted फोन)

आप एक ज़िप फ़ाइल के रूप में apk खोल सके और META-INF की द्विआधारी सामग्री से ASCII पाठ को फ़िल्टर/CERT.RSA

या एक वास्तविक उपकरण का उपयोग कर,

jarsigner -verify -certs -verbose some_application.apk 

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

+0

संकेत के लिए धन्यवाद! हो सकता है कि आप यह भी जानते हों कि केवल डिवाइस का उपयोग करके एक ही लक्ष्य को कैसे प्राप्त किया जाए? मेरी पहचान मेरे आवेदन के अंतिम उपयोगकर्ताओं के लिए महत्वपूर्ण हो सकती है, लेकिन वे आमतौर पर पीसी पर हेरफेर करने के लिए बहुत आलसी होते हैं .... –

+2

अगर जावा में जर्सिग्नर लागू किया गया है तो मुझे आश्चर्य नहीं होगा, इसलिए आप इसे एंड्रॉइड पर बंद कर सकते हैं। हालांकि, unprintables फ़िल्टर करके ascii पाठ निकालने का पहला सुझाव सरल हो सकता है। लेकिन अगर यह आपका आवेदन है, तो बात क्या है? यदि उपयोगकर्ता हस्ताक्षरकर्ता जानकारी निकालने के लिए आपके कोड पर भरोसा करता है तो वे संभवतः स्क्रीन के बारे में भी भरोसा करेंगे। यह भी ध्यान रखें कि हस्ताक्षरकर्ता जानकारी निकालने से यह साबित नहीं होता है कि इस इकाई ने वास्तव में इसे हस्ताक्षर किया है, आपको यह साबित करना होगा कि प्रयुक्त प्रमाणपत्र वास्तव में उनका था। –

+0

Google द्वारा जारी किए गए एपीके पर jarsigner चलाना (स्पष्ट रूप से) इन संदेशों को (बहुत सारे) देता है: 'X.50 9, सीएन = एंड्रॉइड, ओयू = एंड्रॉइड, ओ = Google इंक, एल = माउंटेन व्यू, एसटी = कैलिफ़ोर्निया, सी = यूएस [प्रमाणपत्र 22-08-08 01:13 से 08-01-36 00:13] [प्रमाण पत्र मान्य नहीं है: पथ किसी भी ट्रस्ट एंकर के साथ श्रृंखला नहीं है] '। मैं यह सत्यापित करने के लिए Google प्रमाण पत्र कैसे प्राप्त करूं कि वे वास्तव में हस्ताक्षरकर्ता थे। (मुझे लगता है कि इस उत्तर में जोड़ने के लिए प्रासंगिक है लेकिन मुझे बताएं कि क्या आप मुझे एक अलग प्रश्न पोस्ट करना चाहते हैं।) – mgd

संबंधित मुद्दे