| #!/sbin/busybox sh | 
|   | 
| module_path_8188eu=/res/8188eu.ko | 
| module_path_8192cu=/res/8192cu.ko | 
| module_path_rk903=/res/rkwifi.ko | 
| module_path_rt5370=/res/rt5370sta.ko | 
| module_path_mt7601=/res/mt7601sta.ko | 
| module_path_mtPrealloc7601=/res/mtprealloc7601Usta.ko | 
| module_path_8723au=/res/8723au.ko | 
| module_path_8723as=/res/8723as.ko | 
| module_path_wlan=/res/wlan.ko | 
| module_path_esp8089=/system/lib/modules/esp8089.ko | 
| result_file=/tmp/scan_result.txt | 
| result_file2=/tmp/scan_result2.txt | 
| chip_type_path=/sys/class/rkwifi/chip | 
| driver_node=/sys/class/rkwifi/driver | 
| pcba_node=/sys/class/rkwifi/pcba | 
| version_path=/proc/version | 
| module_path=$module_path_wlan | 
| chip_broadcom=false | 
| driver_buildin=false | 
| interface_up=true | 
| version=.3.0.36+ | 
| mt5931_kitkat=false | 
| android_kitkat=false | 
|   | 
| jmax=3 | 
|   | 
| if busybox cat $chip_type_path | busybox grep RK903; then | 
|   module_path=$module_path_rk903 | 
|   chip_broadcom=true | 
|   echo 1 > $pcba_node | 
| fi | 
|   | 
| if busybox cat $chip_type_path | busybox grep RK901; then | 
|   module_path=$module_path_rk903 | 
|   chip_broadcom=true | 
|   echo 1 > $pcba_node | 
| fi | 
|   | 
| if busybox cat $chip_type_path | busybox grep BCM4330; then | 
|   module_path=$module_path_rk903 | 
|   chip_broadcom=true | 
|   echo 1 > $pcba_node | 
| fi | 
|   | 
| if busybox cat $chip_type_path | busybox grep RTL8188CU; then | 
|   jmax=6 | 
|   module_path=$module_path_8192cu | 
| fi | 
|   | 
| if busybox cat $chip_type_path | busybox grep RTL8188EU; then | 
|   jmax=6 | 
|   module_path=$module_path_8188eu | 
| fi | 
|   | 
| if busybox cat $chip_type_path | busybox grep RT5370; then | 
|   jmax=6 | 
|   module_path=$module_path_rt5370 | 
| fi | 
|   | 
| if busybox cat $chip_type_path | busybox grep MT7601; then | 
|   jmax=6 | 
|   module_path=$module_path_mt7601 | 
|   echo "mt7601 insmod pre-alloc driver & copy firmware" | 
|   insmod "$module_path_mtPrealloc7601" | 
|   busybox cp /system/etc/firmware/RT2870STA.dat /etc/firmware/ | 
|   #interface_up=false | 
| fi | 
|   | 
| if busybox cat $chip_type_path | busybox grep RTL8723AU; then | 
|   module_path=$module_path_8723au | 
| fi | 
|   | 
| if busybox cat $chip_type_path | busybox grep RTL8723AS; then | 
|   module_path=$module_path_8723as | 
| fi   | 
|   | 
| if busybox cat $chip_type_path | busybox grep ESP8089; then | 
|   module_path=$module_path_esp8089 | 
| fi | 
|   | 
| if busybox cat $version_path | busybox grep 3.0.36+; then | 
|   echo "kernel version 3.0.36+" | 
|   if [ -e $module_path$version ]; then | 
|     module_path=$module_path$version | 
|   fi | 
| fi | 
|   | 
| if busybox ls /dev/wmtWifi | busybox grep wmtWifi; then | 
|   echo "mt5931_kitkat=true" | 
|   mt5931_kitkat=true | 
| fi | 
|   | 
| if busybox ifconfig wlan0; then | 
|   echo "android_kitkat=true" | 
|   android_kitkat=true | 
| fi | 
|   | 
| if busybox ls $driver_node; then | 
|   echo "wifi driver is buildin" | 
|   driver_buildin=true | 
| fi | 
|   | 
| echo "touch $result_file" | 
| busybox touch $result_file | 
|   | 
| j=0 | 
|   | 
| echo "get scan results" | 
| while [ $j -lt $jmax ];  | 
| do | 
|     echo "insmod wifi driver" | 
|     if [ $mt5931_kitkat = "true" ]; then | 
|         echo "echo 1 > /dev/wmtWifi" | 
|         echo 1 > /dev/wmtWifi | 
|     else | 
|       if [ $android_kitkat = "false" ]; then | 
|         if [ $driver_buildin = "true" ]; then | 
|           echo "echo 1 > $driver_node" | 
|           echo 1 > "$driver_node" | 
|         else | 
|           echo "insmod $module_path" | 
|           insmod "$module_path" | 
|         fi | 
|       fi | 
|     fi | 
|     if [ $? -ne 0 ]; then | 
|         echo "insmod failed" | 
|         exit 0 | 
|     fi | 
|   | 
|     echo "sleep 3s" | 
|     busybox sleep 3 | 
|   | 
|     if busybox ifconfig wlan0; then | 
|         if [ $interface_up = "true" ]; then | 
|             busybox ifconfig wlan0 up | 
|         fi | 
|         #if [ $? -ne 0 ]; then | 
|         #    echo "ifconfig wlan0 up failed" | 
|         #    exit 0 | 
|         #fi | 
|      | 
|         iwlist wlan0 scanning > $result_file | 
|         if [ $chip_broadcom = "true" ]; then | 
|             echo "sleep 3s" | 
|             busybox sleep 3     | 
|         fi | 
|         iwlist wlan0 scanning last | busybox grep SSID > $result_file | 
|         busybox cat $result_file | 
|         iwlist wlan0 scanning last | busybox grep "Signal level" > $result_file2 | 
|         busybox cat $result_file2 | 
|         echo "success" | 
|         exit 1 | 
|     fi | 
|   | 
|     echo "remove wifi driver" | 
|     if [ $mt5931_kitkat = "true" ]; then | 
|         echo "echo 0 > /dev/wmtWifi" | 
|         echo 0 > /dev/wmtWifi | 
|     else | 
|       if [ $android_kitkat = "false" ]; then | 
|         if [ $driver_buildin = "true" ]; then | 
|           echo "echo 0 > $driver_node" | 
|           echo 0 > "$driver_node" | 
|         else | 
|           echo "rmmod wlan" | 
|           rmmod wlan | 
|         fi | 
|       fi | 
|     fi | 
|     busybox sleep 1 | 
|      | 
|     j=$((j+1)) | 
| done | 
|   | 
| echo "wlan test failed" | 
| exit 0 |