• Doesnotcompute
  • Registratie: Maart 2015
  • Laatst online: 06:29
Ik had vanochtend weer DT ipv fwainternet, heb je stappen gevolgd. In vivaldi werkte het niet, wel in firefox, waarvoor dank. Hoop dat het zo goed blijft. Bloedje irritant die vendorlocked firmwares.

Als ze bij verkoop nou eerlijk waren geweest, of gewoon een stock FW beschikbaar stelden.

  • nautaonline
  • Registratie: Januari 2004
  • Laatst online: 00:14
Ik heb met behulp van ChatGPT weten te vinden dat er dus wel een UserStartupScript is, zie hieronder. (Schaamteloos hem gevraagd de forumpost op te zetten zodat het hopelijk duidelijk genoeg is). Op een 2 tal NR7302's heb ik ook last van het terugvallen naar de verkeerde APN door de DT FW die mogelijk niet klopt. Onderstaande script is getest, natuurlijk wel op eigen risico gebruiken, maar ik vermoed dat er meer zijn die hier wat aan hebben :)

Wel root nodig, maar hoe je dat wachtwoord krijgt is al eerder beschreven :)

Edit:
Ik heb overigens wel:
Enable Customized Settings
op Individual staan.
Zyxel NR7302 – APN automatisch herstellen na firmware-update/FOTA
Bij de Deutsche Telekom-versie van de Zyxel NR7302 kan een firmware-update de handmatig ingestelde APN overschrijven. In mijn geval moet de APN fwainternet zijn, maar na een FOTA-update werd deze weer teruggezet naar:
code:
1
backup.telekom
Een normale reboot is geen probleem: een handmatig ingestelde APN blijft daarbij gewoon behouden. Het probleem treedt specifiek op bij een firmware-update, doordat de firmware tijdens de upgrade een rom_convert uitvoert waarin expliciet staat:
code:
1
APN: backup.telekom
Gelukkig blijkt de firmware zelf een verborgen mogelijkheid voor een eigen startup-script te hebben:
code:
1
/data/user_startup_parameters.sh
In het datamodel zit hiervoor:
code:
1
Device.X_ZYXEL_FEATRUE_FLAG.UserStartupScript
Als deze op 1 staat, wordt het script tijdens het booten uitgevoerd.
Vereisten
Hiervoor is shelltoegang als root op de NR7302 nodig. Voor zover ik heb kunnen testen is de normale admin-account uit de webinterface hiervoor niet voldoende.

Getest op:
code:
1
2
3
Product: NR7302
Firmware: 1.00(ACHA.6)F2
Build Date: 2026/06/08
Ook getest met een echte FOTA van:
code:
1
1.00(ACHA.5)b1_F0
naar:
code:
1
1.00(ACHA.6)F2
Daarbij bleven zowel /data/user_startup_parameters.sh als de UserStartupScript=1 instelling behouden.
Startup-script installeren
Onderstaand script controleert na iedere boot:
  • APN moet fwainternet zijn;
  • Manual APN moet ingeschakeld zijn;
  • username/password moeten leeg zijn;
  • Preferred Access Technology moet Auto zijn;
  • daarna wordt gecontroleerd of internet weer bereikbaar is via 8.8.8.8 of 1.1.1.1.
Het script logt alles naar /data/apn_startup.log.

Als fwainternet niet jouw APN is, pas dan uiteraard APN="fwainternet" aan.
Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
cat > /data/user_startup_parameters.sh <<'EOF'
#!/bin/sh

LOG="/data/apn_startup.log"
APN="fwainternet"
MAX_WAIT=90

echo "" >> "$LOG"
echo "===== $(date) startup APN check =====" >> "$LOG"

# Wacht totdat het Zyxel datamodel beschikbaar is
WAITED=0
CURRENT_APN=""

while [ "$WAITED" -lt "$MAX_WAIT" ]; do
    CURRENT_APN="$(ztr69cli get Device.Cellular.AccessPoint.1.APN 2>/dev/null | sed -n 's/.*: "\(.*\)"/\1/p')"

    if [ -n "$CURRENT_APN" ]; then
        break
    fi

    sleep 5
    WAITED=$((WAITED + 5))
done

