[Huawei Ideos X5 U8800] matteof93:
I have written a script that lets all users to customize the official ICS released by Huawei. I have tested the script but it does not work, so i want to share my work to find my errors and to help other users to optimize their phone.

I need someone who knows how to write scripts in bash......this is the script:

#! /system/bin/sh

################################
# ICS Optimizer #
# #
# by matteof93 #
################################

mount -o remount,rw -t yaffs2 /dev/block/mmcblk0 /system

main_menu()
{
clear
echo "-----------------------------------------------------"
echo "- ICS Optimizer Script -"
echo "-----------------------------------------------------"
echo "01. Unlock FPS"
echo "02. Change CPU scheduler"
echo "03. Enable Jit"
echo "04. Change Dalvik VM heapsize"
echo "05. Force Launcher in memory"
echo "06. Disable Bootanimation"
echo "07. Increase touch and scrolling responsiveness"
echo "08. Apply other build.prop tweaks"
echo "09. Prepare Android for optimization process"
echo "10. Restore defaults"
echo
echo "11. Reboot"
echo
echo "12. Exit"
echo "----------------------------"
echo -n "Select an option: "
read unlockfps
case $unlockfps in
01)
unlockfps
;;
02)
scheduler
;;
03)
jit
;;
04)
changedalvik
;;
05)
launchermemory
;;
06)
bootanimation
;;
07)
increaseresponsiveness
;;
08)
othertweaks
;;
09)
prepareandroid
;;
10)
resotredefaultsettings
;;
11)
rebootxx
;;
12)
exitxx
esac
}

main_menu

echo "Invalid Option!"
read -p "Press ENTER to continue..."
clear
main_menu

#######################################################################

noop(){
clear
cp /sdcard/ICS-Optimization-Script/Schedulers/Noop/06scheduler /system/etc/init.d
cd /system/etc/init.d
chmod 777 06scheduler
echo "Scheduler changed..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
scheduler
}

cfq(){
clear
cp /sdcard/ICS-Optimization-Script/Schedulers/Cfq/06scheduler
/system/etc/init.d
cd /system/etc/init.d
chmod 777 06scheduler
echo "Scheduler chenged..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
scheduler
}

scheduler()
{
clear
echo "-----------------------------------------------------"
echo "- CPU Scheduler Changer -"
echo "-----------------------------------------------------"
echo "01. Noop"
echo "02. Cfq"
echo
echo "03. Main Menu"
echo "----------------------------"
echo -n "Select an option: "
read noop
case $noop in
01)
noop
;;
02)
cfq
;;
03)
main menu
esac
}

#######################################################################

removefpslimit()
{
clear
cp /sdcard/ICS-Optimization-Script/UnlockFPS/08uncapfps /system/etc/init.d
cd /system/etc/init.d
chmod 777 08uncapfps
echo "FPS Unlocked..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
unlockfps
}

unlockfps()
{
clear
echo "-----------------------------------------------------"
echo "- Unlock FPS -"
echo "-----------------------------------------------------"
echo "01. Remove FPS limit"
echo
echo "02. Main Menu"
echo "--------------------------"
echo -n "Select an option: "
read removefpslimit
case $removefpslimit in
01)
removefpslimit
;;
02)
main menu
esac
}

#######################################################################

enablejit()
{
clear
echo "#Jit enabled" | tee -a /system/build.prop
echo "dalvik.vm.execution-mode=int:jit" | tee -a /system/build.prop
echo "Jit enabled..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
jit
}

disablejit()
{
clear
sed -i '/#Jit enabled/d' /system/build.prop
sed -i '/dalvik.vm.execution-mode=int:jit/d' /system/build.prop
echo "Jit disabled..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
jit
}

jit()
{
clear
echo "-----------------------------------------------------"
echo "- Enable Jit -"
echo "-----------------------------------------------------"
echo "01. Enable Jit"
echo "02. Disable Jit"
echo
echo "03. Main Menu"
echo "--------------------------"
echo -n "Select an option: "
read enablejit
case $enablejit in
01)
enablejit
;;
02)
disablejit
;;
03)
main menu
esac
}

#######################################################################

prepareandroid()
{
clear
cp /system/build.prop /sdcard/build.prop
mv /sdcard/build.prop /sdcard/build.prop.bak
mkdir /system/etc/init.d
echo "Android System prepared to optimization..."
echo "Please Reboot..."
read -p "Press ENTER to continue..."
clear
main_menu
}

