diff options
Diffstat (limited to 'utils/ypr0tools/pack-firmware.sh')
-rwxr-xr-x | utils/ypr0tools/pack-firmware.sh | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/utils/ypr0tools/pack-firmware.sh b/utils/ypr0tools/pack-firmware.sh new file mode 100755 index 0000000000..f3b55548d9 --- /dev/null +++ b/utils/ypr0tools/pack-firmware.sh | |||
@@ -0,0 +1,132 @@ | |||
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" | ||