Skip to content

UI-Module und ctlmgr_ctl

Mit dem ctlmgr_ctl können interne Variablen von AVM angezeigt und bearbeitet werden die unter /var/flash/ zumeist in Textdateien gespeichert sind.
Manche dieser Variablen sind nicht, nicht mehr oder nur mit einem anderen Branding im Webinterface zu sehen.
Dies ist keine öffentliche und dokumentierte Schnittstelle und verhält sich teilweise sehr eigenwillig.
Manche Werte sind nicht änderbar oder andere akzeptieren nur gewisse Wertebereiche.
Andere lösen ein Ereignis aus und kehren zu ihrem Wert zurück.
Es kann auch Werte geben die man besser nicht ändern sollte.
Vor dem Experimentieren sollte man unbedingt eine Konfigurationsicherung erstellen.

Module

Die Module sind Kategorien wie zum Beispiel wlan, env oder tr069 die oft einzlene Konfigurationsdateien repräsentieren.

Um alle Module des Gerätes anzuzeigen:

Text Only
$ ctlmgr_ctl u | sed '1,2d'

rights
uimodlogic
boxusers
...
avmcounter
rrd
move

Keys

Die Keys sind die Variablen eines Modules. Diese beginnen mit settings/ und manche alternativ mit status/.

Um alle Keys eines Modules anzuzeigen:

Text Only
$ ctlmgr_ctl u  tr064

tr064:settings/
enabled=0
username=dslf-config
password=***
only_https=0
check_sid=error
doupdate_require_auth=1

Alle Variablen

Listet alle Module mit allen Keys und den gesetzten Werten auf.
Dieser Befehl braucht gut 1 Minute und speichert die Ausgabe zusätzlich in uimods.txt.

Text Only
for x in $(ctlmgr_ctl u | sed '1,2d'); do echo; ctlmgr_ctl u $x; done | tee uimods.txt

Variable lesen

Text Only
$ ctlmgr_ctl r  tr064 settings/username

dslf-config

oder

Text Only
$ ctlmgr_ctl r -v  tr064 settings/username

tr064:settings/username = dslf-config

Variable schreiben

Text Only
$ ctlmgr_ctl w  tr064 settings/username dslf-config

dslf-config

oder

Text Only
$ ctlmgr_ctl w -v  tr064 settings/username dslf-config

tr064:settings/username = dslf-config

Mehrere Variablen

Lesen:

Text Only
$ ctlmgr_ctl r  tr064 settings/enabled  tr064 settings/username

0
dslf-config

oder
Text Only
$ ctlmgr_ctl r -v  tr064 settings/enabled  tr064 settings/username

tr064:settings/enabled = 0
tr064:settings/username = dslf-config

Schreiben:
Text Only
$ctlmgr_ctl w  tr064 settings/enabled 0  tr064 settings/username dslf-config

0
dslf-config

oder
Text Only
$ ctlmgr_ctl w -v  tr064 settings/enabled 0  tr064 settings/username dslf-config

tr064:settings/enabled = 0
tr064:settings/username = dslf-config

Listen

Anzahl Elemente einer Liste ausgeben:

Text Only
$ ctlmgr_ctl r boxusers settings/user/count

2

Alle Elemente einer Liste anzeigen:

Text Only
$ ctlmgr_ctl l boxusers settings/user/list

  user0
  user1

Ausgewählte Variablen aller Elemente lesen:

Text Only
$ ctlmgr_ctl l boxusers "settings/user/list(UID,name,box_admin_rights)"

  user0   boxuser11       fritz   3
  user1   boxuser10       horst   0

Eine Variable eines Elementes lesen:

Text Only
$ ctlmgr_ctl r boxusers settings/user0/UID

boxuser11

Nächstes freies Element anzeigen:

Text Only
$ ctlmgr_ctl r boxusers settings/user/newid

user2

Ein neues Element anlegen:

Text Only
$ ctlmgr_ctl w  boxusers settings/user2/enabled 0  boxusers settings/user2/name horst  boxusers settings/user2/box_admin_rights 3  boxusers settings/user2/password aciouasvdtn

0
horst
3
****

Ein Element löschen:

Text Only
$ ctlmgr_ctl del  boxusers boxusers:command/user2