#!/bin/sh
#author: boonbing @ xda developer

# set ANDROID_PATH for install/update and in case system and data are image files not partitions  
ANDROID_PATH=`grep -o '\brel_path=\w*' /proc/cmdline | sed 's/rel_path=//'`
[ "$ANDROID_PATH" = "" ] && ANDROID_PATH="/bootsdcard/ICS" || ANDROID_PATH="/bootsdcard/$ANDROID_PATH"
export ANDROID_PATH

####################################################
# HD2 Android SD/MAGLDR ROM system.ext2 Auto builder.
#        version 1.0    
#   By 3dak on 2011-04-29
##################################################

############################################################
# Read CWM ROM's updater-script
# Createa Symlinks and set permissions of folders and files
#############################################################

updater_script="/META-INF/com/google/android/updater-script"

# delete files
grep "delete_recursive" $updater_script | grep -v "tmp" | grep -v "recovery" | \
 while read LINE; do
     PERM=`echo $LINE | sed 's/delete_recursive(//g' | sed 's/);//g' | sed 's/"//g' | sed 's/ //g'`
	 rm -rf $PERM && echo "done"
	 
 done

grep "delete" $updater_script | grep -v "recursive" | grep -v "tmp" | grep -v "recovery" | \
 while read LINE; do
     PERM=`echo $LINE | sed 's/delete(//g' | sed 's/);//g' | sed 's/"//g' | sed 's/ //g'`
     rm -rf $PERM && echo "done"
 done

# create symbolic links

SYMLINKS=`grep "symlink" $updater_script | cut -d'"' -f2`
for SYMLINK in $SYMLINKS; do
    echo "Creating symolic links for $SYMLINK..."
     if [ "$SYMLINK" = "busybox" -o "$SYMLINK" = "iwmulticall" ]; then
         LINK_DIR='/system/xbin/'
		 MATCHES=`awk '/symlink\(\"'"$SYMLINK"'/,/\);/ {print}' $updater_script | \
              sed "s/symlink(\"$SYMLINK\",//g" | \
              sed 's/);//g' | \
              sed 's/"//g' | \
              sed 'N;s/\n//g' | \
              sed 's/ //g' | \
              sed 's/,/ /g' | \
              sed "s@$LINK_DIR@@g"`
		 cd /$LINK_DIR
		 for LINK in $MATCHES; do
			 echo -n "Linking $SYMLINK to $LINK... "
			 ln -sf /system/xbin/$SYMLINK /system/xbin/$LINK && echo "done"
		 done
     elif [ "$SYMLINK" = "toolbox" ]; then
         LINK_DIR='/system/bin/'
		 MATCHES=`awk '/symlink\(\"'"$SYMLINK"'/,/\);/ {print}' $updater_script | \
              sed "s/symlink(\"$SYMLINK\",//g" | \
              sed 's/);//g' | \
              sed 's/"//g' | \
              sed 'N;s/\n//g' | \
              sed 's/ //g' | \
              sed 's/,/ /g' | \
              sed "s@$LINK_DIR@@g"`
		 cd /$LINK_DIR
		 for LINK in $MATCHES; do
			 echo -n "Linking $SYMLINK to $LINK... "
			 ln -sf /system/bin/$SYMLINK /system/bin/$LINK && echo "done"
		 done
     fi
 done
 
 grep "symlink" $updater_script | grep -v "recursive" | grep -v "tmp" | grep -v "recovery" | \
 while read LINE; do
     PERM=`echo $LINE | sed 's/symlink(//g' | sed 's/);//g' | sed 's/"//g' | sed 's/ //g'`
     SOURCE=`echo $PERM | cut -d',' -f1`;
	 TARGET=`echo $PERM | cut -d',' -f2`;
     echo -n "Linking $SOURCE to $TARGET...  "
	 if [ "$SOURCE" = "busybox" -o "$SOURCE" = "iwmulticall" ]; then
		echo "do nothing"
	 elif [ "$SOURCE" = "toolbox" ]; then
		echo "do nothing"
	 elif [ "$SOURCE" = "/system/xbin/busybox" -o "$SOURCE" = "/system/xbin/su" -o "$SOURCE" = "/data/local/resolv.conf" -o "$SOURCE" = "dropbear" ]; then
		ln -sf $SOURCE $TARGET && echo "done"
	 else
		cp -af $SOURCE $TARGET && echo "done"
	 fi
	 
 done

# set permissions
 grep "set_perm_recursive" $updater_script | grep -v "tmp" | grep -v "recovery" | \
 while read LINE; do
     PERM=`echo $LINE | sed 's/set_perm_recursive(//g' | sed 's/);//g' | sed 's/"//g' | sed 's/ //g'`
     USER=`echo $PERM | cut -d',' -f1`;
     GROUP=`echo $PERM | cut -d',' -f2`;
     DIR_PERM=`echo $PERM | cut -d',' -f3`;
     FILE_PERM=`echo $PERM | cut -d',' -f4`;
     TARGET=`echo $PERM | cut -d',' -f5`;
     echo -n "Setting permissions for $TARGET... "
     chown -R $USER:$GROUP /$TARGET
     chmod -R $DIR_PERM /$TARGET
     find /$TARGET -type f -exec chmod $FILE_PERM {} \; && echo "done"
 done
 grep "set_perm" $updater_script | grep -v "recursive" | grep -v "tmp" | grep -v "recovery" | \
 while read LINE; do
     PERM=`echo $LINE | sed 's/set_perm(//g' | sed 's/);//g' | sed 's/"//g' | sed 's/ //g'`
     USER=`echo $PERM | cut -d',' -f1`;
     GROUP=`echo $PERM | cut -d',' -f2`;
     FILE_PERM=`echo $PERM | cut -d',' -f3`;
     TARGET=`echo $PERM | cut -d',' -f4`;
     echo -n "Setting permissions for $TARGET... "
     chown $USER:$GROUP /$TARGET
     chmod $FILE_PERM /$TARGET && echo "done"
 done



# EOF by 3dak :) 2011-04-29

# author: cedesmith
# date: 24.11.2010
# description: this script update the permissions of shutdown monitors

chmod 6755 /system/bin/su
chmod 6755 /system/xbin/su
chmod 755 /system/bin/busybox
chmod 755 /system/xbin/busybox
chmod 4755 /system/xbin/cssync
chmod -R 644 /system/app/*
chmod 644 /system/app/CSShutdownMonitor.apk
chmod 777 /system/etc/init.d
chmod -R 777 /system/etc/init.d/*

# prepare data.img system folders for non-Sense ROM
if [ ! -d /system/customize ]; then
	chmod 777 /data
	cp -af $ANDROID_PATH/update/data_files/* /data
	chmod -R 777 /data/*
fi

