195 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			195 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/system/bin/sh
 | |
| 
 | |
| # Paths to programs
 | |
| #IFCONFIG=/system/bin/ifconfig
 | |
| PPPD=/system/bin/pppd
 | |
| PPPOE=/system/bin/pppoe
 | |
| ECHO="/system/bin/log -t pppoe_setup"
 | |
| #ECHO=echo
 | |
| 
 | |
| # Set to "C" locale so we can parse messages from commands
 | |
| LANG=C
 | |
| export LANG
 | |
| 
 | |
| CONFIG=/data/misc/ppp/pppoe.conf
 | |
| RESOLV=/data/misc/ppp/resolv.conf
 | |
| VARRUN=/data/misc/ppp
 | |
| PPP_DIR=/data/misc/ppp
 | |
| #LOG=/data/misc/ppp/log
 | |
| #LOG=/dev/console
 | |
| SETPROP=/system/bin/setprop
 | |
| GETPROP=/system/bin/getprop
 | |
| BUSYBOX=busybox
 | |
| 
 | |
| if [ -n "$1" ] ; then
 | |
| _account=$1
 | |
| _iface=$2
 | |
| _demand=$3
 | |
| _dns1=$4
 | |
| _dns2=$5
 | |
| _password=$6
 | |
| _firewall=$7
 | |
| else
 | |
| _account=`$GETPROP net.pppoe.account`
 | |
| _iface=`$GETPROP net.pppoe.iface`
 | |
| _demand=no
 | |
| _dns1=server
 | |
| _dns2=
 | |
| _password=`$GETPROP net.pppoe.password`
 | |
| _firewall=NONE
 | |
| fi
 | |
| 
 | |
| $ECHO "-------------------PPPOE--------------------"     
 | |
| 
 | |
| $ECHO "setprop net.pppoe.status setuping"
 | |
| $SETPROP "net.pppoe.status" "setuping"  
 | |
| 
 | |
| # Protect created files
 | |
| umask 077
 | |
| 
 | |
| copy() {
 | |
|     $BUSYBOX cp $1 $2
 | |
|     if [ "$?" != 0 ] ; then
 | |
|         $ECHO "*** Error copying $1 to $2"     
 | |
|         $ECHO "*** Quitting."    
 | |
|         exit 1
 | |
|     fi
 | |
| }
 | |
| 
 | |
| # Prototype config file must exist
 | |
| if [ ! -r "$CONFIG" ] ; then
 | |
|     $ECHO "Oh, dear, I don't see the file '$CONFIG' anywhere."     
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| # Must have pppd
 | |
| if [ ! -x $PPPD ] ; then
 | |
|     $ECHO "Oops, I can't execute the program '$PPPD'.  You"     
 | |
|     $ECHO "must install the PPP software suite, version 2.3.10 or later."     
 | |
|     exit 1
 | |
| fi
 | |
| export CONFIG
 | |
| . $CONFIG
 | |
| 
 | |
| if [ "$DEMAND" = "" ] ; then
 | |
|     DEMAND=no
 | |
| fi
 | |
| 
 | |
| # pppoe must exist
 | |
| #if [ ! -x "$PPPOE" ] ; then
 | |
| #    $ECHO "Oh, dear, I can't execute the program '$PPPOE'."
 | |
| #    exit 1
 | |
| #fi
 | |
|     USER=$_account
 | |
|     $ECHO "USER NAME: $USER"     
 | |
| 
 | |
|     ETH=$_iface
 | |
|     $ECHO "INTERFACE: $ETH"     
 | |
| 
 | |
| #    $ECHO "Do you want the link to come up on demand, or stay up continuously?"
 | |
| #    $ECHO "If you want it to come up on demand, enter the idle time in seconds"
 | |
| #    $ECHO "after which the link should be dropped.  If you want the link to"
 | |
| #    $ECHO "stay up permanently, enter 'no' (two letters, lower-case.)"
 | |
| #    $ECHO "NOTE: Demand-activated links do not interact well with dynamic IP"
 | |
| #    $ECHO "addresses.  You may have some problems with demand-activated links."
 | |
|     DEMAND=$_demand
 | |
|     $ECHO "DEMAND: $DEMAND"     
 | |
| 
 | |
|     DNS1=$_dns1
 | |
|     DNS2=$_dns2
 | |
|     $ECHO "DNS1: $DNS1"     
 | |
|     $ECHO "DNS2: $DNS2"     
 | |
| 
 | |
|     PWD=$_password
 | |
| #    $ECHO "PASSWORD: $PWD"     
 | |
|     $ECHO "PASSWORD:"     
 | |
| 
 | |
| 
 | |
|     # Firewalling
 | |
| #    $ECHO "The firewall choices are:"
 | |
| #    $ECHO "NONE: This script will not set any firewall rules.  You are responsible"
 | |
| #    $ECHO "          for ensuring the security of your machine.  You are STRONGLY"
 | |
