Created
February 22, 2026 23:15
-
-
Save kiki67100/1d830266c89dd4b0cf947ef0c89aeb7b to your computer and use it in GitHub Desktop.
ZTE MF920 (SFR Box 4G) — Change WiFi coverage via curl (short/medium/long_mode) Bypasses disabled UI, uses goform API with AD token authentication.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # ZTE MF920 — SET WiFi Coverage (fully automatic) | |
| # Usage: ./wifi_range.sh [short_mode|medium_mode|long_mode] | |
| ROUTER="http://192.168.0.1" | |
| MODE=${1:-"long_mode"} | |
| echo "=== [1] Login ===" | |
| STOK=$(curl -s -D - -X POST "$ROUTER/goform/goform_set_cmd_process" \ | |
| -H "Referer: $ROUTER/index.html" \ | |
| -H "Content-Type: application/x-www-form-urlencoded" \ | |
| -d "goformId=LOGIN&password=YWRtaW4=" \ | |
| | grep "Set-Cookie" | grep -o "stok=[^;]*" | cut -d= -f2) | |
| if [ -z "$STOK" ]; then | |
| echo "ERREUR: Login échoué" | |
| exit 1 | |
| fi | |
| echo "STOK=$STOK" | |
| echo "" | |
| echo "=== [2] Récupère RD0/RD1 (versions firmware) ===" | |
| VERS=$(curl -s -H "Cookie: stok=$STOK" \ | |
| -H "Referer: $ROUTER/index.html" \ | |
| "$ROUTER/goform/goform_get_cmd_process?cmd=wa_inner_version%2Ccr_version&multi_data=1") | |
| echo "VERS=$VERS" | |
| RD0=$(echo "$VERS" | grep -o '"wa_inner_version":"[^"]*"' | cut -d'"' -f4) | |
| RD1=$(echo "$VERS" | grep -o '"cr_version":"[^"]*"' | cut -d'"' -f4) | |
| echo "RD0=$RD0" | |
| echo "RD1=$RD1" | |
| echo "" | |
| echo "=== [3] Récupère RD (nonce) ===" | |
| RD=$(curl -s -H "Cookie: stok=$STOK" \ | |
| -H "Referer: $ROUTER/index.html" \ | |
| "$ROUTER/goform/goform_get_cmd_process?cmd=RD" \ | |
| | grep -o '"RD":"[^"]*"' | cut -d'"' -f4) | |
| echo "RD=$RD" | |
| echo "" | |
| echo "=== [4] Calcule AD ===" | |
| A=$(echo -n "${RD0}${RD1}" | md5sum | cut -d' ' -f1) | |
| AD=$(echo -n "${A}${RD}" | md5sum | cut -d' ' -f1) | |
| echo "A=$A" | |
| echo "AD=$AD" | |
| echo "" | |
| echo "=== [5] GET wifi_coverage actuel ===" | |
| CURRENT=$(curl -s -H "Cookie: stok=$STOK" \ | |
| -H "Referer: $ROUTER/index.html" \ | |
| "$ROUTER/goform/goform_get_cmd_process?cmd=wifi_coverage&multi_data=1") | |
| echo "Actuel: $CURRENT" | |
| echo "" | |
| echo "=== [6] SET wifi_coverage=$MODE ===" | |
| RESULT=$(curl -s -X POST \ | |
| -H "Cookie: stok=$STOK" \ | |
| -H "Referer: $ROUTER/index.html" \ | |
| -H "Content-Type: application/x-www-form-urlencoded" \ | |
| "$ROUTER/goform/goform_set_cmd_process" \ | |
| -d "goformId=SET_WIFI_COVERAGE&wifi_coverage=$MODE&AD=$AD") | |
| echo "Résultat SET: $RESULT" | |
| echo "" | |
| echo "=== [7] Vérifie après SET ===" | |
| sleep 1 | |
| NEW=$(curl -s -H "Cookie: stok=$STOK" \ | |
| -H "Referer: $ROUTER/index.html" \ | |
| "$ROUTER/goform/goform_get_cmd_process?cmd=wifi_coverage&multi_data=1") | |
| echo "Nouveau: $NEW" | |
| echo "" | |
| echo "=== DONE ===" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment