0 votos

La actualización de update.zip firmada con claves OEM devuelve "fallo en la verificación de la firma del archivo completo"

Tengo un update.zip que incluye un APK en la carpeta system/priv-app/, unas animaciones de arranque y apagado y un servidor SSH entre otras cosas. Tengo las claves privadas y públicas del OEM que me vendió la tablet así que usé sigapk.jar para firmar el archivo update.zip. El comando que utilicé es el siguiente:

java -jar signapk.jar -w certificate.x509.pem key.pk8 update.zip update-signed.zip

Entonces, después de tratar de flashear este archivo a través de la recuperación de valores utilizando sideload ( adb sideload update-signed.zip ) Obtengo el siguiente error:

Verifying update package...
E:failed to verify whole-file signature
E:signature verification failed
Restarting adbd...
Installation aborted.

Anteriormente, intentaba flashear el update.zip sin firmarlo y el resultado era el siguiente:

Verifying update package...
E:footer is wrong
E:signature verification failed
Restarting adbd...
Installation aborted.

En realidad no sé si la diferencia en el error (el pie de página es incorrecto --> falló la verificación de la firma del archivo completo) se debe a que las claves están funcionando o no, o tal vez porque el archivo no tenía ninguna firma. ¿Puede alguien ayudarme con esto y decirme por qué no funciona si estoy usando las claves del OEM? .pem y .pk8 ¿Las llaves?

EDITAR:

También he probado a añadir el certificate.x509.pem dentro del archivo META-INF/com/android/otacert dentro de la carpeta update.zip archivo y luego firmarlo, pero eso tampoco funcionó.

0 votos

La herramienta correcta para firmar es apksigner.jar de las herramientas de construcción del SDK de Android.

0 votos

Prueba las sugerencias de @Robert. Además, ¿estás seguro de que esas claves son correctas? ¿Cómo has verificado que la clave que obtienes es la clave preinstalada en tu dispositivo?

0 votos

No lo he verificado. ¿Cómo puedo hacerlo?

1voto

Richard Astbury Puntos 1638

Estás en el camino correcto. El mensaje "failed to verify whole-file signature", significa que el archivo no pudo ser considerado válido para el certificado proporcionado.

El mensaje de error que falta indica que este es el caso, ya que la firma no pudo ser comparada con el almacén de certificados de confianza:

https://Android.googlesource.com/platform/bootable/recovery/+/2c6c23f651abb3d215134dfba463eb72a5e9f8eb/verifier.cpp#258

La aplicación Android que se ejecuta durante la carga lateral utiliza un almacén de certificados diferente al de la recuperación:

https://source.Android.com/devices/tech/ota/sign_builds#signatures-sideloading

Asumiendo que las claves que tienes son válidas para el recovery, podrías salirte con la tuya arrancando directamente en el recovery usando fastboot, y luego seleccionando tu ZIP firmado desde allí.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X