if [ -z "$CURRENT_APN" ]; then
    echo "ERROR: ztr69/datamodel not ready after ${MAX_WAIT}s" >> "$LOG"
    echo "===== FAILED =====" >> "$LOG"
    exit 1
fi

echo "Datamodel ready after ${WAITED}s" >> "$LOG"

CURRENT_MANUAL="$(ztr69cli get Device.Cellular.AccessPoint.1.X_ZYXEL_ManualAPN 2>/dev/null | sed -n 's/.*: //p')"
CURRENT_USER="$(ztr69cli get Device.Cellular.AccessPoint.1.Username 2>/dev/null | sed -n 's/.*: "\(.*\)"/\1/p')"
CURRENT_TECH="$(ztr69cli get Device.Cellular.Interface.1.PreferredAccessTechnology 2>/dev/null | sed -n 's/.*: "\(.*\)"/\1/p')"

echo "Before: APN=$CURRENT_APN Manual=$CURRENT_MANUAL User=$CURRENT_USER Tech=$CURRENT_TECH" >> "$LOG"

CHANGED=0

if [ "$CURRENT_APN" != "$APN" ]; then
    echo "APN incorrect ($CURRENT_APN), restoring $APN" >> "$LOG"
    ztr69cli set Device.Cellular.AccessPoint.1.APN="$APN" >> "$LOG" 2>&1
    CHANGED=1
fi

if [ "$CURRENT_MANUAL" != "1" ]; then
    echo "ManualAPN incorrect ($CURRENT_MANUAL), setting 1" >> "$LOG"
    ztr69cli set Device.Cellular.AccessPoint.1.X_ZYXEL_ManualAPN=1 >> "$LOG" 2>&1
    CHANGED=1
fi

if [ -n "$CURRENT_USER" ]; then
    echo "Username present ($CURRENT_USER), clearing credentials" >> "$LOG"
    ztr69cli set Device.Cellular.AccessPoint.1.Username="" >> "$LOG" 2>&1
    ztr69cli set Device.Cellular.AccessPoint.1.Password="" >> "$LOG" 2>&1
    CHANGED=1
fi

if [ "$CURRENT_TECH" != "Auto" ]; then
    echo "Access technology incorrect ($CURRENT_TECH), setting Auto" >> "$LOG"
    ztr69cli set Device.Cellular.Interface.1.PreferredAccessTechnology="Auto" >> "$LOG" 2>&1
    CHANGED=1
fi

sleep 5

# Instellingen opnieuw uitlezen ter controle
FINAL_APN="$(ztr69cli get Device.Cellular.AccessPoint.1.APN 2>/dev/null | sed -n 's/.*: "\(.*\)"/\1/p')"
FINAL_MANUAL="$(ztr69cli get Device.Cellular.AccessPoint.1.X_ZYXEL_ManualAPN 2>/dev/null | sed -n 's/.*: //p')"
FINAL_USER="$(ztr69cli get Device.Cellular.AccessPoint.1.Username 2>/dev/null | sed -n 's/.*: "\(.*\)"/\1/p')"
FINAL_TECH="$(ztr69cli get Device.Cellular.Interface.1.PreferredAccessTechnology 2>/dev/null | sed -n 's/.*: "\(.*\)"/\1/p')"

echo "After: APN=$FINAL_APN Manual=$FINAL_MANUAL User=$FINAL_USER Tech=$FINAL_TECH Changed=$CHANGED" >> "$LOG"

# Eenmalige retry als APN/ManualAPN nog niet correct zijn
if [ "$FINAL_APN" != "$APN" ] || [ "$FINAL_MANUAL" != "1" ]; then
    echo "WARNING: APN verification failed - retrying" >> "$LOG"

    ztr69cli set Device.Cellular.AccessPoint.1.X_ZYXEL_ManualAPN=1 >> "$LOG" 2>&1
    ztr69cli set Device.Cellular.AccessPoint.1.APN="$APN" >> "$LOG" 2>&1

    sleep 10

    FINAL_APN="$(ztr69cli get Device.Cellular.AccessPoint.1.APN 2>/dev/null | sed -n 's/.*: "\(.*\)"/\1/p')"
    FINAL_MANUAL="$(ztr69cli get Device.Cellular.AccessPoint.1.X_ZYXEL_ManualAPN 2>/dev/null | sed -n 's/.*: //p')"

    echo "Retry result: APN=$FINAL_APN Manual=$FINAL_MANUAL" >> "$LOG"