#######################################################################

dalvik64()
{
clear
cd /system
sed -i 's/dalvik.vm.heapstartsize=5m/dalvik.vm.heapstartsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=12m/dalvik.vm.heapstartsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=16m/dalvik.vm.heapstartsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=24m/dalvik.vm.heapstartsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=32m/dalvik.vm.heapstartsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=48m/dalvik.vm.heapstartsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=64m/dalvik.vm.heapstartsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=12m /dalvik.vm.heapsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=16m /dalvik.vm.heapsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=24m /dalvik.vm.heapsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=32m /dalvik.vm.heapsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=48m /dalvik.vm.heapsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=64m /dalvik.vm.heapsize=64m/g' build.prop
echo "Dalvik VM heapsize value has been changed..."
echo "Please Reboot..."
read -p "Press ENTER to continue..."
clear
changedalvik
}

dalvik48()
{
clear
cd /system
sed -i 's/dalvik.vm.heapstartsize=5m/dalvik.vm.heapstartsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=12m/dalvik.vm.heapstartsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=16m/dalvik.vm.heapstartsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=24m/dalvik.vm.heapstartsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=32m/dalvik.vm.heapstartsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=48m/dalvik.vm.heapstartsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=64m/dalvik.vm.heapstartsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapsize=12m /dalvik.vm.heapsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapsize=16m /dalvik.vm.heapsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapsize=24m /dalvik.vm.heapsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapsize=32m /dalvik.vm.heapsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapsize=48m /dalvik.vm.heapsize=48m/g' build.prop
sed -i 's/dalvik.vm.heapsize=64m /dalvik.vm.heapsize=48m/g' build.prop
echo "Dalvik VM heapsize value has been changed..."
echo "Please Reboot..."
read -p "Press ENTER to continue..."
clear
changedalvik
}

dalvik32()
{
clear
cd /system
sed -i 's/dalvik.vm.heapstartsize=5m/dalvik.vm.heapstartsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=12m/dalvik.vm.heapstartsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=16m/dalvik.vm.heapstartsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=24m/dalvik.vm.heapstartsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=32m/dalvik.vm.heapstartsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=48m/dalvik.vm.heapstartsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=64m/dalvik.vm.heapstartsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapsize=12m /dalvik.vm.heapsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapsize=16m /dalvik.vm.heapsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapsize=24m /dalvik.vm.heapsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapsize=32m /dalvik.vm.heapsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapsize=48m /dalvik.vm.heapsize=32m/g' build.prop
sed -i 's/dalvik.vm.heapsize=64m /dalvik.vm.heapsize=32m/g' build.prop
echo "Dalvik VM heapsize value has been changed..."
echo "Please Reboot..."
read -p "Press ENTER to continue..."
clear
changedalvik
}

dalvik24()
{
clear
cd /system
sed -i 's/dalvik.vm.heapstartsize=5m/dalvik.vm.heapstartsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=12m/dalvik.vm.heapstartsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=16m/dalvik.vm.heapstartsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=24m/dalvik.vm.heapstartsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=32m/dalvik.vm.heapstartsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=48m/dalvik.vm.heapstartsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=64m/dalvik.vm.heapstartsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapsize=12m /dalvik.vm.heapsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapsize=16m /dalvik.vm.heapsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapsize=24m /dalvik.vm.heapsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapsize=32m /dalvik.vm.heapsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapsize=48m /dalvik.vm.heapsize=24m/g' build.prop
sed -i 's/dalvik.vm.heapsize=64m /dalvik.vm.heapsize=24m/g' build.prop
echo "Dalvik VM heapsize value has been changed..."
echo "Please Reboot..."
read -p "Press ENTER to continue..."
clear
changedalvik
}

dalvik16()
{
clear
cd /system
sed -i 's/dalvik.vm.heapstartsize=5m/dalvik.vm.heapstartsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=12m/dalvik.vm.heapstartsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=16m/dalvik.vm.heapstartsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=24m/dalvik.vm.heapstartsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=32m/dalvik.vm.heapstartsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=48m/dalvik.vm.heapstartsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=64m/dalvik.vm.heapstartsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapsize=12m /dalvik.vm.heapsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapsize=16m /dalvik.vm.heapsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapsize=24m /dalvik.vm.heapsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapsize=32m /dalvik.vm.heapsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapsize=48m /dalvik.vm.heapsize=16m/g' build.prop
sed -i 's/dalvik.vm.heapsize=64m /dalvik.vm.heapsize=16m/g' build.prop
echo "Dalvik VM heapsize value has been changed..."
echo "Please Reboot..."
read -p "Press ENTER to continue..."
clear
changedalvik
}