| #    $ECHO "          recommended to use some kind of firewall rules."
 | |
| #    $ECHO "STANDALONE: Appropriate for a basic stand-alone web-surfing workstation"
 | |
| #    $ECHO "MASQUERADE: Appropriate for a machine acting as an Internet gateway"
 | |
| #    $ECHO "                for a LAN"
 | |
|     FIREWALL=$_firewall
 | |
|     $ECHO "FIREWALL: $FIREWALL"     
 | |
| 
 | |
| 
 | |
| # Adjust configuration files.  First to $CONFIG
 | |
| 
 | |
| $ECHO "Adjusting $CONFIG"     
 | |
| 
 | |
| copy $CONFIG $CONFIG-bak
 | |
| if [ "$DNS1" = "server" ] ; then
 | |
|     DNSTYPE=SERVER
 | |
|     DNS1=""
 | |
|     PEERDNS=yes
 | |
| else
 | |
|     PEERDNS=no
 | |
|     if [ "$DNS1" = "" ] ; then
 | |
| 	DNSTYPE=NOCHANGE
 | |
|     else
 | |
| 	DNSTYPE=SPECIFY
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| # Some #$(*& ISP's use a slash in the user name...
 | |
| $BUSYBOX sed -e "s&^USER=.*&USER='$USER'&" \
 | |
|     -e "s&^ETH=.*Ð='$ETH'&" \
 | |
|     -e "s&^PIDFILE=.*&PIDFILE=\"$VARRUN/\$CF_BASE-pppoe.pid\"&" \
 | |
|     -e "s/^FIREWALL=.*/FIREWALL=$FIREWALL/" \
 | |
|     -e "s/^DEMAND=.*/DEMAND=$DEMAND/" \
 | |
|     -e "s/^DNSTYPE=.*/DNSTYPE=$DNSTYPE/" \
 | |
|     -e "s/^DNS1=.*/DNS1=$DNS1/" \
 | |
|     -e "s/^DNS2=.*/DNS2=$DNS2/" \
 | |
|     -e "s/^PEERDNS=.*/PEERDNS=$PEERDNS/" \
 | |
|     < $CONFIG-bak > $CONFIG
 | |
| 
 | |
| if [ $? != 0 ] ; then
 | |
|     $ECHO "** Error modifying $CONFIG"     
 | |
|     $ECHO "** Quitting"     
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| 
 | |
| if [ "$DNS1" != "" ] ; then
 | |
|     if [ "$DNS1" != "server" ] ; then
 | |
| 	$ECHO "Adjusting $RESOLV"     
 | |
| 	if [ -r $RESOLV ] ; then
 | |
| 	    $ECHO "  (First backing it up to $RESOLV-bak)"     
 | |
| 	    $BUSYBOX cp $RESOLV $RESOLV-bak
 | |
| 	    rm $RESOLV
 | |
| 	fi
 | |
| 	echo "nameserver $DNS1" >> $RESOLV
 | |
| 	if [ "$DNS2" != "" ] ; then
 | |
| 	    echo "nameserver $DNS2" >> $RESOLV
 | |
| 	fi
 | |
| 	chmod 644 $RESOLV
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| $ECHO "Adjusting $PPP_DIR/pap-secrets and $PPP_DIR/chap-secrets"     
 | |
| if [ -r $PPP_DIR/pap-secrets ] ; then
 | |
|     $ECHO "  (But first backing it up to $PPP_DIR/pap-secrets-bak)"     
 | |
|     copy $PPP_DIR/pap-secrets $PPP_DIR/pap-secrets-bak
 | |
| else
 | |
|     $BUSYBOX cp /dev/null $PPP_DIR/pap-secrets-bak
 | |
| fi
 | |
| if [ -r $PPP_DIR/chap-secrets ] ; then
 | |
|     $ECHO "  (But first backing it up to $PPP_DIR/chap-secrets-bak)"     
 | |
|     copy $PPP_DIR/chap-secrets $PPP_DIR/chap-secrets-bak
 | |
| else
 | |
|     $BUSYBOX cp /dev/null $PPP_DIR/chap-secrets-bak
 | |
| fi
 | |
| 
 | |
| $BUSYBOX egrep -v "^$USER|^\"$USER\"" $PPP_DIR/pap-secrets-bak > $PPP_DIR/pap-secrets
 | |
| echo "\"$USER\"	*	\"$PWD\"" >> $PPP_DIR/pap-secrets
 | |
| $BUSYBOX egrep -v "^$U|^\"$U\"" $PPP_DIR/chap-secrets-bak > $PPP_DIR/chap-secrets
 | |
| echo "\"$USER\"	*	\"$PWD\"" >> $PPP_DIR/chap-secrets
 | |
| 
 | |
| $ECHO "setprop net.pppoe.status setuped"     
 | |
| $SETPROP "net.pppoe.status" "setuped"
 | |
| exit 0
 |