############################################################################
#
# Copyright (c) 2012 - dsixda (dislam@rocketmail.com)
#
# Android Kitchen is 100% free.  This script file is intended for personal
# and/or educational use only.  It may not be duplicated for monetary
# benefit or any other purpose without the permission of the developer.
#
############################################################################

#
# This script has two mandatory parameters:
#
# $1 = kernel offset (in decimal format) - this parameter is mandatory
# $2 = type of device (current options: mt65xx) - this parameter is optional
#

dec_offset=$1
type=$2

if [ "$dec_offset" == "" ]
then
  echo "Error: No kernel offset (page size) specified"
  exit 1
fi

pad_line_num=`sed -n -e '/static unsigned char padding/{=;q}' tools/mkboot/mkbootimg.c`
pgsz_line_num=`sed -n -e '/    unsigned pagesize = /{=;q}' tools/mkboot/mkbootimg.c`

str=`sed ''$pad_line_num'q;d' tools/mkboot/mkbootimg.c`
if [ "$str" != "static unsigned char padding[$dec_offset] = { 0, };" ]
then
  echo "Setting offset=$dec_offset in mkbootimg.c, line $pad_line_num"
  sed -i -e ''$pad_line_num's/.*/static unsigned char padding\['$dec_offset'\] = { 0, };/' tools/mkboot/mkbootimg.c
fi  

str=`sed ''$pgsz_line_num'q;d' tools/mkboot/mkbootimg.c`
if [ "$str" != "    unsigned pagesize = $dec_offset;" ]
then
  echo "Setting offset=$dec_offset in mkbootimg.c, line $pgsz_line_num"
  sed -i -e ''$pgsz_line_num's/.*/    unsigned pagesize = '$dec_offset';/' tools/mkboot/mkbootimg.c
fi


# Kernel offset in boot.img
str=`sed '23q;d' tools/extract_boot_files/extract-kernel.pl`
if [ "$str" != "\$pageSize = $dec_offset;" ]
then
  echo "Setting offset=$dec_offset in extract-kernel.pl, line 23"
  sed -i -e '23s/.*/$pageSize = '$dec_offset';/' tools/extract_boot_files/extract-kernel.pl
fi


# Chop kernel header
if [ "$type" == "mt65xx" ]
then
  new_str="\$kernel = substr(\$kernel, 512);"
else
  new_str=""
fi
str=`sed '25q;d' tools/extract_boot_files/extract-kernel.pl`
if [ "$str" != "$new_str" ]
then
  echo "Modifying extract-kernel.pl, line 25"
  sed -i -e '25s/.*/'"$new_str"'/' tools/extract_boot_files/extract-kernel.pl  
fi


# Ramdisk offset in boot.img
str=`sed '23q;d' tools/extract_boot_files/extract-ramdisk.pl`
if [ "$str" != "\$pageSize = $dec_offset;" ]
then
  echo "Setting offset=$dec_offset in extract-ramdisk.pl, line 23"
  sed -i -e '23s/.*/$pageSize = '$dec_offset';/' tools/extract_boot_files/extract-ramdisk.pl
fi


# Chop ramdisk header
if [ "$type" == "mt65xx" ]
then
  new_str="\$ram1 = substr(\$ram1, 512);"
else
  new_str=""
fi
str=`sed '31q;d' tools/extract_boot_files/extract-ramdisk.pl`
if [ "$str" != "$new_str" ]
then
  echo "Modifying extract-ramdisk.pl, line 31"
  sed -i -e '31s/.*/'"$new_str"'/' tools/extract_boot_files/extract-ramdisk.pl  
fi


exit 0


