Estoy tratando de destellar un archivo update.zip personalizado en un dispositivo previo a Kitkat.
En el zip hay 2 archivos con firmas SHA1 de otros archivos en la actualización. Pero tienen firmas diferentes para los mismos archivos.
Ejemplo:
META-INF/MANIFEST.MF:
Nombre: system/lib/libcustom_jni.so
SHA1-Digest: +PhV5XphkQTNTyM2TSRTeiaDlCA=
META-INF/CERT.SF:
Nombre: system/lib/libcustom_jni.so
SHA1-Digest: 7ooFhqk1oYWF5pmVuSAhF2pFVNw=
Puedo obtener el primero usando:
sha1sum system/lib/libcustom_jni.so | cut -d\ -f1 | xxd -p -r | base64
+PhV5XphkQTNTyM2TSRTeiaDlCA=
¿Cómo se calcula el segundo? El segundo archivo tiene un hash del primer archivo, así que quizás los otros hashes están salados con el primer archivo o algo así.
Según lo que encontré en la documentación de Java, los SHAs deberían ser idénticos, excepto que todos los SHAs son la versión 1 en el archivo original update.zip.
Parece que el certificado utilizado para firmar la actualización fue el de prueba de android por lo que debería funcionar, pero en su lugar aborta.
0 votos
Esto responde a mi pregunta si es cierto, necesito probarlo: stackoverflow.com/a/9384919/1333247
0 votos
Parece que tienes más conocimiento que yo, por favor revisa mi respuesta y siéntete libre de corregirla (o publicar tu propia respuesta) android.stackexchange.com/q/222262
1 votos
@alecxs Gracias, pero de verdad solo he jugado con un dispositivo Android 4.2 hasta ahora. Esa pregunta es sobre Android 9, creo que han cambiado demasiadas cosas entre ellos para que yo pueda ayudar.