The sansa build now uses this new mi4 creation script, working as a frontend
to the mi4code tool to do all steps from raw binary to complete mi4 file git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10429 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
bb5330cb88
commit
ca4bd6f599
3 changed files with 100 additions and 3 deletions
|
@ -20,3 +20,4 @@ ucl/src/Makefile
|
|||
ucl/include/ucl/*.h
|
||||
profile_reader/*.pl
|
||||
rockboxdev.sh
|
||||
mkmi4.sh
|
||||
|
|
5
tools/configure
vendored
5
tools/configure
vendored
|
@ -921,11 +921,10 @@ toolsdir='\$(ROOTDIR)/tools'
|
|||
target="-DSANSA_E200"
|
||||
memory=32 # supposedly
|
||||
arm7tdmicc
|
||||
#tool="$rootdir/tools/ -add=iax5"
|
||||
tool="$rootdir/tools/mi4code build"
|
||||
tool="$rootdir/tools/mkmi4.sh e200"
|
||||
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
|
||||
bmp2rb_native="$rootdir/tools/bmp2rb -f 5"
|
||||
output="rockbox.sansa"
|
||||
output="PP5022.mi4"
|
||||
appextra="recorder:gui"
|
||||
archosrom=""
|
||||
flash=""
|
||||
|
|
97
tools/mkmi4.sh
Executable file
97
tools/mkmi4.sh
Executable file
|
@ -0,0 +1,97 @@
|
|||
#!/bin/sh
|
||||
# __________ __ ___.
|
||||
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||||
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||||
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||||
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||||
# \/ \/ \/ \/ \/
|
||||
# $Id$
|
||||
#
|
||||
# Purpose of this script:
|
||||
#
|
||||
# Inputs: music player model name and a file name
|
||||
#
|
||||
# Action: Build a valid mi4 file (prepending and appending magic)
|
||||
# Encrypt the file with TEA encryption so that the model's own
|
||||
# bootloader accepts this file.
|
||||
# Sign the file with a DSA signature the bootloader accepts
|
||||
#
|
||||
# Output: A built, encrypted and signed mi4 file image.
|
||||
#
|
||||
# Requirement:
|
||||
#
|
||||
# This script assumes that you have the mi4code tool in your path, that
|
||||
# you have the environment variable MI4CODE pointing to the tool or that you
|
||||
# have it in the same dir that you invoke this script with.
|
||||
#
|
||||
# mi4 info and tool are here: http://daniel.haxx.se/sansa/mi4.html
|
||||
#
|
||||
|
||||
mkmi4=$0
|
||||
target=$1
|
||||
input=$2
|
||||
output=$3
|
||||
|
||||
# scan the $PATH for the given command
|
||||
findtool(){
|
||||
file="$1"
|
||||
|
||||
IFS=":"
|
||||
for path in $PATH
|
||||
do
|
||||
# echo "checks for $file in $path" >&2
|
||||
if test -f "$path/$file"; then
|
||||
echo "$path/$file"
|
||||
return
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
help () {
|
||||
echo "Usage: mi4fix.sh <e200/h10> <input> <output>"
|
||||
exit
|
||||
}
|
||||
|
||||
if test -z "$output"; then
|
||||
help
|
||||
fi
|
||||
|
||||
case $target in
|
||||
e200)
|
||||
tea=sansa
|
||||
;;
|
||||
h10)
|
||||
tea=20gc_eng
|
||||
;;
|
||||
*)
|
||||
echo "unsupported target"
|
||||
help
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -z "$MI4CODE"; then
|
||||
tool=`findtool mi4code`
|
||||
if test -z "$tool"; then
|
||||
# not in path
|
||||
tool=`dirname $mkmi4`/mi4code
|
||||
if ! test -f $tool; then
|
||||
echo "Couldn't find mi4code"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
else
|
||||
tool=$MI4CODE
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# build a 010301 version
|
||||
echo "$tool build $input $output.raw"
|
||||
$tool build $input $output.raw
|
||||
# encrypt
|
||||
echo "$tool encrypt $output.raw $output.encrypt $tea"
|
||||
$tool encrypt $output.raw $output.encrypt $tea
|
||||
# sign
|
||||
echo "$tool sign $output.encrypt $output"
|
||||
$tool sign $output.encrypt $output
|
Loading…
Reference in a new issue