fi

# Wacht maximaal 120 seconden op internet
echo "Waiting for internet connectivity..." >> "$LOG"

WAITED=0
INTERNET=0

while [ "$WAITED" -lt 120 ]; do
    if ping -c 1 -W 3 8.8.8.8 >/dev/null 2>&1; then
        echo "Internet: 8.8.8.8 OK after ${WAITED}s" >> "$LOG"
        INTERNET=1
        break
    fi

    if ping -c 1 -W 3 1.1.1.1 >/dev/null 2>&1; then
        echo "Internet: 1.1.1.1 OK after ${WAITED}s" >> "$LOG"
        INTERNET=1
        break
    fi

    sleep 5
    WAITED=$((WAITED + 5))
done

if [ "$INTERNET" = "0" ]; then
    echo "WARNING: No internet connectivity after ${WAITED}s" >> "$LOG"
fi

FINAL_APN="$(ztr69cli get Device.Cellular.AccessPoint.1.APN 2>/dev/null | sed -n 's/.*: "\(.*\)"/\1/p')"

if [ "$FINAL_APN" = "$APN" ]; then
    echo "RESULT: APN OK ($FINAL_APN)" >> "$LOG"
else
    echo "RESULT: APN FAILED ($FINAL_APN)" >> "$LOG"
fi

echo "===== $(date) done =====" >> "$LOG"

exit 0
EOF

chmod 755 /data/user_startup_parameters.sh

ztr69cli set Device.X_ZYXEL_FEATRUE_FLAG.UserStartupScript=1

sync
Daarna controleren of de startupfunctie daadwerkelijk aan staat:
Bash:
1
ztr69cli get Device.X_ZYXEL_FEATRUE_FLAG.UserStartupScript
Dit moet opleveren:
code:
1
Device.X_ZYXEL_FEATRUE_FLAG.UserStartupScript: 1
Je kunt het script eerst zonder reboot handmatig testen:
Bash:
1
2
/data/user_startup_parameters.sh
cat /data/apn_startup.log
Als alles al goed staat, krijg je bijvoorbeeld:
code:
1
2
3
4
5
6
Datamodel ready after 0s
Before: APN=fwainternet Manual=1 User= Tech=Auto
After: APN=fwainternet Manual=1 User= Tech=Auto Changed=0
Waiting for internet connectivity...
Internet: 8.8.8.8 OK after 0s
RESULT: APN OK (fwainternet)
Getest met een echte FOTA
Om te controleren of dit niet alleen een normale reboot overleeft, heb ik daarna opnieuw de FOTA uitgevoerd.

Na de firmware-update bleek de NR7302 de APN inderdaad weer veranderd te hebben naar backup.telekom. Het startup-script werd echter automatisch uitgevoerd en gaf:
code:
1
2
3
4
5
6
===== Fri Aug 21 08:30:35 CEST 2026 startup APN check =====
Before: APN=backup.telekom Manual=1 User= Tech=Auto
APN incorrect (backup.telekom), restoring fwainternet
Set success.
After: APN=fwainternet Manual=1 Tech=Auto Changed=1
===== done =====
Na het opstarten stond de router dus weer automatisch op:
code:
1
2
3
4
APN: fwainternet
ManualAPN: 1
Username: ""
PreferredAccessTechnology: Auto
Zowel het script in /data als:
code:
1
Device.X_ZYXEL_FEATRUE_FLAG.UserStartupScript=1
bleef bij de geteste FOTA behouden.

Let op: dit is getest op de Deutsche Telekom NR7302-firmware. Root-toegang en het wijzigen van verborgen datamodelparameters is uiteraard op eigen risico. Ik zou dit ook niet blind toepassen op een NR7302 met een andere provider/OEM-firmware zonder eerst te controleren of UserStartupScript daar aanwezig is.

  • Overv
  • Registratie: Juli 2009
  • Laatst online: 22-08 16:52
