2012-03-26 25 views
11

मुझे पता है कि अगर मैं एक एंड्रॉइड ऐप को दो बार संकलित करता हूं, तो दूसरे के बाद कोई भी बदलाव नहीं होता है, जिसमें दो एपीके फाइलों में दो अलग-अलग एमडी 5 चेकसम होते हैं। बिना हस्ताक्षर किए और हस्ताक्षरित एपीके फाइलें दोनों एक ही परिणाम उत्पन्न करते हैं।एंड्रॉइड एपीके फाइलों के एमडी 5 चेकसम अलग-अलग हैं। क्यूं कर?

आप इसे ज़िप फ़ाइल के रूप में खोल सकते हैं और अंदर की सामग्री दोनों फाइलों में समान MD5 चेकसम हैं, इसलिए मैं उत्सुक हूं।

और क्या है? इन दो एपीके फाइलों के बारे में क्या अलग है?

+0

शायद एपीके फाइलें संकलित होने पर एक टाइमस्टैम्प स्टोर करती हैं? मैं एपीके प्रारूप के लिए कल्पना के माध्यम से देखता हूं और देखता हूं कि ऐसा कुछ मौजूद है ... –

+0

लगता है। एपीके प्रारूप पर विवरण खोजने में परेशानी हो रही है। एपीके जार से अलग है? मुझे लगता है कि इसमें कुछ अतिरिक्त होंगे। –

+0

एपीके फाइल वास्तव में एक विशिष्ट फ़ाइल सामग्री के साथ ज़िप फ़ाइलों को हैं, जैसे .jar – reox

उत्तर

0

शायद "हस्ताक्षरित" चीज़ एमडी 5 चेकसम अलग बनाती है? अपने हैडर अंदर

+0

संपादित। यह हस्ताक्षरित और हस्ताक्षरित एपीके दोनों में होता है। –

12

ज़िप फ़ाइल स्वरूप भंडार अंतिम संशोधन दिनांक: http://en.wikipedia.org/wiki/Zip_(file_format)#File_headers

तो MD5 योग अलग है, क्योंकि शीर्ष लेख slighty अलग है।

+0

तो, यदि आप एक एपीके संकलित करते हैं, सामग्री निकालें, उनमें से एक ज़िप बनाएं, इसे एपीके में बदलें, यह चलता है? इससे पहले कि मैं एक इंसान के लिए एक ही मूल बात करने पर एक झटका देने से पहले इस आज रात को आजमाएं। वास्तव में हाँ –

+0

! 'unzip test.apk; आरएम test.apk; zip -r test.zip ./*; एमवी परीक्षण। {ज़िप, एपीके}; adb install test.apk' काम करता है। यहां तक ​​कि एमडी 5 एसएमएस अलग हैं: 950b9077d8a2a3be45ba207c0c0a2251 test.apk e0ae339a5ecd3080f8359fc06a4c3e29 test.zip.apk – reox