Thomas Martitz | 249bba0 | 2011-12-24 11:56:46 +0000 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | ###################################################################### |
| 4 | # __________ __ ___. |
| 5 | # Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| 6 | # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| 7 | # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| 8 | # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| 9 | # \/ \/ \/ \/ \/ |
| 10 | # |
| 11 | # * Script to generate a Samsung YP-R0 firmware file (R0.ROM) */ |
| 12 | ###################################################################### |
| 13 | # |
| 14 | # This file was oringally called NewPack.sh, its origin is the R0 open source |
| 15 | # package from Samsung. |
| 16 | # |
| 17 | # Muon Platform |
| 18 | # Copyright (c) 2004-2009 Samsung Electronics, Inc. |
| 19 | # All rights reserved. |
| 20 | # |
| 21 | # Rom Packaging Script |
| 22 | # It needs sudoer privilege of rm, mkdir, cp, mkcramfs. |
| 23 | # You can configure it in the /etc/sudoer file. |
| 24 | # This script is very dangerous. Be careful to use. |
| 25 | # |
| 26 | # SangMan Sim<sangman.sim@samsung.com> |
| 27 | |
| 28 | # bail out early |
| 29 | set -e |
| 30 | |
| 31 | DIR=${2:-"."} |
| 32 | DIR=${DIR%/} |
| 33 | REVISION="$DIR/RevisionInfo.txt" |
| 34 | CRAMFS="$DIR/cramfs-fsl.rom" |
| 35 | SYSDATA="$DIR/SYSDATA.bin" |
| 36 | MBOOT="$DIR/MBoot.bin" |
| 37 | MBOOT_TMP="${TMP_DIR:-$DIR}/MBoot.tmp" |
| 38 | LINUX="$DIR/zImage" |
| 39 | R0ROM=$1 |
| 40 | |
| 41 | # some sanity checks |
| 42 | if [ $# -lt 1 ] || [ $# -gt 2 ]; then |
| 43 | echo "Usage $0 <rom file> [path to image files]" |
| 44 | exit 1 |
| 45 | fi |
| 46 | |
| 47 | if [ ! -f ./MuonEncrypt ]; then |
| 48 | echo "Couldn't find MuonEncrypt binary (try 'make')" |
| 49 | exit 1 |
| 50 | fi |
| 51 | |
| 52 | if [ ! -e $REVISION ]; then |
| 53 | cat >$REVISION <<EOF |
| 54 | Version : V2.30 |
| 55 | Target : KR |
| 56 | EOF |
| 57 | fi |
| 58 | |
| 59 | |
| 60 | function WriteImage { |
| 61 | echo "Adding $1 to $R0ROM" |
| 62 | #HEAD_STR=[`stat -c%s $1`/`md5sum $1 | cut -d " " -f 1`] |
| 63 | #HEAD_SIZE=`echo $HEAD_STR | wc -c` |
| 64 | #PACK_SIZE=`expr 44 - $HEAD_SIZE` |
| 65 | |
| 66 | #while [ $PACK_SIZE -gt 0 ] |
| 67 | #do |
| 68 | #PACK_SIZE=`expr $PACK_SIZE - 1` |
| 69 | #echo -n 0 |
| 70 | #done |
| 71 | |
| 72 | ./MuonEncrypt $1 >> $R0ROM |
| 73 | #cat $MBOOT >> $R0ROM |
| 74 | } |
| 75 | |
| 76 | function Pack4Byte { |
| 77 | FILE_SIZE=`stat -c%s $R0ROM` |
| 78 | PACK_SIZE=`expr 4 - $FILE_SIZE % 4` |
| 79 | |
| 80 | if [ $PACK_SIZE != 4 ] |
| 81 | then |
| 82 | while [ $PACK_SIZE -gt 0 ] |
| 83 | do |
| 84 | PACK_SIZE=`expr $PACK_SIZE - 1` || true |
| 85 | echo -en $1 >> $R0ROM |
| 86 | done |
| 87 | fi |
| 88 | |
| 89 | } |
| 90 | |
| 91 | echo Make $R0ROM |
| 92 | |
| 93 | cat $REVISION > $R0ROM |
| 94 | echo User : $USER >> $R0ROM |
| 95 | echo Dir : $PWD >> $R0ROM |
| 96 | echo BuildTime : `date "+%y/%m/%d %H:%M:%S"` >> $R0ROM |
| 97 | echo MBoot : size\(`stat -c%s $MBOOT`\),checksum\(`md5sum $MBOOT | cut -d " " -f 1`\) >> $R0ROM |
| 98 | echo Linux : size\(`stat -c%s $LINUX`\),checksum\(`md5sum $LINUX | cut -d " " -f 1`\) >> $R0ROM |
| 99 | echo RootFS : size\(`stat -c%s $CRAMFS`\),checksum\(`md5sum $CRAMFS | cut -d " " -f 1`\) >> $R0ROM |
| 100 | echo Sysdata : size\(`stat -c%s $SYSDATA`\),checksum\(`md5sum $SYSDATA | cut -d " " -f 1`\) >> $R0ROM |
| 101 | |
| 102 | Pack4Byte "\\n" |
| 103 | |
| 104 | |
| 105 | dd if=$MBOOT of=$MBOOT_TMP bs=96 count=1 2> /dev/null |
| 106 | |
| 107 | echo `stat -c%s $MBOOT`:`md5sum $MBOOT | cut -d " " -f 1` >> $MBOOT_TMP |
| 108 | echo `stat -c%s $LINUX`:`md5sum $LINUX | cut -d " " -f 1` >> $MBOOT_TMP |
| 109 | echo `stat -c%s $CRAMFS`:`md5sum $CRAMFS | cut -d " " -f 1` >> $MBOOT_TMP |
| 110 | echo `stat -c%s $SYSDATA`:`md5sum $SYSDATA | cut -d " " -f 1` >> $MBOOT_TMP |
| 111 | |
| 112 | dd if=$MBOOT of=$MBOOT_TMP bs=1088 skip=1 seek=1 2> /dev/null |
| 113 | WriteImage $MBOOT_TMP |
| 114 | |
| 115 | #rm $MBOOT_TMP |
| 116 | |
| 117 | Pack4Byte "0" |
| 118 | |
| 119 | WriteImage $LINUX |
| 120 | |
| 121 | Pack4Byte "0" |
| 122 | |
| 123 | WriteImage $CRAMFS |
| 124 | |
| 125 | Pack4Byte "0" |
| 126 | |
| 127 | WriteImage $SYSDATA |
| 128 | |
| 129 | echo $R0ROM : `stat -c%s $R0ROM`, `md5sum $R0ROM | cut -d " " -f 1` |
| 130 | #head -9 $R0ROM |
| 131 | |
| 132 | echo "Done" |