Volgens mij is er ook juist nu een bijna dagelijkse FOTA aan de gang omdat die mismatch tussen "1.00(ACHA.6)F2" en "1.00(ACHA.6)F2_F0" bestaat, dus dat is ook gewoon een bug die ze bij Deutsche moeten fixen.

Al eerder gepost.

[ Voor 5% gewijzigd door Overv op 21-08-2026 10:01 ]


  • ernstoud
  • Registratie: Januari 2015
  • Laatst online: 23-08 23:32
Doesnotcompute schreef op vrijdag 21 augustus 2026 @ 08:31:
Ik had vanochtend weer DT ipv fwainternet, heb je stappen gevolgd. In vivaldi werkte het niet, wel in firefox, waarvoor dank. Hoop dat het zo goed blijft. Bloedje irritant die vendorlocked firmwares.

Als ze bij verkoop nou eerlijk waren geweest, of gewoon een stock FW beschikbaar stelden.
Inderdaad. Wel was bekend dat deze verkoop van de NR7302 (tegen halve prijs) uit een partij van Deutsche Telekom was.

RIPE Atlas probe: 1005104


  • ernstoud
  • Registratie: Januari 2015
  • Laatst online: 23-08 23:32
nautaonline schreef op vrijdag 21 augustus 2026 @ 08:42:
Wel root nodig, maar hoe je dat wachtwoord krijgt is al eerder beschreven :)
Zoals gemeld werkt SSH en Telnet niet meer met deze laatste versie FW. Dus eerst de vorige versie terugzetten, link hierboven.

RIPE Atlas probe: 1005104


  • jamesbond007uk
  • Registratie: Maart 2005
  • Laatst online: 23-08 22:10

jamesbond007uk

Gadget specialist / Freak

ernstoud schreef op vrijdag 21 augustus 2026 @ 11:57:
[...]


Inderdaad. Wel wasbekend dat deze verkoop van de NR7302 (tegen halve prijs) uit een partij van Deutsche Telekom was.
Hier vanmorgen ook problemen. Heb de versie "1.00(ACHA.6)F2" van firmware en kon de root wachtwoord achterhalen en via Putty had ik toegang tot SSH. Alles hier gelukt met de script voor APN controle.

[ Voor 7% gewijzigd door jamesbond007uk op 21-08-2026 13:15 ]

Jamesbond007uk


  • ernstoud
  • Registratie: Januari 2015
  • Laatst online: 23-08 23:32
jamesbond007uk schreef op vrijdag 21 augustus 2026 @ 13:13:
[...]

Hier vanmorgen ook problemen. Heb de versie "1.00(ACHA.6)F2" van firmware en kon de root wachtwoord achterhalen en via Putty had ik toegang tot SSH. Alles hier gelukt met de script voor APN controle.
Ok mooi. Eerder meldde @Polyphemus dat SSH met deze FW niet meer zo werken. Wel bij jou dus. Bijzonder.

RIPE Atlas probe: 1005104


  • Polyphemus
  • Registratie: Maart 2003
  • Laatst online: 07:56
ernstoud schreef op vrijdag 21 augustus 2026 @ 13:28:
[...]


Ok mooi. Eerder meldde @Polyphemus dat SSH met deze FW niet meer zo werken. Wel bij jou dus. Bijzonder.
Het is hier een hit en miss met SSH, meer een miss dan een hit. Ik heb een policy based route naar de WAN poort waar de Zyxel aan hangt, zodat ik daar het IP-adres van de LAN zijde van de Zyxel vanuit intern benaderen kan. Ben er nog niet helemaal uit waarom dat rammelt. De web ui doet het wel gewoon goed via die PBR.

  • Polyphemus
  • Registratie: Maart 2003
  • Laatst online: 07:56
En nu dus wel; de PBR die ik had sluisde alleen poort 80 door die kant op, waarom 22 dan af en toe wel en dan weer niet doorgelaten werd, 'beats me'. Dus mea culpa als ik de verwarring gecreëerd heb dat SSH/Telnet gesneuveld was door de upgrade.

[ Voor 25% gewijzigd door Polyphemus op 21-08-2026 15:52 ]


  • ernstoud
  • Registratie: Januari 2015
  • Laatst online: 23-08 23:32
