#!/system/bin/sh
# 开关
file_path="/data/adb/enable_wifi"
# 检查文件是否存在
if [ ! -f "$file_path" ]; then
# 如果文件不存在,创建文件并写入 "0"
echo "0" > "$file_path"
fi
file_content=$(cat $file_path)
LOGF=/data/local/tmp/service.d/enable_wifi.log
mkdir -p $(busybox dirname "$LOGF")
rm -f $LOGF
echo "Env info:" >> $LOGF
export >> $LOGF
SVC=/system/bin/svc
switch_data(){
while true; do
$SVC data enable # 启用移动数据
sleep 3 # 等待3秒
$SVC data disable # 禁用移动数据
sleep 250 # 等待250秒
done
}
wifiMode() {
echo "Enabling Wifi..."
$SVC data disable # avoid expensive data usage!
service call wifi 29 i32 0 i32 0 # name=null, enable=false
$SVC wifi disable
sleep 2
$SVC wifi enable
sleep 2
$SVC wifi prefer
# svc usb setFunction diag,serial_smd,rmnet_bam,adb rndis
# svc usb setFunction diag,serial_smd,rndis,adb
# $SVC usb setFunction diag,serial_smd,adb
}
tetherMode() {
echo "Enabling Tether..."
# $SVC data disable # avoid expensive data usage!
$SVC wifi disable
service call wifi 29 i32 0 i32 1 # name=null, enable=true
}
checkWifi() {
if ip a show wlan0 | grep inet | grep -v "scope link" | grep -v "169.254" >/dev/null; then
echo "Has WiFi IP"
return 0
else
echo "No WiFi IP"
return 1
fi
}
mainFunc() {
set -x
if [ -z "$DEBUG" ]; then
echo "Waiting for bootup!"
sleep 60
fi
for i in $(busybox seq 1 20); do # 1min not connected then go hotspot
wifiMode;
if checkWifi; then
echo "Wifi Connected, good to go!"
break
fi
if [ $i = 20 ]; then
echo "Failed to connect to WiFi! Going to tether mode!"
tetherMode;
break
fi
sleep 3
done
echo "Updating clock!"
for i in $(busybox seq 1 20); do
am broadcast -a android.intent.action.NETWORK_SET_TIME -f 536870912
sleep 2
done
}
# 检查文件内容
if [ "$file_content" = "1" ]; then
mainFunc >> $LOGF 2>&1
else
tetherMode >> $LOGF 2>&1
$SVC data enable
fi