#!/bin/bash
###################################################################
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
#    For information : raul+bgandroid@bgta.net
####################################################################

###################################################################
# SET HERE DESIRED CYANOGEN VERSION
###################################################################
cm_version=4.0.4
sdk_path=/Developer/SDKs/android-sdk-mac_x86-1.5_r2/
# Version full o lite
make_version=full
# Número de parche (Solo es un número más que se añade al nombre del zip)
patch=2


###################################################################
###################################################################
###################################################################
function error
{
  echo "(EE) Ocurrió un error"
  exit -1
}


workdir=`pwd`"/bgandroid"

if [ ! -d $workdir ]; then
  echo Creando directorio $workdir...
  mkdir -p $workdir/resources
else
  echo Directorio $workdir existe...
fi

echo Entrando en $workdir/resources... 
cd $workdir/resources

if [ ! -e update-cm-$cm_version-signed.zip ]; then
  echo "Descargando Cyanogen $cm_version..."
  wget http://n0rp.chemlab.org/android/update-cm-$cm_version-signed.zip || error
else
  echo Fichero Cyanogen $cm_version descargado con anterioridad...
fi

if [ ! -e Gmail.apk ]; then
  echo Descargando Gmail.apk...
  wget http://dl.getdropbox.com/u/363315/Android/Gmail.apk || error
else
  echo Fichero Gmail.apk descargado con anterioridad...
fi

if [ ! -e Vending.apk ]; then
  echo Descargando Vending.apk...
  wget http://dl.getdropbox.com/u/363315/Android/Vending.apk || error
else
  echo Fichero Vending.apk descargado con anterioridad...
fi

echo Descargando ficheros de la distribución del teclado...
if [ ! -e trout-keypad-v3-spain-qwerty.kcm.bin ]; then
  wget http://dl.getdropbox.com/u/363315/Android/trout-keypad-v3-spain-qwerty.kcm.bin || error
fi
if [ ! -e trout-keypad-v3-spain-qwerty.kl ]; then
  wget http://dl.getdropbox.com/u/363315/Android/trout-keypad-v3-spain-qwerty.kl || error
fi

echo Descargando ficheros de firmado...
if [ ! -e signapk.jar ]; then
  wget http://dl.getdropbox.com/u/363315/Android/signapk.jar || error
fi
if [ ! -e testkey.pk8 ]; then
  wget http://dl.getdropbox.com/u/363315/Android/testkey.pk8 || error
fi
if [ ! -e testkey.x509.pem ]; then
  wget http://dl.getdropbox.com/u/363315/Android/testkey.x509.pem || error
fi

echo Descargando ficheros de APNs...
if [ ! -e apns-conf.xml ]; then
  wget http://dl.getdropbox.com/u/363315/Android/apns-conf.xml || error
fi

echo Descargando logotipo...
rm -rf android-logo-mask.png
if [ $make_version = "full" ]; then
	wget http://dl.getdropbox.com/u/363315/Android/android-logo-mask-full.png || error
	mv android-logo-mask-full.png android-logo-mask.png || error
fi
if [ $make_version = "lite" ]; then
	wget http://dl.getdropbox.com/u/363315/Android/android-logo-mask-lite.png || error
	mv android-logo-mask-lite.png android-logo-mask.png || error
fi

if [ $make_version = "full" ]; then
	echo VERSION FULL ACTIVA
	# Descargamos Wireless Tether for Root Users
	echo Descargando Wireless Tether for Root Users...
	if [ ! -e signed_andTether_1_52.apk ]; then
  		wget http://android-wifi-tether.googlecode.com/files/signed_andTether_1_52.apk || error
	fi
	echo Descargando ASTRO File Manager...
	if [ ! -e com.metago.astro.apk ]; then
  		wget http://dl.getdropbox.com/u/363315/Android/com.metago.astro.apk || error
	fi
	
	echo Descargando SIM Checker...
	if [ ! -e org.ajeje.simchecker15.apk ]; then
  		wget http://dl.getdropbox.com/u/363315/Android/org.ajeje.simchecker15.apk || error
	fi
	
	echo Descargando Botón 2G/3G...
	if [ ! -e com.curvefish.widgets.network2g3gonoff.apk ]; then
  		wget http://dl.getdropbox.com/u/363315/Android/com.curvefish.widgets.network2g3gonoff.apk || error
	fi