dalvik12()
{
clear
cd /system
sed -i 's/dalvik.vm.heapstartsize=5m/dalvik.vm.heapstartsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=12m/dalvik.vm.heapstartsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=16m/dalvik.vm.heapstartsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=24m/dalvik.vm.heapstartsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=32m/dalvik.vm.heapstartsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=48m/dalvik.vm.heapstartsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=64m/dalvik.vm.heapstartsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapsize=12m /dalvik.vm.heapsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapsize=16m /dalvik.vm.heapsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapsize=24m /dalvik.vm.heapsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapsize=32m /dalvik.vm.heapsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapsize=48m /dalvik.vm.heapsize=12m/g' build.prop
sed -i 's/dalvik.vm.heapsize=64m /dalvik.vm.heapsize=12m/g' build.prop
echo "Dalvik VM heapsize value has been changed..."
echo "Please Reboot..."
read -p "Press ENTER to continue..."
clear
changedalvik
}

restoredefault()
{
clear
cd /system
sed -i 's/dalvik.vm.heapstartsize=5m/dalvik.vm.heapstartsize=5m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=12m/dalvik.vm.heapstartsize=5m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=16m/dalvik.vm.heapstartsize=5m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=24m/dalvik.vm.heapstartsize=5m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=32m/dalvik.vm.heapstartsize=5m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=48m/dalvik.vm.heapstartsize=5m/g' build.prop
sed -i 's/dalvik.vm.heapstartsize=64m/dalvik.vm.heapstartsize=5m/g' build.prop
sed -i 's/dalvik.vm.heapsize=12m /dalvik.vm.heapsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=16m /dalvik.vm.heapsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=24m /dalvik.vm.heapsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=32m /dalvik.vm.heapsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=48m /dalvik.vm.heapsize=64m/g' build.prop
sed -i 's/dalvik.vm.heapsize=64m /dalvik.vm.heapsize=64m/g' build.prop
echo "Dalvik VM heapsize value has been changed..."
echo "Please Reboot..."
read -p "Press ENTER to continue..."
clear
changedalvik
}

changedalvik()
{
clear
echo "-----------------------------------------------------"
echo "- Dalvik VM heapsize changer -"
echo "-----------------------------------------------------"
echo "01. Set Dalvik VM heapsize to 48"
echo "02. Set Dalvik VM heapsize to 32"
echo "03. Set Dalvik VM heapsize to 24"
echo "04. Set Dalvik VM heapsize to 16"
echo "05. Set Dalvik VM heapsize to 12"
echo "06. Restore default Dalvik VM heapsize value"
echo
echo "07. Main Menu"
echo "--------------------------"
echo -n "Select an option: "
read dalvik48
case $dalvik48 in
01)
dalvik48
;;
02)
dalvik32
;;
03)
dalvik24
;;
04)
dalvik16
;;
05)
dalvik12
;;
06)
restoredefault
;;
07)
main menu
esac
}

#######################################################################

launchermemoryin()
{
clear
echo "#Force Launcher in memory" | tee -a /system/build.prop
echo "ro.home_app_adj=1" | tee -a /system/build.prop
echo "Launcher forced in memory..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
launchermemory
}

launchermemoryout()
{
clear
sed -i '/#Force Launcher in memory/d' /system/build.prop
sed -i '/ro.home_app_adj=1/d' /system/build.prop
echo "Launcher forced in memory..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
launchermemory
}

launchermemory()
{
clear
echo "-----------------------------------------------------"
echo "- Force Launcher in memory -"
echo "-----------------------------------------------------"
echo "01. Force Launcher in memory"
echo "02. Remove Launcher from memory"
echo
echo "03. Main Menu"
echo "--------------------------"
echo -n "Select an option: "
read launchermemoryin
case $launchermemoryin in
01)
launchermemoryin
;;
02)
launchermemoryout
;;
03)
main menu
esac
}

#######################################################################

nobootanimation()
{
clear
echo "#Bootanimation disabled" | tee -a /system/build.prop
echo "debug.sf.nobootanimation=1" | tee -a /system/build.prop
echo "Bootanimation disabled..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
bootanimation
}

