keyclick: Add a callback so screens can cancel a click. Add a generic list callback...
[maemo-rb.git] / utils / ypr0tools / pack-firmware.sh
blobf3b55548d97b211af8e8f93d977ecfff367119d0
1 #!/bin/bash
3 ######################################################################
4 # __________ __ ___.
5 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
6 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
7 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
8 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
9 # \/ \/ \/ \/ \/
11 # * Script to generate a Samsung YP-R0 firmware file (R0.ROM) */
12 ######################################################################
14 # This file was oringally called NewPack.sh, its origin is the R0 open source
15 # package from Samsung.
17 # Muon Platform
18 # Copyright (c) 2004-2009 Samsung Electronics, Inc.
19 # All rights reserved.
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.
26 # SangMan Sim<sangman.sim@samsung.com>
28 # bail out early
29 set -e
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
41 # some sanity checks
42 if [ $# -lt 1 ] || [ $# -gt 2 ]; then
43 echo "Usage $0 <rom file> [path to image files]"
44 exit 1
47 if [ ! -f ./MuonEncrypt ]; then
48 echo "Couldn't find MuonEncrypt binary (try 'make')"
49 exit 1
52 if [ ! -e $REVISION ]; then
53 cat >$REVISION <<EOF
54 Version : V2.30
55 Target : KR
56 EOF
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`
66 #while [ $PACK_SIZE -gt 0 ]
67 #do
68 #PACK_SIZE=`expr $PACK_SIZE - 1`
69 #echo -n 0
70 #done
72 ./MuonEncrypt $1 >> $R0ROM
73 #cat $MBOOT >> $R0ROM
76 function Pack4Byte {
77 FILE_SIZE=`stat -c%s $R0ROM`
78 PACK_SIZE=`expr 4 - $FILE_SIZE % 4`
80 if [ $PACK_SIZE != 4 ]
81 then
82 while [ $PACK_SIZE -gt 0 ]
84 PACK_SIZE=`expr $PACK_SIZE - 1` || true
85 echo -en $1 >> $R0ROM
86 done
91 echo Make $R0ROM
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
102 Pack4Byte "\\n"
105 dd if=$MBOOT of=$MBOOT_TMP bs=96 count=1 2> /dev/null
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
112 dd if=$MBOOT of=$MBOOT_TMP bs=1088 skip=1 seek=1 2> /dev/null
113 WriteImage $MBOOT_TMP
115 #rm $MBOOT_TMP
117 Pack4Byte "0"
119 WriteImage $LINUX
121 Pack4Byte "0"
123 WriteImage $CRAMFS
125 Pack4Byte "0"
127 WriteImage $SYSDATA
129 echo $R0ROM : `stat -c%s $R0ROM`, `md5sum $R0ROM | cut -d " " -f 1`
130 #head -9 $R0ROM
132 echo "Done"