hc
2025-02-14 bbb9540dc49f70f6b703d1c8d1b85fa5f602d86e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
 
set -ex
 
INPUT=$1
OUTPUT=$2
SIZE=$3
BUF=$4
 
COMMON_DIR=$(dirname $(readlink -f $0))
ROCKIMG_DIR=${COMMON_DIR}/../rockimg
 
if [ ! -e ${INPUT} ]; then
   echo "ERROR: No input file \"${INPUT}\""
   exit -1
fi
 
rm ${ROCKIMG_DIR}/${OUTPUT} || true
 
if [ ${SIZE} -gt 1024 ]; then
   echo "ERROR: SIZE bigger than 1K"
   exit -1
fi
 
BIG_END=$[SIZE / 256]
LIT_END=$[SIZE - (BIG_END * 256)]
BIG_END=$(echo "ibase=10;obase=16;${BIG_END}" | bc)
LIT_END=$(echo "ibase=10;obase=16;${LIT_END}" | bc)
 
dd if=${INPUT} of=${OUTPUT} bs=1k count=10
echo -en "\x${LIT_END}\x${BIG_END}" >> ${OUTPUT}
echo -n "$BUF" >> ${OUTPUT}
SKIP=$[10 * 1024 + SIZE + 2]
dd if=${INPUT} of=${OUTPUT} seek=${SKIP} skip=${SKIP} bs=1