273 lines
7.4 KiB
Bash
Executable File
273 lines
7.4 KiB
Bash
Executable File
#!/bin/bash
|
|
OUTDIR=$1
|
|
SOURCEROOT=$2
|
|
SECURE_BOOT=$3
|
|
PSS_FLAG=$4
|
|
|
|
echo secboot = $SECURE_BOOT
|
|
echo PSS_FLAG = $PSS_FLAG
|
|
CURPATH=$SOURCEROOT/prebuilts/scripts/packimage_scripts
|
|
#sign tools config
|
|
HOST_OUT=$CURPATH
|
|
PRODUCT_OUT=$CURPATH
|
|
CFGPATH=$CURPATH/config/
|
|
DESTDIR=$CURPATH/mkdbimg/bin
|
|
|
|
#chipram bins location
|
|
SPL=$OUTDIR/u-boot-spl-16k.bin
|
|
SPLSIGN=$OUTDIR/u-boot-spl-16k-sign.bin
|
|
SPL_EMMC=$OUTDIR/u-boot-spl-16k-emmc.bin
|
|
SPL_EMMCSIGN=$OUTDIR/u-boot-spl-16k-emmc-sign.bin
|
|
SPL_UFS=$OUTDIR/u-boot-spl-16k-ufs.bin
|
|
SPL_UFSSIGN=$OUTDIR/u-boot-spl-16k-ufs-sign.bin
|
|
FDL1=$OUTDIR/fdl1.bin
|
|
FDL1SIGN=$OUTDIR/fdl1-sign.bin
|
|
#DDR_SCAN=$OUTDIR/ddr_scan.bin
|
|
#DDR_SCANSIGN=$OUTDIR/ddr_scan-sign.bin
|
|
|
|
#sml bins location
|
|
SML=$OUTDIR/sml.bin
|
|
SMLSIGN=$OUTDIR/sml-sign.bin
|
|
|
|
#tos bins location
|
|
TOS=$OUTDIR/tos.bin
|
|
TOSSIGN=$OUTDIR/tos-sign.bin
|
|
TA_DESTDIR=$CURPATH
|
|
|
|
#uboot bins location
|
|
UBOOTDT=$OUTDIR/u-boot-dtb.bin
|
|
UBOOTDTSIGN=$OUTDIR/u-boot-dtb-sign.bin
|
|
UBOOT=$OUTDIR/u-boot.bin
|
|
UBOOTSIGN=$OUTDIR/u-boot-sign.bin
|
|
FDL2=$OUTDIR/fdl2.bin
|
|
FDL2SIGN=$OUTDIR/fdl2-sign.bin
|
|
#UBOOTAUTO=$OUTDIR/u-boot_autopoweron.bin
|
|
#UBOOTAUTOSIGN=$OUTDIR/u-boot_autopoweron-sign.bin
|
|
BOOT=$OUTDIR/boot.img
|
|
BOOTSIGN=$OUTDIR/boot-sign.img
|
|
RECOVERY=$OUTDIR/recovery.img
|
|
RECOVERYSIGN=$OUTDIR/recovery-sign.img
|
|
DTB=$OUTDIR/Image-dtb.dtb
|
|
DTBSIGN=$OUTDIR/Image-dtb-sign.dtb
|
|
DTBO=$OUTDIR/dtbo.img
|
|
DTBOSIGN=$OUTDIR/dtbo-sign.img
|
|
RecoveryDTB=$OUTDIR/recovery-dtb.dtb
|
|
RecoveryDTBSIGN=$OUTDIR/recovery-dtb-sign.dtb
|
|
#AGDSP=$OUTDIR/roc1_pubcp_AGCP_DSP.bin
|
|
#AGDSPSIGN=$OUTDIR/roc1_pubcp_AGCP_DSP-sign.bin
|
|
#PM_SYS=$OUTDIR/roc1_cm4.bin
|
|
#PM_SYSSIGN=$OUTDIR/roc1_cm4-sign.bin
|
|
#VBMETA=$PRODUCT_OUT/vbmeta.img
|
|
|
|
getModuleName()
|
|
{
|
|
local name="allmodules"
|
|
if [ $# -gt 0 ]; then
|
|
for loop in $@
|
|
do
|
|
case $loop in
|
|
"chipram")
|
|
name="chipram"
|
|
break
|
|
;;
|
|
"bootloader")
|
|
name="bootloader"
|
|
break
|
|
;;
|
|
"bootimage")
|
|
name="bootimage"
|
|
break
|
|
;;
|
|
"recoveryimage")
|
|
name="recoveryimage"
|
|
break
|
|
;;
|
|
"prodnvimage")
|
|
name="prodnvimage"
|
|
break
|
|
;;
|
|
"systemimage")
|
|
name="systemimage"
|
|
break
|
|
;;
|
|
"vendorimage")
|
|
name="vendorimage"
|
|
break
|
|
;;
|
|
"userdataimage")
|
|
name="userdataimage"
|
|
break
|
|
;;
|
|
"cacheimage")
|
|
name="cacheimage"
|
|
break
|
|
;;
|
|
"trusty")
|
|
name="trusty"
|
|
break
|
|
;;
|
|
"sml")
|
|
name="sml"
|
|
break
|
|
;;
|
|
"vbmetaimage")
|
|
name="vbmetaimage"
|
|
break
|
|
;;
|
|
"vbmetaimage-nodeps")
|
|
name="vbmetaimage"
|
|
break
|
|
;;
|
|
"clean")
|
|
name="clean"
|
|
break
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
done
|
|
fi
|
|
echo $name
|
|
}
|
|
|
|
doImgHeaderInsert()
|
|
{
|
|
local NO_SECURE_BOOT
|
|
local ret
|
|
|
|
if [[ "NONE" = $SECURE_BOOT ]]; then
|
|
NO_SECURE_BOOT=1
|
|
else
|
|
NO_SECURE_BOOT=0
|
|
fi
|
|
|
|
for loop in $@
|
|
do
|
|
echo imgheader img: $loop
|
|
if [ -f $loop ] ; then
|
|
${HOST_OUT}/sprd_sign insert_image_header --image $loop --config_dir $CFGPATH
|
|
ret=$?
|
|
if [ "$ret" = "1" ]; then
|
|
echo "####imgheaderinsert $loop NO_SECURE_BOOT=$NO_SECURE_BOOT failed!####"
|
|
return 1
|
|
fi
|
|
else
|
|
echo "#### no $loop,please check ####"
|
|
fi
|
|
done
|
|
return 0
|
|
}
|
|
|
|
dosprdcopy()
|
|
{
|
|
if [ -f $SPLSIGN ];then
|
|
cp $SPLSIGN $DESTDIR
|
|
#echo -e "\033[33m copy spl-sign.bin finish!\033[0m"
|
|
fi
|
|
|
|
if [ -f $SPL_EMMCSIGN ];then
|
|
cp $SPL_EMMCSIGN $DESTDIR
|
|
#echo -e "\033[33m copy spl-emmc-sign.bin finish!\033[0m"
|
|
fi
|
|
|
|
if [ -f $SPL_UFSSIGN ];then
|
|
cp $SPL_UFSSIGN $DESTDIR
|
|
#echo -e "\033[33m copy spl-ufs-sign.bin finish!\033[0m"
|
|
fi
|
|
|
|
if [ -f $FDL1SIGN ]; then
|
|
cp $FDL1SIGN $DESTDIR
|
|
#echo -e "\033[33m copy fdl1-sign.bin finish!\033[0m"
|
|
fi
|
|
}
|
|
|
|
doSignImage()
|
|
{
|
|
if [[ "NONE" = $SECURE_BOOT ]]; then
|
|
return
|
|
fi
|
|
#/*add sprd sign*/
|
|
if [[ "SPRD" = $SECURE_BOOT ]]; then
|
|
for image in $@
|
|
do
|
|
if [ -f $image ]; then
|
|
if [ "pss" = $PSS_FLAG ]; then
|
|
# $HOST_OUT/sprd_sign_v2 $image $CFGPATH pss $PROJECT
|
|
${HOST_OUT}/sprd_sign sign_image --image $image --config_dir $CFGPATH --algorithm rsa4096 --rsa_padding 6
|
|
else
|
|
# $HOST_OUT/sprd_sign_v2 $image $CFGPATH pkcs15 $PROJECT
|
|
${HOST_OUT}/sprd_sign sign_image --image $image --config_dir $CFGPATH --algorithm rsa2048 --rsa_padding 1
|
|
fi
|
|
else
|
|
echo -e "\033[31m #### no $image, pls check #### \033[0m"
|
|
fi
|
|
done
|
|
#call this function do copy fdl1&spl to mkdbimg/bin document
|
|
# dosprdcopy
|
|
fi
|
|
}
|
|
|
|
doPackImage()
|
|
{
|
|
case $(getModuleName "$@") in
|
|
"chipram")
|
|
doImgHeaderInsert $SPL $FDL1 $DDR_SCAN $SPL_EMMC $SPL_UFS
|
|
if [ "$?" = "1" ]; then
|
|
return 1
|
|
fi
|
|
doSignImage $SPLSIGN $FDL1SIGN $DDR_SCANSIGN $SPL_EMMCSIGN $SPL_UFSSIGN
|
|
;;
|
|
"bootloader")
|
|
doImgHeaderInsert $UBOOT $FDL2 $UBOOTAUTO
|
|
if [ "$?" = "1" ]; then
|
|
return 1
|
|
fi
|
|
doSignImage $UBOOTSIGN $FDL2SIGN $UBOOTAUTOSIGN
|
|
;;
|
|
"trusty")
|
|
#the next line is for dynamic TA
|
|
python $TA_DESTDIR/dynamicTA/genkey/main_process.py $PRODUCT_OUT $TA_DESTDIR
|
|
doImgHeaderInsert $TOS
|
|
if [ "$?" = "1" ]; then
|
|
return 1
|
|
fi
|
|
doSignImage $TOSSIGN
|
|
;;
|
|
"sml")
|
|
doImgHeaderInsert $SML
|
|
if [ "$?" = "1" ]; then
|
|
return 1
|
|
fi
|
|
doSignImage $SMLSIGN
|
|
;;
|
|
"allmodules")
|
|
if [[ "NONE" = $SECURE_BOOT ]]; then
|
|
#the next line is for dynamic TA
|
|
python $TA_DESTDIR/dynamicTA/genkey/main_process.py $PRODUCT_OUT $TA_DESTDIR
|
|
doImgHeaderInsert $SPL $UBOOT $FDL1 $FDL2 $UBOOTAUTO $SML $TOS $DDR_SCAN $SPL_EMMC $SPL_UFS
|
|
else
|
|
#the next line is for dynamic TA and wcn/gnss key
|
|
if [ "pss" = $PSS_FLAG ]; then
|
|
python $TA_DESTDIR/dynamicTA/genkey/main_process.py $PRODUCT_OUT $TA_DESTDIR rsa4096
|
|
else
|
|
python $TA_DESTDIR/dynamicTA/genkey/main_process.py $PRODUCT_OUT $TA_DESTDIR rsa2048
|
|
fi
|
|
doImgHeaderInsert $SPL $UBOOT $FDL1 $FDL2 $UBOOTAUTO $SML $TOS $DDR_SCAN $BOOT $RECOVERY $DTB $DTBO $AGDSP $PM_SYS $SPL_EMMC $SPL_UFS $RecoveryDTB
|
|
if [ "$?" = "1" ]; then
|
|
return 1
|
|
fi
|
|
doSignImage $SPLSIGN $UBOOTSIGN $FDL1SIGN $FDL2SIGN $SMLSIGN $TOSSIGN $UBOOTAUTOSIGN $DDR_SCANSIGN $BOOTSIGN $RECOVERYSIGN $DTBSIGN $DTBOSIGN $AGDSPSIGN $PM_SYSSIGN $SPL_EMMCSIGN $SPL_UFSSIGN $RecoveryDTBSIGN
|
|
#$HOST_OUT/imgheaderinsert $VBMETA 1 1
|
|
fi
|
|
;;
|
|
"clean")
|
|
#do nothing
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
}
|
|
|
|
doPackImage "$@"
|
|
|