fi
# -----------------------------------------------------------------
cd $workdir

echo Eliminando archivos previos de `pwd`. 
echo Pulse enter para continuar o control+C para cancelar...
read
for i in `ls | grep -v resources`;do rm -rf $i;done

echo Descomprimiendo Cyanogen $cm_version
unzip -q resources/update-cm-$cm_version-signed || error

# Modificando el logo
rm -rf resources/framework-res.apk || error
echo Aplicando logotipo Cyanogen modificado:
echo Copiando framework-res.apk...
cp system/framework/framework-res.apk resources/framework-res.zip || error
echo Descomprimiendo...
rm -rf resources/framework-res
unzip -q -d resources/framework-res resources/framework-res.zip || error
echo Cambiando Android-logo-mask...
cp resources/android-logo-mask.png resources/framework-res/assets/images || error
echo Generando nuevo apk...
$sdk_path/tools/apkbuilder resources/framework-res.apk -rf resources/framework-res/
echo Copiando nuevo framework-res.apk...
cp resources/framework-res.apk system/framework/ || error

echo Eliminando Amazon MP3...
rm -rf system/app/com.amazon.mp3.apk

echo Eliminando Teaser...
rm -rf data/app/teeter.apk

# Eliminando soft si es lite
if [ $make_version = "lite" ]; then
	echo Eliminando Log Collector...
	rm -rf data/app/android-log-collector-1.0.0.apk
	echo Eliminando QuickOffice...
	rm -rf data/app/Quickoffice_HTC_1.0.1.apk
	echo Eliminando Spare Parts...
	rm -rf system/app/SpareParts.apk
	echo Eliminando Dev Tools...
	rm -rf system/app/Development.apk
	echo Eliminando Terminal...
	rm -rf system/app
	/Term.apk
fi

echo Eliminando Gmail en inglés y aplicando versión en Español...
rm -rf system/app/Gmail.apk
cp resources/Gmail.apk system/app || error

echo Eliminando Market en inglés y aplicando versión en Español...
rm -rf system/app/Vending.apk
cp resources/Vending.apk system/app || error

echo Aplicando disposición de teclado físico en español...
cp resources/trout-keypad-v3-spain-qwerty.kcm.bin system/usr/keychars/trout-keypad-v3.kcm.bin || error
cp resources/trout-keypad-v3-spain-qwerty.kl system/usr/keylayout/trout-keypad-v3.kl || error

echo Aplicando APNs españoles...
cp resources/apns-conf.xml system/etc/apns-conf.xml || error

if [ $make_version = "full" ]; then
	echo Copiando Wireless Tether for Root Users a la ROM ...
	cp resources/signed_andTether_1_52.apk data/app/signed_andTether.apk || error
	echo Copiando ASTRO File Manager a la ROM ...
	cp resources/com.metago.astro.apk data/app/ || error
	echo Copiando SIM Checker a la ROM ...
	cp resources/org.ajeje.simchecker15.apk system/app/ || error
	echo Copiando Widget 2G/3G a la ROM ...
	cp resources/com.curvefish.widgets.network2g3gonoff.apk data/app/ || error
fi

# Modificando build.prop
cat system/build.prop | sed s/ro.modversion=.*/ro.modversion=bgAndroid-cm-$cm_version-$patch/g > resources/build.prop
cp resources/build.prop system/build.prop

cm_version=$cm_version"-"$patch"-"$make_version

echo Generando nuevo zip...
zip -q -r bgandroid-cm-$cm_version.zip META-INF system boot.img data || error

echo Firmando ZIP...
cm_version_signed=$cm_version"_signed"
java -jar resources/signapk.jar resources/testkey.x509.pem resources/testkey.pk8 bgandroid-cm-$cm_version.zip bgandroid-cm-$cm_version_signed.zip || error

echo Proceso finalizado.
exit 0

