#!/system/bin/sh
# Seeder entropy generator extended menu v4
# Ryuinferno @ XDA 2013

mount -o rw,remount /system

# Variables
magic=/system/etc/seeder_scripts
work_fol=/system/etc/init.d
divider="============================================="


   clear

   echo $divider
   echo ""
   echo " Seeder Entropy Generator Extended Menu v4"
   echo ""
   echo $divider  
 
   id=`id`; id=`echo ${id#*=}`; id=`echo ${id%%\(*}`; id=`echo ${id%% *}`
   if [ "$id" != "0" ] && [ "$id" != "root" ]; 
   then
   sleep 2
   echo $divider
   echo ""
   echo "You are NOT running as root..."
   echo ""
   echo $divider
   sleep 1
   echo ""
   echo "Please type 'su' first before typing 'seeder'..."
   echo ""
   exit
   fi

   pgrep rngd > /dev/null
   test=$?
   if [ $test -ne 1 ]; then
   seeder_switch="On"
   else
   seeder_switch="Off"
   fi
   
   if [ -e $work_fol/Seeder ]; then
   seeder_boot="Yes"
   else
   seeder_boot="No"
   fi

   sleep 1
   echo $divider
   echo ""
   echo "Seeder entropy generator: $seeder_switch"
   echo "Run at boot?: $seeder_boot"
   echo ""
   echo $divider
   sleep 1

   echo ""
   echo "Menu:"
   echo "1. Seeder entropy generator on/off"
   echo "2. Run at boot on/off"
   echo "3. Monitor entropy_avail"
   echo "4. Exit"
   echo ""

   echo -n "Please select an option [1-4]: "
   read option 

   if [ $option -eq 1 ]; then
   if [ $test -ne 1 ]; then
    echo "Switching seeder entropy generator off..."
	sleep 1
	pkill rngd
    echo "Done!"
	echo "Press enter to continue..."
	read enterKey
	seeder
   else
    echo "Switching seeder entropy generator on..."
	if pgrep qrngd > /dev/null; then
	  sleep 1
      echo "qrngd already running! Seeder will not be started!"
	  echo ""
	  echo "Press enter to continue..."
	  read enterKey
	  seeder
	else
	  if [ -e /system/bin/qrngd -o -e /system/xbin/qrngd ]; then
	    sleep 1
        echo "qrngd found in /system! Seeder will not be started!"
		echo ""
		echo "Press enter to continue..."
		read enterKey
		seeder
	  else
	    rngd -t 2 -T 1 -s 256 --fill-watermark=80%
        sleep 2
        echo -8 > /proc/$(pgrep rngd)/oom_adj
        renice 5 `pidof rngd`
        echo "Done!"
	    echo "Press enter to continue..."
	    read enterKey
	    seeder
	  fi
	fi
   fi
 
   elif [ $option -eq 2 ]; then
   if [ -e $work_fol/Seeder ]; then
    echo "Disabling init.d script..."
	sleep 1
	rm $work_fol/Seeder
    echo "Done!"
	echo "Press enter to continue..."
	read enterKey
	seeder
   else
    echo "Enabling init.d script..."
	sleep 1
	cp $magic/Seeder $work_fol/Seeder
	chmod 777 $work_fol/Seeder
    echo "Done!"
	echo "Press enter to continue..."
	read enterKey
	seeder
   fi
 
   elif [ $option -eq 3 ]; then
   clear
   sleep 1
   entro

   elif [ $option -eq 4 ]; then
   mount -o ro,remount /system
   sleep 1
   echo ""
   echo "Bye bye!" 
   echo ""
   echo $divider
   echo ""
   echo " Seeder Entropy Generator Extended Menu v4"
   echo ""
   echo $divider  
   exit
 
   else
   echo "Invalid option, please try again..."
   sleep 1
   seeder
   fi
 