#!/bin/bash VER=2.5 ROM=Froyo_Sense_Revolution BUILD1_NAME=${ROM}_${VER}_CWM BUILD2_NAME=${ROM}_${VER}_DFT BUILD3_NAME=${ROM}_${VER}_LK BUILD1=/tmp/${BUILD1_NAME} BUILD2=/tmp/${BUILD2_NAME} BUILD3=/tmp/${BUILD3_NAME} TOOLS=${PWD}/../tools MKYAFFS=${TOOLS}/mkyaffs2image UNYAFFS=${TOOLS}/unyaffs MAIN=${PWD} syncDirs() { mkdir -p ${BUILD1} echo -n "Synchronising the build ... " rsync --exclude ".svn" -az ${MAIN}/../build/* ${BUILD1}/. echo "DONE" rm -rf ${BUILD1}/boot/initrd # Change the version number in build.prop sed -i s/ro.product.version=.*/ro.product.version=${VER}/g ${BUILD1}/system/build.prop sed -i s/ro.build.description=.*/ro.build.description=${ROM}/g ${BUILD1}/system/build.prop } set_perm_recursive() { file=`echo $5 | sed -E 's/\///'` chown -R $1:$2 $file find $file -type d -exec chmod $3 {} \; find $file -type f -exec chmod $4 {} \; } set_perm() { file=`echo $4 | sed -E 's/\///'` chown $1:$2 $file chmod $3 $file } doFiles() { # create symlinks for busybox pushd ${BUILD1}/system/xbin > /dev/null 2>&1 for file in `cat ${TOOLS}/busybox` do ln -sf busybox $file done popd > /dev/null 2>&1 # create symlinks for toolbox pushd ${BUILD1}/system/bin > /dev/null 2>&1 for file in `cat ${TOOLS}/toolbox` do ln -sf toolbox $file done popd > /dev/null 2>&1 # create symlink for su pushd ${BUILD1}/system/bin > /dev/null 2>&1 ln -sf ../xbin/su popd > /dev/null 2>&1 # To enable a2sd+ by default # app, app-private and dalvik-cache pushd ${BUILD1}/data > /dev/null 2>&1 ln -s /sd-ext/app ln -s /sd-ext/app-private ln -s /sd-ext/dalvik-cache touch .dalvikcache popd > /dev/null 2>&1 # To enable datasd uncomment the lines below #pushd ${BUILD1}/data > /dev/null 2>&1 #ln -s /sd-ext/data #touch .datasd #popd > /dev/null 2>&1 pushd ${BUILD1}/system/etc/init.d > /dev/null 2>&1 mv dtapp 04apps2sd popd > /dev/null 2>&1 # change permissions pushd ${BUILD1} > /dev/null 2>&1 set_perm_recursive 0 0 0755 0644 "/system" set_perm_recursive 0 2000 0755 0755 "/system/bin" set_perm 0 3003 02750 "/system/bin/netcfg" set_perm 0 3004 02755 "/system/bin/ping" set_perm 0 2000 06750 "/system/bin/run-as" set_perm_recursive 1002 1002 0755 0440 "/system/etc/bluetooth" set_perm 0 0 0755 "/system/etc/bluetooth" set_perm 1000 1000 0640 "/system/etc/bluetooth/auto_pairing.conf" set_perm 3002 3002 0444 "/system/etc/bluetooth/blacklist.conf" set_perm 1002 1002 0440 "/system/etc/dbus.conf" set_perm 1014 2000 0550 "/system/etc/dhcpcd/dhcpcd-run-hooks" set_perm_recursive 0 2000 0755 0750 "/system/etc/init.d" set_perm 0 0 0755 "/system/etc/init.d" set_perm 0 2000 0550 "/system/etc/init.goldfish.sh" #set_perm 0 0 0544 "/system/etc/install-recovery.sh" set_perm_recursive 0 0 0755 0555 "/system/etc/ppp" set_perm_recursive 0 2000 0755 0755 "/system/xbin" set_perm 0 0 06755 "/system/xbin/hcitool" set_perm 0 0 06755 "/system/xbin/librank" set_perm 0 0 06755 "/system/xbin/procmem" set_perm 0 0 06755 "/system/xbin/procrank" set_perm 0 0 06755 "/system/xbin/su" set_perm 0 0 06755 "/system/xbin/tcpdump" set_perm 0 0 04755 "/system/bin/pppd" popd > /dev/null 2>&1 } createDFT() { syncDirs pushd ${BUILD1} > /dev/null 2>&1 rm -rf ../${BUILD2_NAME}.7z rm -rf ${BUILD2} mkdir ${BUILD2} popd > /dev/null 2>&1 doFiles # create images echo -n "Creating DFT img files ... " pushd ${BUILD1} > /dev/null 2>&1 [ -d system ] && echo -n "system ... " && ${MKYAFFS} system ${BUILD2}/system.img > /dev/null 2>&1 [ -d boot ] && echo -n "boot ... " && ${MKYAFFS} boot ${BUILD2}/boot.img > /dev/null 2>&1 [ -d data ] && echo -n "data ... " && ${MKYAFFS} data ${BUILD2}/data.img > /dev/null 2>&1 [ -d recovery ] && echo -n "recovery ... " && ${MKYAFFS} recovery ${BUILD2}/recovery.img > /dev/null 2>&1 popd > /dev/null 2>&1 echo "DONE" cp ${TOOLS}/DFT/* ${BUILD2}/. pushd ${BUILD2}/.. > /dev/null 2>&1 echo -n "Creating DFT archive ... " 7zr a ${BUILD2_NAME}.7z ${BUILD2_NAME} > /dev/null 2>&1 echo "DONE" popd > /dev/null 2>&1 } createCWM() { syncDirs pushd ${BUILD1} > /dev/null 2>&1 rsync --exclude ".svn" -az ${TOOLS}/META-INF . pushd ${BUILD1}/boot > /dev/null 2>&1 if [[ "$1" == "LK" ]] ; then genInitrd LK ${TOOLS}/mkbootimg --kernel zImage --ramdisk initrd.gz --cmdline "console=null" --base 0x11800000 -o ${BUILD1}/boot.img popd > /dev/null 2>&1 rm -rf boot cp META-INF/com/google/android/updater-script.lk META-INF/com/google/android/updater-script touch system/ppp rm -rf ../${BUILD1_NAME}_LK.zip echo -n "Creating CWM LK zip file ... " zip -9Dry -q ../${BUILD1_NAME}_LK.zip * echo "DONE" rm -rf system/ppp else genInitrd popd > /dev/null 2>&1 cp META-INF/com/google/android/updater-script.std META-INF/com/google/android/updater-script rm -rf system/etc/init.d/00setup rm -rf ../${BUILD1_NAME}.zip echo -n "Creating CWM zip file ... " zip -9Dry -q ../${BUILD1_NAME}.zip * echo "DONE" fi rm -rf META-INF popd > /dev/null 2>&1 } createLK() { syncDirs pushd ${BUILD1} > /dev/null 2>&1 rm -rf ../${BUILD3_NAME}.7z rm -rf ${BUILD3} mkdir ${BUILD3} popd > /dev/null 2>&1 doFiles touch ${BUILD1}/system/ppp genInitrd LK pushd ${BUILD1}/boot > /dev/null 2>&1 ${TOOLS}/mkbootimg --kernel zImage --ramdisk initrd.gz --cmdline "console=null" --base 0x11800000 -o ${BUILD3}/boot.img popd > /dev/null 2>&1 pushd ${BUILD1} > /dev/null 2>&1 [ -d system ] && ${MKYAFFS} system ${BUILD3}/system.img > /dev/null 2>&1 [ -d data ] && ${MKYAFFS} data ${BUILD3}/data.img > /dev/null 2>&1 popd cp ${TOOLS}/fastboot* ${BUILD3}/. cp ${TOOLS}/recovery_lk.img ${BUILD3}/recovery.img pushd ${BUILD3}/.. > /dev/null 2>&1 echo -n "Creating LK archive ... " 7zr a ${BUILD3_NAME}.7z ${BUILD3_NAME} > /dev/null 2>&1 echo "DONE" popd > /dev/null 2>&1 rm -rf ${BUILD1}/system/ppp } genInitrd() { mkdir -p ${BUILD1}/boot/initrd rsync --exclude ".svn" -az ${MAIN}/../build/boot/initrd/ ${BUILD1}/boot/initrd echo -n "Creating initrd ... " pushd ${BUILD1}/boot/initrd > /dev/null 2>&1 chmod 770 bin/* if [[ "$1" == "LK" ]] ; then mv init.android init pushd sbin > /dev/null 2>&1 ln -sf ../init ueventd popd > /dev/null 2>&1 fi find .|cpio --quiet -H newc -o|gzip -9 -c - > ../initrd.gz popd > /dev/null 2>&1 rm -rf ${BUILD1}/boot/initrd echo "DONE" if [[ `echo $0 | grep createInitrd.sh` ]]; then cp ${BUILD1}/boot/initrd.gz /tmp/initrd.gz.$$ rm -rf ${BUILD1} mkdir ${BUILD1} cp /tmp/initrd.gz.$$ ${BUILD1}/initrd.gz ls -lh ${BUILD1}/initrd.gz exit 0 fi } echo Build started on `date` echo if [[ `echo $0 | grep createInitrd.sh` ]]; then if [[ "$1" == "LK" ]] ; then genInitrd LK else genInitrd fi fi syncDirs createCWM createCWM LK #createDFT #createLK rm -rf ${BUILD1} rm -rf ${BUILD2} rm -rf ${BUILD3} echo "your files are here" echo "" ls -lh /tmp/${ROM}_${VER}* echo echo Build finished on `date`