bootanimationon()
{
clear
sed -i '/#Bootanimation disabled/d' /system/build.prop
sed -i '/debug.sf.nobootanimation=1/d' /system/build.prop
echo "Bootanimation enabled..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
bootanimation
}

bootanimation()
{
clear
echo "-----------------------------------------------------"
echo "- Enable\Disable Bootanimation -"
echo "-----------------------------------------------------"
echo "01. Disable Bootanimation"
echo "02. Enable Bootanimation"
echo
echo "03. Main Menu"
echo "--------------------------"
echo -n "Select an option: "
read nobootanimation
case $nobootanimation in
01)
nobootanimation
;;
02)
bootanimationon
;;
03)
main menu
esac
}

#######################################################################

applytweaks()
{
clear
echo "#Increase Touch\Scrolling responsiveness" | tee -a /system/build.prop
echo "windowsmgr.max_events_per_sec=150" | tee -a /system/build.prop
echo "video.accelerate.hw=1" | tee -a /system/build.prop
echo "debug.performance.tuning=1" | tee -a /system/build.prop
echo "ro.min.fling_velocity=8000" | tee -a /system/build.prop
sed -i 's/ro.max.fling_velocity=4000/ro.max.fling_velocity=12000/g' build.prop
echo "Tweaks applied..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
increaseresponsiveness
}

defaults()
{
clear
sed -i '/#Increase Touch\Scrolling responsiveness/d' /system/build.prop
sed -i '/windowsmgr.max_events_per_sec=150/d' /system/build.prop
sed -i '/video.accelerate.hw=1/d' /system/build.prop
sed -i '/debug.performance.tuning=1/d' /system/build.prop
sed -i '/ro.min.fling_velocity=8000/d' /system/build.prop
sed -i 's/ro.max.fling_velocity=12000/ro.max.fling_velocity=4000/g' build.prop
echo "default settings restored..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
increaseresponsiveness
}

increaseresponsiveness()
{
clear
echo "-----------------------------------------------------"
echo "- Touch\Scrolling responsiveness -"
echo "-----------------------------------------------------"
echo "01. Apply tweaks"
echo "02. Restore default"
echo
echo "03. Main Menu"
echo "--------------------------"
echo -n "Select an option: "
read applytweaks
case $applytweaks in
01)
applytweaks
;;
02)
defaults
;;
03)
main menu
esac
}

#######################################################################

applyothertweaks()
{
echo "#Other tweaks" | tee -a /system/build.prop
echo "wifi.supplicant_scan_interval=180" | tee -a /system/build.prop
sed -i 's/ro.config.hw_RemindWifiToPdp=true/ro.config.hw_RemindWifiToPdp=false/g' build.prop
echo "Tweaks applied..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
othertweaks
}

restoreothertweaks()
{
sed -i 's/ro.config.hw_RemindWifiToPdp=false/ro.config.hw_RemindWifiToPdp=true/g' build.prop
sed -i '/#Other tweaks/d' /system/build.prop
sed -i '/wifi.supplicant_scan_interval=180/d' /system/build.prop
echo "default settings restored..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
othertweaks
}

othertweaks()
{
clear
echo "-----------------------------------------------------"
echo "- Other Tweaks -"
echo "-----------------------------------------------------"
echo "01. Apply tweaks"
echo "02. Restore default"
echo
echo "03. Main Menu"
echo "--------------------------"
echo -n "Select an option: "
read applyothertweaks
case $applyothertweaks in
01)
applyothertweaks
;;
02)
restoreothertweaks
;;
03)
main menu
esac
}

#######################################################################

restoredefaultsettings2()
{
clear
rm /system/build.prop
cp /sdcard/build.prop.bak /system
mv /system/build.prop.bak /system/build.prop
rmdir /system/etc/init.d
echo "default settings restored..."
echo "Reboot to apply the new settings..."
read -p "Press ENTER to continue..."
clear
restoredefaultsettings
}

restoredefaultsettings()
{
clear
echo "-----------------------------------------------------"
echo "- Restore Default Settings -"
echo "-----------------------------------------------------"
echo "01. Restore default settings"
echo
echo "02. Main Menu"
echo "--------------------------"
echo -n "Select an option: "
read restoredefaultsettings2
case $restoredefaultsettings2 in
01)
restoredefaultsettings2
;;
02)
main menu
esac
}

#######################################################################

rebootxx()
{
clear
echo "Rebooting..."
reboot
}

exitxx()
{
clear
echo "Bye!"
exit
}

actually it does not work.....there are some errors.

is there someone that can help me????