2012-03-26 14 views
11

Observé que si compilo una aplicación de Android dos veces, una después de la otra sin cambios, los dos archivos APK tienen dos sumas de comprobación MD5 diferentes. Los archivos APK sin firmar y firmados producen el mismo resultado.Las sumas de comprobación MD5 de los archivos APK de Android son diferentes. ¿Por qué?

Puede abrirlo como un archivo ZIP y los contenidos dentro de ellos tienen sumas de comprobación MD5 idénticas en ambos archivos, por lo que tengo curiosidad.

¿Qué más hay? ¿Qué es lo que diferencia de estos dos archivos APK?

+0

¿Quizás los archivos APK almacenan una marca de tiempo de cuándo se compiló? Revisaría las especificaciones para el formato APK y vería si algo así existe ... –

+0

Suena probable. Tiene problemas para encontrar detalles sobre el formato APK. ¿Es APK diferente de JAR? Me imagino que tendría algunos extras. –

+0

los archivos apk son de hecho archivos zip con un contenido de archivo específico, al igual que .jar – reox

Respuesta

0

Tal vez el hecho "firmado" hace que la suma de comprobación MD5 sea diferente?

+0

Editado. Resulta que esto sucede tanto en APK firmados como no firmados. –

12

Los archivos ZIP formato almacena la última fecha de modificación dentro de su encabezado: http://en.wikipedia.org/wiki/Zip_(file_format)#File_headers

Así que la Suma MD5 difiere porque el encabezado es levemente diferente.

+0

Entonces, si compila una APK, extrae los contenidos, crea una ZIP de ellos, renómbrala a una APK, se ejecuta? Tengo que probar esto esta noche justo antes de dar un golpe para hacer lo mismo básico para un ser humano. –

+0

de hecho sí! 'descomprimir test.apk; rm test.apk; zip -r test.zip ./*; prueba de mv. {zip, apk}; adb install test.apk' funciona. Incluso las sumas de MD5 son diferentes: 950b9077d8a2a3be45ba207c0c0a2251 test.apk e0ae339a5ecd3080f8359fc06a4c3e29 test.zip.apk – reox

Cuestiones relacionadas