2012-03-26 19 views
11

Tôi nhận thấy rằng nếu tôi biên dịch một ứng dụng Android hai lần, ngay sau khi ứng dụng kia không có thay đổi, hai tệp APK có hai checksums MD5 khác nhau. Tệp APK chưa ký và được ký đều mang lại kết quả tương tự.Kiểm tra MD5 của các tệp APK Android khác nhau. Tại sao?

Bạn có thể mở tệp dưới dạng tệp ZIP và nội dung bên trong có các kiểm tra MD5 giống hệt nhau trong cả hai tệp, vì vậy tôi tò mò.

Còn gì nữa? Điều gì khác biệt về hai tệp APK này?

+0

Có thể tệp APK lưu trữ dấu thời gian khi được biên dịch? Tôi sẽ xem xét các thông số kỹ thuật cho các định dạng APK và xem nếu một cái gì đó như thế tồn tại ... –

+0

Âm thanh có khả năng. Gặp sự cố khi tìm chi tiết về định dạng APK. APK có khác với JAR không? Tôi tưởng tượng nó sẽ có một vài tính năng bổ sung. –

+0

tệp APK thực tế là tệp zip có nội dung tệp cụ thể, giống như .jar – reox

Trả lời

0

Có thể điều "đã ký" làm cho kiểm tra MD5 khác nhau?

+0

Đã chỉnh sửa. Hóa ra điều này xảy ra trong cả APK đã ký và chưa ký. –

12

Định dạng lưu trữ ZIP File ngày sửa đổi cuối cùng trong tiêu đề của nó: http://en.wikipedia.org/wiki/Zip_(file_format)#File_headers

Vì vậy, các MD5 Sum khác vì tiêu đề là slighty khác nhau.

+0

Vì vậy, nếu bạn biên dịch APK, trích xuất nội dung, tạo một tệp ZIP, đổi tên nó thành APK, nó sẽ chạy? Phải cố gắng tối nay ngay trước khi tôi đưa ra một cái roi khi làm điều tương tự cơ bản cho một con người. –

+0

thực tế là có! 'unzip test.apk; rm test.apk; zip -r test.zip ./*; kiểm tra mv. {zip, apk}; adb install test.apk' hoạt động. Ngay cả các khoản MD5 khác nhau: 950b9077d8a2a3be45ba207c0c0a2251 test.apk e0ae339a5ecd3080f8359fc06a4c3e29 test.zip.apk – reox