If you have ever seen the error FAILED (remote: bootimage: incomplete or not signed)
, here’s the solution (at least for the Fairphone 2 😉):
Download the BootSignature.jar
file from my server (or compile it yourself from the LineageOS 14.1 tree with the command mka BootSignature
).
curl -O https://public.lucaweiss.eu/BootSignature.jar
Download the make_key
tool from the LineageOS GitHub.
curl -O https://raw.githubusercontent.com/LineageOS/android_development/cm-14.1/tools/make_key
Make the script executable
chmod +x make_key
Generate the key with
./make_key keystore '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
Put the BootSignature.jar
, keystore.pk8
and keystore.x509.pem
in a directory of your choice.
Put the following script into a location in the PATH (~/bin
or /usr/local/bin
should be good) and replace the first variable with the location you put the three files in:
#!/bin/bash
KEYSTORE_TOOLS=/location/to/jar_and_certs
IMGFILE=$1
if [ ! -n "$1" ]; then
echo "Usage: $0 <file.img>"
exit 1
fi
java -jar $KEYSTORE_TOOLS/BootSignature.jar /boot $IMGFILE $KEYSTORE_TOOLS/keystore.pk8 $KEYSTORE_TOOLS/keystore.x509.pem $IMGFILE.signed
Don’t forget to make that script executable! (chmod +x
)
Now you can use the script to sign your images and then boot it
sign_img boot.img && fastboot boot boot.img.signed
Have fun!