| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- #!/bin/sh
- # Copyright Statement:
- #
- # This software/firmware and related documentation ("MediaTek Software") are
- # protected under relevant copyright laws. The information contained herein
- # is confidential and proprietary to MediaTek Inc. and/or its licensors.
- # Without the prior written permission of MediaTek inc. and/or its licensors,
- # any reproduction, modification, use or disclosure of MediaTek Software,
- # and information contained herein, in whole or in part, shall be strictly prohibited.
- #
- # MediaTek Inc. (C) 2010. All rights reserved.
- #
- # BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
- # THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
- # RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
- # AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
- # NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
- # SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
- # SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
- # THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
- # THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
- # CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
- # SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
- # STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
- # CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
- # AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
- # OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
- # MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
- #
- # The following software/firmware and/or related documentation ("MediaTek Software")
- # have been modified by MediaTek Inc. All revisions are subject to any receiver's
- # applicable license agreements with MediaTek Inc.
- ##############################################################
- # Program:
- # SIGN TOOL
- #
- CUR_DIR=`pwd`
- if [ "$3" = "" ]; then
- echo "Usage: Sign Image .."
- echo " ./SignTool.sh [KEY] [CONFIG] [INPUT_IMAGE] [OUTPUT_IMAGE]"
- echo ""
- echo "Example:"
- echo " ./SignTool.sh IMG_KEY.ini IMG_CFG.ini u-boot.bin signed-u-boot.bin"
- echo ""
- exit 1;
- fi
- ##############################################################
- # Setup tool and nand page size
- SignToolDir=${0%/*}
- SignTool=${SignToolDir}/SignTool
- Simg2imgTool=${SignToolDir}/simg2img
- Yaffs2Covert=${SignToolDir}/yimg2img
- if [ "$5" = "2K" ] ; then
- NAND_PAGE_SIZE=2048
- elif [ "$5" = "4K" ] ; then
- NAND_PAGE_SIZE=4096
- elif [ "$5" = "1K" ] ; then
- NAND_PAGE_SIZE=1024
- else
- echo "[SignTool] NAND page size $5 not supported, set to default 2048!!"
- NAND_PAGE_SIZE=2048
- fi
- ##############################################################
- # Check if it is a sparse image or yaffs2 image
- Sparse_Str=`hexdump -n 4 $3 | head -n 1 | awk '{print $2,$3}'`
- Yaffs_Str=`hexdump $3 | head -n 1 | awk '{print $2,$3,$4,$5,$6,$7,$8,$9}'`
- if [ "$Sparse_Str" = "ff3a ed26" ] ; then
- echo "${Simg2imgTool} $3 $3.UN_SPARSE_TEMP_IMG"
- ${Simg2imgTool} $3 "$3.UN_SPARSE_TEMP_IMG"
- echo "${SignTool} $1 $2 $3.UN_SPARSE_TEMP_IMG $3.SIGNATURE $3.HEADER"
- ${SignTool} $1 $2 "$3.UN_SPARSE_TEMP_IMG" "$3.SIGNATURE" "$3.HEADER"
- if [ $? -eq 0 ] ; then
- echo "SIGN PASS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Sparse S1 IMG)"
- cp -f "$3.HEADER" "$3.EXT_HDR_SPARSE"
- cat "$3.SIGNATURE" >> "$3.EXT_HDR_SPARSE"
- else
- echo "SIGN FAIL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Sparse S1 IMG)"
- exit 1;
- fi
- rm -f "$3.SIGNATURE"
- rm -f "$3.HEADER"
- echo "${SignTool} $1 $2 $3 $3.SIGNATURE $3.HEADER $3.EXT_HDR_SPARSE"
- ${SignTool} $1 $2 $3 "$3.SIGNATURE" "$3.HEADER" "$3.EXT_HDR_SPARSE"
- if [ $? -eq 0 ] ; then
- echo "SIGN PASS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Sparse S2 IMG)"
- cp -f "$3.HEADER" $4
- cat $3 >> $4
- cat "$3.SIGNATURE" >> $4
- rm -f "$3.SIGNATURE"
- rm -f "$3.HEADER"
- else
- echo "SIGN FAIL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Sparse S2 IMG)"
- exit 1;
- fi
- rm -rf "$3.UN_SPARSE_TEMP_IMG"
- rm -rf "$3.EXT_HDR_SPARSE"
- elif [ "$Yaffs_Str" = "0003 0000 0001 0000 ffff 0000 0000 0000" ] ; then
- echo "${Yaffs2Covert} -c $NAND_PAGE_SIZE $3 $3.UN_YAFFS_TEMP_IMG"
- ${Yaffs2Covert} -c $NAND_PAGE_SIZE $3 "$3.UN_YAFFS_TEMP_IMG"
- echo "${SignTool} $1 $2 $3.UN_YAFFS_TEMP_IMG $3.SIGNATURE $3.HEADER"
- ${SignTool} $1 $2 "$3.UN_YAFFS_TEMP_IMG" "$3.SIGNATURE" "$3.HEADER"
- if [ $? -eq 0 ] ; then
- echo "SIGN PASS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Yaffs S1 IMG)"
- cp -f "$3.HEADER" "$3.EXT_HDR_SPARSE"
- cat "$3.SIGNATURE" >> "$3.EXT_HDR_SPARSE"
- else
- echo "SIGN FAIL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Yaffs S1 IMG)"
- exit 1;
- fi
- rm -f "$3.SIGNATURE"
- rm -f "$3.HEADER"
- echo "${SignTool} $1 $2 $3 $3.SIGNATURE $3.HEADER $3.EXT_HDR_SPARSE"
- ${SignTool} $1 $2 $3 "$3.SIGNATURE" "$3.HEADER" "$3.EXT_HDR_SPARSE"
- if [ $? -eq 0 ] ; then
- echo "SIGN PASS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Yaffs S2 IMG)"
- cp -f "$3.HEADER" $4
- cat $3 >> $4
- cat "$3.SIGNATURE" >> $4
- rm -f "$3.SIGNATURE"
- rm -f "$3.HEADER"
- else
- echo "SIGN FAIL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Yaffs S2 IMG)"
- exit 1;
- fi
- rm -rf "$3.UN_YAFFS_TEMP_IMG"
- rm -rf "$3.EXT_HDR_SPARSE"
- else
- echo "${SignTool} $1 $2 $3 $3.SIGNATURE $3.HEADER"
- ${SignTool} $1 $2 $3 "$3.SIGNATURE" "$3.HEADER"
- if [ $? -eq 0 ] ; then
- echo "SIGN PASS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Normal IMG)"
- #cp -f "$3.HEADER" $3.sig
- #cat "$3.SIGNATURE" >> $3.sig
- cp -f "$3.HEADER" $4
- cat $3 >> $4
- cat "$3.SIGNATURE" >> $4
- else
- echo "SIGN FAIL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(Normal IMG)"
- exit 1;
- fi
- rm -f "$3.SIGNATURE"
- rm -f "$3.HEADER"
- fi
|