Polyphemus schreef op vrijdag 21 augustus 2026 @ 15:52:
En nu dus wel; de PBR die ik had sluisde alleen poort 80 door die kant op, waarom 22 dan af en toe wel en dan weer niet doorgelaten werd, 'beats me'. Dus mea culpa als ik de verwarring gecreëerd heb dat SSH/Telnet gesneuveld was door de upgrade.
Fijn om te weten dat DTAG dus SSH niet disabled heeft.

RIPE Atlas probe: 1005104


  • savemyphone
  • Registratie: Augustus 2026
  • Laatst online: 23-08 15:11
Bedankt @Polyphemus voor de oorspronkelijke GUI-methode. Wij hebben dezelfde oplossing inmiddels getest op een Telekom-NR7302 met firmware 1.00(ACHA.6)F2, na de herhaalde F2_F0-update en de APN-reset naar backup.telekom.

Bij ons werkte deze iets gerichtere variant via de Vue-component van de pagina Online Upgrade:
code:
1
2
window.f = document.querySelector('#pageFotaUpgrade').__vue__
f.$store.state.guiFlag.HideAutoOnlineUpgrade = true; f.$forceUpdate()
Daarna Auto Upgrade op OFF zetten en op Apply klikken. Ter controle:
code:
1
f.fotaObj.PeriodicCheckEnable
Dit moet false teruggeven. We hebben de instelling na het herladen en ook in een tweede browsersessie gecontroleerd; ze bleef opgeslagen. Hiervoor zijn geen root-/supervisorrechten en geen aangepaste firmware nodig. Na een fabrieksreset of latere firmware-update moet de instelling opnieuw worden gecontroleerd.

De volledige stap-voor-stap-handleiding, inclusief foutopsporing en veiligheids-/modelnotities, staat hier:
GitHub: Zyxel NR7302 disable auto update

Bevestigd is dit tot nu toe alleen op de NR7302 Telekom-variant. Andere NR7xxx-modellen gebruiken mogelijk dezelfde OPAL-/Vue-interface, maar dat is nog niet praktisch bevestigd.

  • Polyphemus
  • Registratie: Maart 2003
  • Laatst online: 07:56
savemyphone schreef op zondag 23 augustus 2026 @ 15:11:
Bedankt @Polyphemus voor de oorspronkelijke GUI-methode. Wij hebben dezelfde oplossing inmiddels getest op een Telekom-NR7302 met firmware 1.00(ACHA.6)F2, na de herhaalde F2_F0-update en de APN-reset naar backup.telekom.

Bij ons werkte deze iets gerichtere variant via de Vue-component van de pagina Online Upgrade:
code:
1
2
window.f = document.querySelector('#pageFotaUpgrade').__vue__
f.$store.state.guiFlag.HideAutoOnlineUpgrade = true; f.$forceUpdate()
Daarna Auto Upgrade op OFF zetten en op Apply klikken. Ter controle:
code:
1
f.fotaObj.PeriodicCheckEnable
Dit moet false teruggeven. We hebben de instelling na het herladen en ook in een tweede browsersessie gecontroleerd; ze bleef opgeslagen. Hiervoor zijn geen root-/supervisorrechten en geen aangepaste firmware nodig. Na een fabrieksreset of latere firmware-update moet de instelling opnieuw worden gecontroleerd.

De volledige stap-voor-stap-handleiding, inclusief foutopsporing en veiligheids-/modelnotities, staat hier:
GitHub: Zyxel NR7302 disable auto update

Bevestigd is dit tot nu toe alleen op de NR7302 Telekom-variant. Andere NR7xxx-modellen gebruiken mogelijk dezelfde OPAL-/Vue-interface, maar dat is nog niet praktisch bevestigd.
Bitte schön ;)

  • menn0
  • Registratie: Augustus 2000
  • Laatst online: 11:41
Ik heb het modem uiteindelijk via Ebay Italie gekocht, een jaar geleden en daar is nog geen firmware gepushed;


1.00(ACHA.5)b1_F0

Heb wel even via Dev Mode de online auto-update feature uitgezet.

Dank!
Pagina: 1 ... 5 6 Laatste