यह एक .apk फ़ाइल पर हस्ताक्षर करने के बारे में कोई प्रश्न नहीं है। मैं जानना चाहता हूं कि वास्तव में क्या हस्ताक्षर करना है और यह कैसे कार्यान्वित किया जाता है।एक .apk फ़ाइलों को कैसे हस्ताक्षरित किया जाता है
.एपीके फ़ाइल के अंदर मेटा-आईएनएफ फ़ोल्डर है और अंदर दो फाइलें हैं।
पहले एक CERT.SF SHA1 विभिन्न घटकों के लिए हैश होता है और इस तरह दिखता है:
Name: res/layout/main.xml
SHA1-Digest: Cox/T8fN1X9Hv4VqjH9YKqc/MsM=
Name: AndroidManifest.xml
SHA1-Digest: wZ418H9Aix1LNch3ci7c+cHyuZc=
Name: resources.arsc
SHA1-Digest: P+uoRrpFyVW6P3Wf+4vuR2ZSuXY=
Name: classes.dex
SHA1-Digest: cN3zXtGii9zuTOkBqDTLymeMZQI=
वहाँ भी एक फ़ाइल CERT.RSA कहा जाता है। मुझे लगता है कि हस्ताक्षर को सत्यापित करने के लिए यह सार्वजनिक कुंजी है।
मेरा सवाल है, पूरे .apk फ़ाइल के लिए हस्ताक्षर कहां संग्रहीत किया जाता है? और वास्तव में क्या हस्ताक्षर किया जाता है? यह या तो
- .apk एक भी बाइनरी वस्तु के रूप में इस्तेमाल किया जा सकता है फ़ाइल और इस
- हस्ताक्षरित किया गया है या CERT.SF हस्ताक्षरित किया गया है जो विभिन्न घटकों
यह भी ज्यादा होगा के लिए व्यक्तिगत हैश शामिल बेहतर अगर आप मुझे विस्तृत हस्ताक्षर और सत्यापन प्रक्रिया के दस्तावेज़ीकरण के लिए इंगित कर सकते हैं।
मार्टिन, मैं .NET का उपयोग कर अंतिम चरण (आरएसए फ़ाइल उत्पन्न) को दोहराने की कोशिश कर रहा हूं। साइन इन करने के लिए इनपुट, क्या मुझे यह लेना चाहिए कि यह फ़ाइल प्रविष्टियों में है। एसएफ फ़ाइल (यानी 3 लाइनें)? क्या यह डेटा यूटीएफ 8 या यूनिकोड के रूप में एन्कोड किया जाना चाहिए? मैं एक ही आउटपुट (हालांकि) को उसी प्रमाण पत्र/डेटा के लिए jarsigner टूल के समान नहीं कर पा रहा हूं। कोई संकेत मदद करेगा! –