4 |
5 | START=99
6 |
7 | start () {
8 | PORT=$(uci -q get 3ginfo.@3ginfo[0].http_port)
9 | [ -z $PORT ] && { PORT=81; }
10 | uhttpd -c /usr/share/3ginfo/uhttpd.conf -h /usr/share/3ginfo/ -p 0.0.0.0:$PORT > /dev/null 2>&1
11 | }
12 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/cgi-bin/limit.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | DEVICE=$(uci get 3ginfo.@3ginfo[0].device)
4 | SCRIPT=$(uci get 3ginfo.@3ginfo[0].script)
5 |
6 | echo -e "Content-type: text/html\n\n"
7 | if [ -e scripts/$SCRIPT.sh ]; then
8 | sh scripts/$SCRIPT.sh
9 | elif [ -e scripts/$SCRIPT.gcom ]; then
10 | if ! pidof gcom > /dev/null; then
11 | O=$(gcom -d $DEVICE -s scripts/$SCRIPT.gcom)
12 | echo "$O
"
13 | else
14 | echo "Brak możliwości sprawdzenia limitu. Spróbuj za chwilę.
"
15 | fi
16 | else
17 | echo "Brak skryptu $SCRIPT
"
18 | fi
19 | echo ""
20 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/cgi-bin/onoff.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | SEC=$(uci -q get 3ginfo.@3ginfo[0].network)
4 | [ -z "$SEC" ] && exit 0
5 |
6 | ALLOW=$(uci -q get 3ginfo.@3ginfo[0].connect_button)
7 | [ "x$ALLOW" = "x0" ] && exit 0
8 |
9 | UP=$(ifstatus $SEC | grep "\"up\": true")
10 | if [ -n "$UP" ]; then
11 | ifdown $SEC > /dev/null 2>&1
12 | else
13 | ifup $SEC > /dev/null 2>&1
14 | fi
15 |
16 | sleep 3
17 | exit 0
18 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/cgi-bin/signal.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | D=$(uci -q get 3ginfo.@3ginfo[0].device)
3 | echo -e "Content-type: text/html\n\n"
4 | if [ -e $D ]; then
5 | gcom -d $D sig | sed -e 's/ /,/g'
6 | fi
7 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/cgi-bin/ussd.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | echo "Content-type: text/html"
4 | echo ""
5 | echo "
6 |
7 |
26 |
27 | USSD
28 |
29 |
30 |
31 | "
32 | if [ "$REQUEST_METHOD" = POST ]; then
33 | read -t 3 QUERY_STRING
34 | eval $(echo "$QUERY_STRING"|awk -F'&' '{for(i=1;i<=NF;i++){print $i}}')
35 | action=`uhttpd -d $action`
36 | ussd=`uhttpd -d $ussd`
37 | else
38 | action="x"
39 | fi
40 |
41 | case "$action" in
42 | send)
43 | A=$(ussd159 -p $(uci get 3ginfo.@3ginfo[0].device) -t 30 -u "$ussd")
44 | echo "Odpowiedź: $A
"
45 | ;;
46 | esac
47 |
48 | echo "
49 |
54 |
55 | "
56 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/3ginfo/files-html-old/usr/share/3ginfo/loader.gif
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/cyfrowy_polsat.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | O=$(wget -q -c http://www.cyfrowypolsat.pl/internet/biezace-zuzycie/ -O -)
3 | O1=$(echo "$O" | sed -n '/Okres rozliczeniowy/,/_idJsp27/p' | tr -d '\n' | sed -e 's/\t//g;s/ */ /g;s/.*\(Okres.*\)\(
Brak możliwości sprawdzenia limitu."
6 | else
7 | echo "$O1"
8 | fi
9 |
10 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/functions.sh:
--------------------------------------------------------------------------------
1 | pdu2txt() {
2 | # pobrany z https://forum.openwrt.org/viewtopic.php?pid=158891#p158891
3 |
4 | data1=$(echo $1 | sed -e 's/.\{2\}/&\ /g')
5 |
6 | ret=''
7 | shift=0
8 | carry=0
9 |
10 | for byte in $data1; do
11 | if [ $shift -eq 7 ]; then
12 | ret=$ret$(echo $carry | awk '{printf("%c",$0)}')
13 | carry=0
14 | shift=0
15 | fi
16 |
17 | byte=$((0x$byte))
18 |
19 | : $(( a = (0xFF >> ($shift + 1)) & 0xFF ))
20 | : $(( b = $a ^ 0xFF ))
21 |
22 | : $(( digit = $carry | (($byte & $a) << $shift) & 0xFF ))
23 | : $(( carry = ($byte & $b) >> (7 - $shift) ))
24 |
25 | ret=$ret$(echo $digit | awk '{printf("%c",$0)}')
26 |
27 | : $(( shift++ ))
28 | done
29 |
30 | echo $ret
31 | }
32 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/lycamobile_pdu.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "AT+CUSD=1,\"AAD8EC3602\",15^m"
8 | waitfor 10 "+CUSD: "
9 | if % = -1 goto noresponse
10 |
11 | get 1 "^m" $s
12 | print $s
13 |
14 | exit 0
15 |
16 | :noresponse
17 | print ""
18 | exit 0
19 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/lycamobile_pdu.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . /usr/share/3ginfo/scripts/functions.sh
3 |
4 | DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
5 | O=$(gcom -d $DEVICE -s /usr/share/3ginfo/scripts/lycamobile_pdu.gcom | cut -f2 -d\")
6 | if [ ! -z "$O" ]; then
7 | pdu2txt "$O" | tr '\n' ' ' | sed -e 's/1 Opis 9 Powrot 0 Wyjscie//g'
8 | else
9 | echo "Problem operatora - brak możliwości sprawdzenia"
10 | fi
11 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/mbank.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "AT+CNMI=0,1,0,0,0^m"
8 | waitfor 5 "OK"
9 | if % = -1 goto error
10 |
11 | send "AT+CMGF=1^m"
12 | waitfor 5 "OK"
13 | if % = -1 goto error
14 |
15 | send "AT+CMGL=\"ALL\"^m"
16 | waitfor 10 "OK"
17 | if % = -1 goto error
18 |
19 | send "AT+CUSD=1,\"*121#\",15^m"
20 | waitfor 5 "+CUSD:"
21 | if % = -1 goto error
22 |
23 | let $c="AT+CMGL=\"REC UNREAD\"^m"
24 | let $r="+CMGL"
25 | gosub readatcmd
26 |
27 | let $c="AT+CMGL=\"REC UNREAD\"^m"
28 | let $r="+CMGL"
29 | gosub readatcmd
30 |
31 | :error
32 | print "Problem operatora - brak możliwości sprawdzenia..."
33 | exit 0
34 |
35 | :readatcmd
36 | let i=20
37 | send $c
38 | :loop
39 | get 1 "^m" $s
40 | let l=len($r)
41 | if len($s) < l goto loop1
42 | if $mid($s,1,l) <> $r goto loop1
43 |
44 | let $j="x"
45 | if $mid($s,9,1) <> "," goto del2
46 | let $j=$mid($s,8,1)
47 | goto del3
48 | :del2
49 | if $mid($s,10,1) <> "," goto del3
50 | let $j=$mid($s,8,2)
51 |
52 | :del3
53 | get 1 "^m" $s
54 | print $s
55 |
56 | if $j = "x" goto del4
57 | send "AT+CMGD="
58 | send $j
59 | send "^m"
60 | waitfor 5 "OK"
61 | :del4
62 | exit 0
63 |
64 | :loop1
65 | if len($s) < 2 goto loop2
66 | if $mid($s,1,2) = "ER" return
67 | :loop2
68 | if i = 0 return
69 | let i=i-1
70 | sleep 0.5
71 | goto loop
72 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/mbank_pdu.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "AT+CNMI=0,1,0,0,0^m"
8 | waitfor 5 "OK"
9 | if % = -1 goto error
10 |
11 | send "AT+CMGF=1^m"
12 | waitfor 5 "OK"
13 | if % = -1 goto error
14 |
15 | send "AT+CMGL=\"ALL\"^m"
16 | waitfor 10 "OK"
17 | if % = -1 goto error
18 |
19 | send "AT+CUSD=1,\"AA982C3602\",15^m"
20 | waitfor 5 "+CUSD:"
21 | if % = -1 goto error
22 |
23 | let $c="AT+CMGL=\"REC UNREAD\"^m"
24 | let $r="+CMGL"
25 | gosub readatcmd
26 |
27 | let $c="AT+CMGL=\"REC UNREAD\"^m"
28 | let $r="+CMGL"
29 | gosub readatcmd
30 |
31 | :error
32 | print "Problem operatora - brak możliwości sprawdzenia..."
33 | exit 0
34 |
35 | :readatcmd
36 | let i=20
37 | send $c
38 | :loop
39 | get 1 "^m" $s
40 | let l=len($r)
41 | if len($s) < l goto loop1
42 | if $mid($s,1,l) <> $r goto loop1
43 |
44 | let $j="x"
45 | if $mid($s,9,1) <> "," goto del2
46 | let $j=$mid($s,8,1)
47 | goto del3
48 | :del2
49 | if $mid($s,10,1) <> "," goto del3
50 | let $j=$mid($s,8,2)
51 |
52 | :del3
53 | get 1 "^m" $s
54 | print $s
55 |
56 | if $j = "x" goto del4
57 | send "AT+CMGD="
58 | send $j
59 | send "^m"
60 | waitfor 5 "OK"
61 | :del4
62 | exit 0
63 |
64 | :loop1
65 | if len($s) < 2 goto loop2
66 | if $mid($s,1,2) = "ER" return
67 | :loop2
68 | if i = 0 return
69 | let i=i-1
70 | sleep 0.5
71 | goto loop
72 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/ofnk.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "at+cmgf=0^m"
8 | waitfor 5 "OK"
9 | if % = -1 goto error
10 |
11 | send "at+cscs=\"IRA\"^m"
12 | waitfor 5 "OK"
13 | if % = -1 goto error
14 |
15 | send "AT+CUSD=1,\"AA182CA682C546\",15^m"
16 | waitfor 5 "+CUSD:"
17 | if % = -1 goto error
18 |
19 | get 1 "^m" $s
20 | print $s
21 |
22 | exit 0
23 |
24 | :error
25 | print ""
26 |
27 | exit 0
28 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/ofnk.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . /usr/share/3ginfo/scripts/functions.sh
3 |
4 | DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
5 | O=$(gcom -d $DEVICE -s /usr/share/3ginfo/scripts/ofnk.gcom | cut -f2 -d\")
6 | if [ ! -z "$O" ]; then
7 | pdu2txt "$O"
8 | else
9 | echo "Problem operatora - brak możliwości sprawdzenia"
10 | fi
11 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/ofnk2.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "AT+CUSD=1,\"*101*01#\",15^m"
8 | waitfor 10 "+CUSD: "
9 | if % = -1 goto noresponse
10 |
11 | get 1 "^m" $s
12 | print $s
13 |
14 | exit 0
15 |
16 | :noresponse
17 | print ""
18 |
19 | exit 0
20 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/ofnk2.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
3 | O=$(gcom -d $DEVICE -s /usr/share/3ginfo/scripts/ofnk2.gcom | cut -f2 -d\")
4 | if [ ! -z "$O" ]; then
5 | A=$(echo $O | awk '{for(i=1;;i=i+4)if(substr($1,i,4)!=""){printf "%c",(index("0123456789ABCDEF",substr($1,i+2,1))-1)*16+(index("0123456789ABCDEF",substr($1,i+3,1))-1)}else exit;}')
6 | echo $A | sed -e 's/1 Opis.*9 Powrot.*0 Wyjscie//g'
7 | else
8 | echo "Problem operatora - brak możliwości sprawdzenia"
9 | fi
10 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/play_fresh.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "AT+CUSD=1,\"*111#\",15^m"
8 | waitfor 10 "0 Wyjscie"
9 | if % = -1 goto noresponse
10 |
11 | send "AT+CUSD=1,\"1\",15^m"
12 | waitfor 10 "0 Wyjscie"
13 | if % = -1 goto noresponse
14 |
15 | let c=20
16 | send "AT+CUSD=1,\"3\",15^m"
17 | :loop
18 | get 1 "^m" $s
19 | if c=0 goto exit
20 | if len($s) < 6 goto toshort
21 | if $mid($s,1,5) = "+CUSD" goto ok
22 | :toshort
23 | let c=c-1
24 | sleep 1
25 | goto loop
26 | :ok
27 | let $s=$right($s,len($s)-10)
28 | print $s,"\"\n"
29 |
30 | :exit
31 | send "AT+CUSD=1,\"0\",15^m"
32 | waitfor 10 "Dziekujemy"
33 | exit 0
34 |
35 | :noresponse
36 | print "Problem operatora - brak możliwości sprawdzenia..."
37 | exit 0
38 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/play_fresh2.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "AT+CUSD=1,\"*111#\",15^m"
8 | waitfor 10 "+CUSD: "
9 | if % = -1 goto noresponse
10 |
11 | send "AT+CUSD=1,\"1\",15^m"
12 | waitfor 10 "+CUSD: "
13 | if % = -1 goto noresponse
14 |
15 | send "AT+CUSD=1,\"3\",15^m"
16 | waitfor 10 "+CUSD: "
17 | if % = -1 goto noresponse
18 |
19 | get 1 "^m" $s
20 | print $s
21 |
22 | send "AT+CUSD=1,\"0\",15^m"
23 | waitfor 10 "+CUSD: "
24 | exit 0
25 |
26 | :noresponse
27 | print ""
28 | exit 0
29 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/play_fresh2.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
3 | O=$(gcom -d $DEVICE -s /usr/share/3ginfo/scripts/play_fresh2.gcom | cut -f2 -d\")
4 | if [ ! -z "$O" ]; then
5 | A=$(echo $O | awk '{for(i=1;;i=i+4)if(substr($1,i,4)!=""){printf "%c",(index("0123456789ABCDEF",substr($1,i+2,1))-1)*16+(index("0123456789ABCDEF",substr($1,i+3,1))-1)}else exit;}')
6 | echo $A | sed -e 's/1 Opis.*9 Powrot.*0 Wyjscie//g'
7 | else
8 | echo "Problem operatora - brak możliwości sprawdzenia"
9 | fi
10 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/play_fresh_pdu.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "AT+CUSD=1,\"AA582C3602\",15^m"
8 | waitfor 10 "+CUSD: "
9 | if % = -1 goto noresponse
10 |
11 | send "AT+CUSD=1,\"31\",15^m"
12 | waitfor 10 "+CUSD: "
13 | if % = -1 goto noresponse
14 |
15 | send "AT+CUSD=1,\"33\",15^m"
16 | waitfor 10 "+CUSD: "
17 | if % = -1 goto noresponse
18 |
19 | get 1 "^m" $s
20 | print $s
21 |
22 | send "AT+CUSD=1,\"30\",15^m"
23 | waitfor 10 "+CUSD: "
24 | exit 0
25 |
26 | :noresponse
27 | print ""
28 | exit 0
29 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/play_fresh_pdu.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . /usr/share/3ginfo/scripts/functions.sh
3 |
4 | DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
5 | O=$(gcom -d $DEVICE -s /usr/share/3ginfo/scripts/play_fresh_pdu.gcom | cut -f2 -d\")
6 | if [ ! -z "$O" ]; then
7 | pdu2txt "$O" | tr '\n' ' ' | sed -e 's/1 Opis.*9 Powrot.*0 Wyjscie//g'
8 | else
9 | echo "Problem operatora - brak możliwości sprawdzenia"
10 | fi
11 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/tmobile_pdu.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "AT+CUSD=1,\"AA182C3602\",15^m"
8 | waitfor 10 "+CUSD: "
9 | if % = -1 goto noresponse
10 |
11 | get 1 "^m" $s
12 | print $s
13 |
14 | send "AT+CUSD=1,\"30\",15^m"
15 | waitfor 10 "+CUSD: "
16 | exit 0
17 |
18 | :noresponse
19 | print ""
20 | exit 0
21 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/tmobile_pdu.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . /usr/share/3ginfo/scripts/functions.sh
3 |
4 | DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
5 | O=$(gcom -d $DEVICE -s /usr/share/3ginfo/scripts/tmobile.gcom | cut -f2 -d\")
6 | if [ ! -z "$O" ]; then
7 | pdu2txt "$O" | tr '\n' ' ' | sed -e 's/1 Opis 9 Powrot 0 Wyjscie//g'
8 | else
9 | echo "Problem operatora - brak możliwości sprawdzenia"
10 | fi
11 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/virginmobile.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "AT+CUSD=1,\"*108#\",15^m"
8 | waitfor 10 "+CUSD: "
9 | if % = -1 goto noresponse
10 |
11 | get 1 "^m" $s
12 | print $s
13 |
14 | exit 0
15 |
16 | :noresponse
17 | print ""
18 |
19 | exit 0
20 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/virginmobile_pdu.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.02
5 | waitquiet 0.2 0.2
6 |
7 | send "at+cmgf=0^m"
8 | waitfor 5 "OK"
9 | if % = -1 goto error
10 |
11 | send "at+cscs=\"IRA\"^m"
12 | waitfor 5 "OK"
13 | if % = -1 goto error
14 |
15 | send "AT+CUSD=1,\"AA180C3702\",15^m"
16 | waitfor 5 "+CUSD:"
17 | if % = -1 goto error
18 |
19 | get 1 "^m" $s
20 | print $s
21 |
22 | exit 0
23 |
24 | :error
25 | print ""
26 |
27 | exit 0
28 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/scripts/virginmobile_pdu.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . /usr/share/3ginfo/scripts/functions.sh
3 |
4 | DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
5 | O=$(gcom -d $DEVICE -s /usr/share/3ginfo/scripts/virginmobile_pdu.gcom | cut -f2 -d\")
6 | if [ ! -z "$O" ]; then
7 | pdu2txt "$O"
8 | else
9 | echo "Problem operatora - brak możliwości sprawdzenia"
10 | fi
11 |
--------------------------------------------------------------------------------
/3ginfo/files-html-old/usr/share/3ginfo/uhttpd.conf:
--------------------------------------------------------------------------------
1 | E404:/index.html
2 |
--------------------------------------------------------------------------------
/3ginfo/files-html/etc/init.d/3ginfo:
--------------------------------------------------------------------------------
1 | #!/bin/sh /etc/rc.common
2 |
3 | #
4 | # (c) 2010-2024 Cezary Jackiewicz
5 | #
6 |
7 | START=99
8 |
9 | start() {
10 | PORT=$(uci -q get 3ginfo.@3ginfo[0].http_port)
11 | [ -z "$PORT" ] && PORT=81
12 | uhttpd -E /index.html -x /cgi-bin -h /usr/share/3ginfo/html -p 0.0.0.0:$PORT -i .sh=/bin/sh > /dev/null 2>&1
13 | }
14 |
--------------------------------------------------------------------------------
/3ginfo/files-html/usr/share/3ginfo/html/cgi-bin/info.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # (c) 2024 Cezary Jackiewicz
5 | #
6 |
7 | . /lib/functions.sh
8 |
9 | RES="/usr/share/3ginfo"
10 | ECM=""
11 |
12 | SEPARATOR=""
13 | parse_section() {
14 | [ -n "$SEPARATOR" ] && echo "$SEPARATOR"
15 | local section="$1"
16 | config_get device "$section" device ""
17 | config_get network "$section" network ""
18 | if echo "x$device" | grep -q "192.168."; then
19 | ECM="$RES/addon/ecm/huawei.sh $device"
20 | else
21 | ECM=""
22 | if [ ! -e /var/state/3ginfo-detected ]; then
23 | [ -z "$device" ] && device=$($RES/detectdevice.sh)
24 | [ -z "$network" ] && network=$($RES/detectsection.sh "$section")
25 | fi
26 | config_get pincode "$section" pincode ""
27 | if [ -n "$pincode" ] && [ ! -e /var/state/3ginfo-pincode ]; then
28 | [ -n "$device" ] && sms_tool -d "$device" at "at+cpin=\"$pincode\""
29 | fi
30 | fi
31 | echo "["
32 | $RES/infonetwork.sh "$network" | tr -d '\n'
33 | echo ","
34 | if [ -n "$ECM" ]; then
35 | $ECM params
36 | else
37 | $RES/infoparams.sh "$device" | tr -d '\n'
38 | fi
39 | echo "]"
40 | SEPARATOR=","
41 | }
42 |
43 | config_load 3ginfo
44 | echo -e "Content-type: application/json\n\n"
45 | echo '{"res":['
46 | config_foreach parse_section 3ginfo
47 | echo ']}'
48 | touch /var/state/3ginfo-detected
49 | touch /var/state/3ginfo-pincode
50 |
51 | exit 0
52 |
--------------------------------------------------------------------------------
/3ginfo/files-html/usr/share/3ginfo/html/cgi-bin/infoproducts.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # (c) 2024 Cezary Jackiewicz
5 | #
6 |
7 | . /lib/functions.sh
8 |
9 | RES="/usr/share/3ginfo"
10 |
11 | SEPARATOR=""
12 | parse_section() {
13 | [ -n "$SEPARATOR" ] && echo "$SEPARATOR"
14 | local section="$1"
15 | local device
16 | local network
17 | config_get device "$section" device ""
18 | if echo "x$device" | grep -q "192.168."; then
19 | $RES/addon/ecm/huawei.sh $device product
20 | else
21 | if [ ! -e /var/state/3ginfo-detected ]; then
22 | [ -z "$device" ] && device=$($RES/detectdevice.sh)
23 | fi
24 | config_get pincode "$section" pincode ""
25 | if [ -n "$pincode" ] && [ ! -e /var/state/3ginfo-pincode ]; then
26 | [ -n "$device" ] && sms_tool -d "$device" at "at+cpin=\"$pincode\""
27 | fi
28 | $RES/infoproduct.sh "$device" | tr -d '\n'
29 | fi
30 | SEPARATOR=","
31 | }
32 |
33 | config_load 3ginfo
34 | echo -e "Content-type: application/json\n\n"
35 | echo '{"res":['
36 | config_foreach parse_section 3ginfo
37 | echo ']}'
38 | touch /var/state/3ginfo-detected
39 | touch /var/state/3ginfo-pincode
40 |
41 | exit 0
42 |
--------------------------------------------------------------------------------
/3ginfo/files-html/usr/share/3ginfo/html/i18n/pl.json:
--------------------------------------------------------------------------------
1 | {
2 | "device": "Urządzenie",
3 | "vendor": "Producent",
4 | "product": "Model",
5 | "revision": "Wersja",
6 | "imei": "IMEI",
7 | "iccid": "Numer karty SIM (ICCID)",
8 | "parameters": "Parametry",
9 | "signal": "Sygnał",
10 | "mode": "Technologia",
11 | "simstatus": "Status karty SIM",
12 | "more": "więcej parametrów",
13 | "btslocation": "lokalizacja stacji bazowej",
14 | "connection": "Połączenie z internetem",
15 | "connectiontime": "Czas połączenia",
16 | "tx": "Wysłano",
17 | "rx": "Pobrano",
18 | "registered0": "Brak sieci",
19 | "registered1": "Zalogowana do sieci macierzystej",
20 | "registered2": "Wyszukiwanie operatora",
21 | "registered3": "Odmowa dostępu",
22 | "registered5": "Zalogowana do sieci w roamingu",
23 | "registered6": "Zalogowana do sieci macierzystej, tylko SMS",
24 | "registered7": "Zalogowana do sieci w roamingu, tylko SMS",
25 | "since": "od",
26 | "h": "g",
27 | "temperature": "Temperatura",
28 | "band": "Pasmo",
29 | "primaryband": "Pasmo podstawowe",
30 | "bandwidth": "Szerokość",
31 | "excellent": "doskonały",
32 | "good": "dobry",
33 | "fair": "słaby",
34 | "poor": "zły",
35 | "verypoor": "bardzo zły",
36 | "pleasewait": "Proszę czekać"
37 | }
38 |
--------------------------------------------------------------------------------
/3ginfo/files-lite/usr/share/3ginfo-lite/3ginfo.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.01
5 | waitquiet 0.01 0.01
6 |
7 | let $c="AT+CSQ^m"
8 | let $r="+CSQ"
9 | gosub readatcmd
10 |
11 | let $c="AT+COPS=3,0;+COPS?^m"
12 | let $r="+COPS"
13 | gosub readatcmd
14 |
15 | let $c="AT+COPS=3,2;+COPS?^m"
16 | let $r="+COPS"
17 | gosub readatcmd
18 |
19 | let $c="AT+CREG=2;+CREG?^m"
20 | let $r="+CREG"
21 | gosub readatcmd
22 |
23 | let $c="AT+CPIN?^m"
24 | let $r="+CPIN"
25 | gosub readatcmd
26 |
27 | exit 0
28 |
29 | :readatcmd
30 | let i=15
31 | send $c
32 | :loop
33 | get 0.1 "^m" $s
34 | let l=len($r)
35 | if len($s) < l goto loop1
36 | if $mid($s,1,l) <> $r goto loop1
37 | print $s
38 | return
39 |
40 | :loop1
41 | if len($s) < 2 goto loop2
42 | if $mid($s,1,2) = "ER" return
43 | if $mid($s,1,2) = "CO" return
44 | if len($s) < 10 goto loop2
45 | if $mid($s,1,10) != "+CME ERROR" goto loop2
46 | print $s
47 | return
48 | :loop2
49 | if i = 0 exit 0
50 | let i=i-1
51 | goto loop
52 |
--------------------------------------------------------------------------------
/3ginfo/files-qmisignal/www/cgi-bin/qmisignal.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | echo "Content-type: application/json"
3 | echo ""
4 | if [ -e /dev/cdc-wdm0 ]; then
5 | uqmi -s -d /dev/cdc-wdm0 --get-signal-info | sed 's/"type":"hdr".*,"type"/"type"/g'
6 | else
7 | echo "{}"
8 | fi
9 | exit 0
10 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/etc/config/3ginfo:
--------------------------------------------------------------------------------
1 |
2 | config 3ginfo
3 | option device ''
4 | option http_port '81'
5 | option language 'pl'
6 | option network 'wan'
7 | option pincode ''
8 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/etc/hotplug.d/usb/99-3ginfo:
--------------------------------------------------------------------------------
1 | case "$ACTION" in
2 | remove)
3 | [ -f /tmp/pincode_was_given ] && rm -f /tmp/pincode_was_given;;
4 | esac
5 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/etc/uci-defaults/99-3ginfo:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ln -s /usr/share/3ginfo/cgi-bin/3ginfo.sh /usr/bin/3ginfo
4 | exit 0
5 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/mccmnc.dat:
--------------------------------------------------------------------------------
1 | 22234;BT Italia SpA
2 | 22202;Elsacom
3 | 22299;H3G
4 | 22233;H3G
5 | 22277;IPSE 2000
6 | 22235;Lycamobile Srl
7 | 22207;Noverca Italia Srl
8 | 22230;RFI Rete Ferroviaria Italiana SpA
9 | 22243;Telecom Italia Mobile SpA
10 | 22201;TIM
11 | 22248;Telecom Italia Mobile SpA
12 | 22210;Vodafone
13 | 22206;Vodafone
14 | 22244;WIND
15 | 22288;WIND
16 | 26001;Plus
17 | 26002;T-Mobile;T-Mobile.pl
18 | 26003;Orange;PTK Centertel;Orange PL
19 | 26006;Play;Play Fakt Mobile
20 | 26016;Mobyland LTE;Cyfrowy Polsat
21 | 26017;Aero2
22 | 26034;NetWorks
23 | 24801;Telia
24 | 24802;Elisa
25 | 24803;Tele2
26 | 51001;Indosat Ooredoo
27 | 51003;StarOne
28 | 51007;TelkomFlexi
29 | 51008;AXIS
30 | 51009;Smartfren
31 | 51010;Telkomsel
32 | 51011;XL 4G
33 | 51020;TELKOMMobile
34 | 51021;IM3
35 | 51027;Ceria
36 | 51028;Fren/Hepi
37 | 51088;BOLT! Super 4G
38 | 51089;3
39 | 51099;Esia
40 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/msg.dat.en:
--------------------------------------------------------------------------------
1 | NOTDETECTED="Not detected any device"
2 | NODEVICE="No device"
3 | PINERROR="PIN code error"
4 | CONNECTED="Connected"
5 | CONNECT="Connect"
6 | DISCONNECTED="Disconnected"
7 | DISCONNECT="Disconnect"
8 | NOINFO="No information"
9 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/msg.dat.et:
--------------------------------------------------------------------------------
1 | NOTDETECTED="Ei tuvastatud ühtegi seadet"
2 | NODEVICE="Seade puudub"
3 | PINERROR="PIN-koodi viga"
4 | CONNECTED="Ühendatud"
5 | CONNECT="Ühenda"
6 | DISCONNECTED="Lahti ühendatud"
7 | DISCONNECT="Ühenda lahti"
8 | NOINFO="Pole informatsiooni"
9 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/msg.dat.it:
--------------------------------------------------------------------------------
1 | NOTDETECTED="Nessun dispositivo trovato"
2 | NODEVICE="Nessun dispositivo"
3 | PINERROR="Errore codice PIN"
4 | CONNECTED="Connesso"
5 | CONNECT="Connetti"
6 | DISCONNECTED="Disconnesso"
7 | DISCONNECT="Disconnetti"
8 | NOINFO="Nessuna Informazione"
9 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/msg.dat.pl:
--------------------------------------------------------------------------------
1 | NOTDETECTED="Nie wykryto żadnego urządzenia!"
2 | NODEVICE="Brak urządzenia"
3 | PINERROR="Błąd kodu PIN"
4 | CONNECTED="Połączony"
5 | CONNECT="Połącz"
6 | DISCONNECTED="Rozłączony"
7 | DISCONNECT="Rozłącz"
8 | NOINFO="Brak informacji"
9 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/scripts/alcatel_hilink.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | IP=$1
4 | [ -z "$IP" ] && exit 0
5 | [ -e /usr/bin/wget ] || exit 0
6 |
7 | getvaluen() {
8 | echo $(sed 's!.*"'$2'":\([^,]*\).*!\1!g' /tmp/$1)
9 | }
10 |
11 | getvalue() {
12 | echo $(sed 's!.*"'$2'":"\([^"]*\).*!\1!g' /tmp/$1)
13 | }
14 |
15 | rand=`awk 'BEGIN{srand();print int(rand()*(99000-1000))+1000 }'`
16 |
17 | files="getWanInfo getImgInfo getSysteminfo"
18 | for f in $files; do
19 | wget -t 3 -O /tmp/$f "http://$IP/goform/$f?rand=$rand" >/dev/null 2>&1
20 | done
21 |
22 | MODEN=$(getvaluen getWanInfo "network_type")
23 | case $MODEN in
24 | 1) MODE="GPRS";;
25 | 2) MODE="EDGE";;
26 | 3) MODE="HSDPA";;
27 | 4) MODE="HSUPA";;
28 | 5) MODE="UMTS";;
29 | 9) MODE="GSM";;
30 | 11) MODE="LTE";;
31 | 12) MODE="HSPA+";;
32 | 13) MODE="DC HSPA+";;
33 | *) MODE="-";;
34 | esac
35 | echo "^SYSINFOEX:x,x,x,x,,x,\"$MODE\",$MODEN,\"$MODE\""
36 |
37 | OPER=$(getvalue getWanInfo "network_name")
38 | echo "+COPS: 0,0,\"$OPER\",x"
39 |
40 | SIGNAL=$(getvaluen getImgInfo "signal")
41 | case $SIGNAL in
42 | 1) CSQ="6";;
43 | 2) CSQ="12";;
44 | 3) CSQ="18";;
45 | 4) CSQ="24";;
46 | 5) CSQ="31";;
47 | *) CSQ="0";;
48 | esac
49 | echo "+CSQ: $CSQ,99"
50 |
51 | MODEL=$(getvalue getSysteminfo "dev_name")
52 | echo "DEVICE:Alcatel $MODEL"
53 |
54 | if [ "x$2" != "xdebug" ]; then
55 | for f in $files; do
56 | rm /tmp/$f
57 | done
58 | fi
59 |
60 | exit 0
61 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/scripts/probeport.gcom:
--------------------------------------------------------------------------------
1 | let $d = $env("DEVICE")
2 | if $d = "" goto timeout
3 |
4 | open com $d
5 | set com 115200n81
6 | set senddelay 0.05
7 | waitquiet 2 0.5
8 | send "AT^m"
9 | waitfor 2 "OK" "+CME ERROR"
10 | if % = -1 goto timeout
11 | exit 0
12 |
13 | :timeout
14 | exit 1
15 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/scripts/zte.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | IP=$1
4 | [ -z "$IP" ] && exit 0
5 |
6 | T=$(mktemp)
7 | wget -q -O $T "http://$IP/goform/goform_get_cmd_process?multi_data=1&cmd=manufacturer_name,model_name,network_provider,network_type,lte_rsrp,lte_rsrq,lte_rssi,lte_snr,cell_id,lac_code,hmcc,hmnc,rmcc,rmnc,rssi,rscp,ecio"
8 |
9 | . /usr/share/libubox/jshn.sh
10 | json_load "$(cat $T)"
11 |
12 | json_get_vars manufacturer_name model_name network_provider network_type lte_rsrp lte_rsrq lte_rssi lte_snr cell_id lac_code hmcc hmnc rmcc rmnc rssi rscp ecio
13 |
14 | if [ -n "$lte_rssi" ]; then
15 | rssi=$lte_rssi
16 | fi
17 | if [ -n "$rssi" ]; then
18 | CSQ=$(((rssi+113)/2))
19 | else
20 | CSQ=0
21 | fi
22 | echo "+CSQ: $CSQ,99"
23 |
24 | echo "DEVICE:$manufacturer_name $model_name"
25 |
26 | echo "^SYSINFOEX:x,x,x,x,,x,\"$network_type\",x,\"$network_type\""
27 |
28 | if [ -n "$hmcc" ]; then
29 | mcc=$(printf "%03d" $hmcc)
30 | else
31 | [ -n "$rmcc" ] && mcc=$(printf "%03d" $rmcc)
32 | fi
33 |
34 | if [ -n "$hmnc" ]; then
35 | mnc=$(printf "%02d" $hmnc)
36 | else
37 | [ -n "$rmnc" ] && mnc=$(printf "%02d" $rmnc)
38 | fi
39 | echo "+COPS: 0,2,\"$mcc$mnc\",x"
40 |
41 | if [ "x$network_type" = "xLTE" ]; then
42 | echo "^LTERSRP: $lte_rsrp,$lte_rsrq"
43 | else
44 | echo "^CSNR: $rscp,$ecio"
45 | fi
46 |
47 | echo "+CREG: 2,1,\"$lac_code\",\"$cell_id\""
48 |
49 | rm $T
50 | exit 0
51 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/status.json:
--------------------------------------------------------------------------------
1 | {
2 | "error": "",
3 | "csq": "{CSQ}",
4 | "signal": "{CSQ_PER}",
5 | "rssi": "{CSQ_RSSI}",
6 | "mode": "{MODE}",
7 | "device": "{DEVICE}",
8 | "operator_name": "{COPS}",
9 | "operator": "{COPS_NUM}",
10 | "operator_mcc": "{COPS_MCC}",
11 | "operator_mnc": "{COPS_MNC}",
12 | "lac_hex": "{LAC}",
13 | "lac_dec": "{LAC_NUM}",
14 | "cid_hex": "{CID}",
15 | "cid_dec": "{CID_NUM}",
16 | "tac_hex": "{TAC}",
17 | "tac_dec": "{TAC_NUM}",
18 | "bts_info": "{BTSINFO}",
19 | "bts_qos_down": "{DOWN}",
20 | "bts_qos_up": "{UP}",
21 | "status": "{STATUS}",
22 | "conn_time": "{CONN_TIME}",
23 | "conn_time_sec": "{CONN_TIME_SEC}",
24 | "iface_rx": "{RX}",
25 | "iface_tx": "{TX}",
26 | "rscp": "{RSCP}",
27 | "ecio": "{ECIO}",
28 | "rsrp": "{RSRP}",
29 | "sinr": "{SINR}",
30 | "rsrq": "{RSRQ}"
31 | }
32 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/status.txt.en:
--------------------------------------------------------------------------------
1 | Status: {STATUS}
2 | Connection time: {CONN_TIME}
3 | Received / Transmitted data: {RX} / {TX}
4 | Operator: {COPS}
5 | Operating mode: {MODE}
6 | Signal strength: {CSQ_PER}%
7 | Device: {DEVICE}
8 | MCC MNC: {COPS_MCC} {COPS_MNC}
9 | LAC: {LAC} ({LAC_NUM})
10 | CID: {CID} ({CID_NUM})
11 | TAC: {TAC} ({TAC_NUM})
12 | CSQ: {CSQ}
13 | RSSI: {CSQ_RSSI} dBm
14 | RSCP: {RSCP} dBm
15 | Ec/IO: {ECIO} dB
16 | RSRP: {RSRP} dBm
17 | SINR: {SINR} dB
18 | RSRQ: {RSRQ} dB
19 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/status.txt.et:
--------------------------------------------------------------------------------
1 | Staatus: {STATUS}
2 | Ühendusaeg: {CONN_TIME}
3 | Vastuvõetud/saadetud andmed: {RX} / {TX}
4 | Operaator: {COPS}
5 | Töörežiim: {MODE}
6 | Signaali tugevus: {CSQ_PER}%
7 | Seade: {DEVICE}
8 | MCC MNC: {COPS_MCC} {COPS_MNC}
9 | LAC: {LAC} ({LAC_NUM})
10 | CID: {CID} ({CID_NUM})
11 | TAC: {TAC} ({TAC_NUM})
12 | CSQ: {CSQ}
13 | RSSI: {CSQ_RSSI} dBm
14 | RSCP: {RSCP} dBm
15 | Ec/IO: {ECIO} dB
16 | RSRP: {RSRP} dBm
17 | SINR: {SINR} dB
18 | RSRQ: {RSRQ} dB
19 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/status.txt.it:
--------------------------------------------------------------------------------
1 | Stato: {STATUS}
2 | Tempo di connessione: {CONN_TIME}
3 | Dati ricevuti / Trasmessi: {RX} / {TX}
4 | Operatore: {COPS}
5 | Tipo di connessione: {MODE}
6 | Forza segnale: {CSQ_PER}%
7 | Dispositivo: {DEVICE}
8 | MCC MNC: {COPS_MCC} {COPS_MNC}
9 | LAC: {LAC} ({LAC_NUM})
10 | CID: {CID} ({CID_NUM})
11 | TAC: {TAC} ({TAC_NUM})
12 | CSQ: {CSQ}
13 | RSSI: {CSQ_RSSI} dBm
14 | RSCP: {RSCP} dBm
15 | Ec/IO: {ECIO} dB
16 | RSRP: {RSRP} dBm
17 | SINR: {SINR} dB
18 | RSRQ: {RSRQ} dB
19 |
--------------------------------------------------------------------------------
/3ginfo/files-text-old/usr/share/3ginfo/status.txt.pl:
--------------------------------------------------------------------------------
1 | Status: {STATUS}
2 | Czas polaczenia: {CONN_TIME}
3 | Przeslano danych: {RX} / {TX}
4 | Operator: {COPS}
5 | Tryb pracy: {MODE}
6 | Sila sygnalu: {CSQ_PER}%
7 | Urzadzenie: {DEVICE}
8 | MCC MNC: {COPS_MCC} {COPS_MNC}
9 | LAC: {LAC} ({LAC_NUM})
10 | CID: {CID} ({CID_NUM})
11 | TAC: {TAC} ({TAC_NUM})
12 | CSQ: {CSQ}
13 | RSSI: {CSQ_RSSI} dBm
14 | RSCP: {RSCP} dBm
15 | Ec/IO: {ECIO} dB
16 | RSRP: {RSRP} dBm
17 | SINR: {SINR} dB
18 | RSRQ: {RSRQ} dB
19 |
--------------------------------------------------------------------------------
/3ginfo/files-text/etc/config/3ginfo:
--------------------------------------------------------------------------------
1 |
2 | config 3ginfo
3 | option device ''
4 | option http_port '81'
5 | option network 'wan'
6 | option pincode ''
7 |
--------------------------------------------------------------------------------
/3ginfo/files-text/usr/share/3ginfo/check.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.01
5 | waitquiet 0.01 0.01
6 |
7 | send "AT+CPIN?^m"
8 | waitfor 2 "OK" "+CME ERROR"
9 | if % = -1 goto timeout
10 | exit 0
11 |
12 | :timeout
13 | exit 1
14 |
--------------------------------------------------------------------------------
/3ginfo/files-text/usr/share/3ginfo/detectdevice.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # (c) 2023-2024 Cezary Jackiewicz
5 | #
6 |
7 | # find any device
8 | DEVICES=$(find /dev -name "ttyUSB*" -o -name "ttyACM*" -o -name "wwan*at*" | sort -r)
9 | for DEVICE in $DEVICES; do
10 | gcom -d $DEVICE -s /usr/share/3ginfo/check.gcom >/dev/null 2>&1
11 | if [ $? = 0 ]; then
12 | uci set 3ginfo.@3ginfo[0].device="$DEVICE"
13 | uci commit 3ginfo
14 | echo "$DEVICE"
15 | exit 0
16 | fi
17 | done
18 |
19 | echo ""
20 | exit 0
21 |
--------------------------------------------------------------------------------
/3ginfo/files-text/usr/share/3ginfo/detectsection.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # (c) 2024 Cezary Jackiewicz
5 | #
6 |
7 | getdevicepath() {
8 | devname="$(basename $1)"
9 | case "$devname" in
10 | 'wwan'*'at'*)
11 | devpath="$(readlink -f /sys/class/wwan/$devname/device)"
12 | echo ${devpath%/*/*/*}
13 | ;;
14 | 'ttyACM'*)
15 | devpath="$(readlink -f /sys/class/tty/$devname/device)"
16 | echo ${devpath%/*}
17 | ;;
18 | 'tty'*)
19 | devpath="$(readlink -f /sys/class/tty/$devname/device)"
20 | echo ${devpath%/*/*}
21 | ;;
22 | *)
23 | devpath="$(readlink -f /sys/class/usbmisc/$devname/device)"
24 | echo ${devpath%/*}
25 | ;;
26 | esac
27 | }
28 |
29 | CONFIGSEC=$1
30 | if [ -n "$CONFIGSEC" ]; then
31 | SEC=$(uci -q get 3ginfo.${CONFIGSEC}.network)
32 | if [ -n "$SEC" ]; then
33 | echo "$SEC"
34 | exit 0
35 | fi
36 | fi
37 |
38 | DEVICE=$(uci -q get 3ginfo.${CONFIGSEC}.device)
39 | if [ -z "$DEVICE" ]; then
40 | echo ""
41 | exit 0
42 | fi
43 |
44 | DEVPATH=$(getdevicepath "$DEVICE")
45 | DEVICES=$(uci show network | awk '/network\..*\.device/')
46 | for T in $DEVICES; do
47 | T1=$(echo "$T" | cut -f2 -d= | xargs)
48 | if [ -e "$T1" ]; then
49 | if [ "$DEVPATH" = "$(getdevicepath "$T1")" ]; then
50 | T2=$(echo "$T" | cut -f2 -d.)
51 | uci set 3ginfo.${CONFIGSEC}.network="$T2"
52 | uci commit 3ginfo
53 | echo "$T2"
54 | exit 0
55 | fi
56 | fi
57 | done
58 |
59 | echo ""
60 | exit 0
61 |
--------------------------------------------------------------------------------
/3ginfo/files-text/usr/share/3ginfo/info.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.01
5 | waitquiet 0.01 0.01
6 |
7 | let $c="AT+CSQ^m"
8 | let $r="+CSQ"
9 | gosub readatcmd
10 |
11 | let $c="AT+COPS=3,0;+COPS?^m"
12 | let $r="+COPS"
13 | gosub readatcmd
14 |
15 | let $c="AT+COPS=3,2;+COPS?^m"
16 | let $r="+COPS"
17 | gosub readatcmd
18 |
19 | let $c="AT+CREG=2;+CREG?^m"
20 | let $r="+CREG"
21 | gosub readatcmd
22 |
23 | let $c="AT+CPIN?^m"
24 | let $r="+CPIN"
25 | gosub readatcmd
26 |
27 | exit 0
28 |
29 | :readatcmd
30 | let i=15
31 | send $c
32 | :loop
33 | get 0.1 "^m" $s
34 | let l=len($r)
35 | if len($s) < l goto loop1
36 | if $mid($s,1,l) <> $r goto loop1
37 | print $s
38 | return
39 |
40 | :loop1
41 | if len($s) < 2 goto loop2
42 | if $mid($s,1,2) = "ER" return
43 | if $mid($s,1,2) = "CO" return
44 | if len($s) < 10 goto loop2
45 | if $mid($s,1,10) != "+CME ERROR" goto loop2
46 | print $s
47 | return
48 | :loop2
49 | if i = 0 exit 0
50 | let i=i-1
51 | goto loop
52 |
--------------------------------------------------------------------------------
/3ginfo/files-text/usr/share/3ginfo/infonetwork.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # (c) 2024 Cezary Jackiewicz
5 | #
6 |
7 | NETWORK=$1
8 | if [ -n "$NETWORK" ]; then
9 | eval $(ifstatus ${NETWORK} | jsonfilter -q -e 'UP=@.up' -e 'CT=@.uptime' -e 'IFACE=@.l3_device')
10 | if [ "x$UP" = "x1" ]; then
11 | STATUS="CONNECTED"
12 | if [ -n "$CT" ]; then
13 | D=$(expr $CT / 60 / 60 / 24)
14 | H=$(expr $CT / 60 / 60 % 24)
15 | M=$(expr $CT / 60 % 60)
16 | S=$(expr $CT % 60)
17 | CONN_TIME=$(printf "%dd, %02d:%02d:%02d" $D $H $M $S)
18 | CONN_TIME_SINCE=$(date "+%Y%m%d%H%M%S" -d "@$(($(date +%s) - CT))")
19 | fi
20 | if [ -n "$IFACE" ]; then
21 | RX=$(ifconfig $IFACE | awk -F[\(\)] '/bytes/ {printf "%s",$2}')
22 | TX=$(ifconfig $IFACE | awk -F[\(\)] '/bytes/ {printf "%s",$4}')
23 | fi
24 | else
25 | STATUS="DISCONNECTED"
26 | fi
27 | fi
28 |
29 | cat <
5 | #
6 |
7 | DEVICE=$1
8 | if [ -n "$DEVICE" ] && [ -e "$DEVICE" ]; then
9 | O=$(gcom -d "$DEVICE" -s /usr/share/3ginfo/vendorproduct.gcom)
10 | T=$(echo "$O" | awk '/CGMI:/{gsub(/.*CGMI[ ]*:[ ]*/,"");gsub(/"/,"");print $0}')
11 | [ -n "$T" ] && VENDOR="$T"
12 | T=$(echo "$O" | awk '/CGMM:/{gsub(/.*CGMM[ ]*:[ ]*/,"");gsub(/"/,"");print $0}')
13 | [ -n "$T" ] && PRODUCT="$T"
14 | T=$(echo "$O" | awk '/CGMR:/{gsub(/.*CGMR[ ]*:[ ]*/,"");gsub(/"/,"");print $0}')
15 | [ -n "$T" ] && REVISION="$T"
16 | T=$(echo "$O" | awk '/CGSN:/{gsub(/.*CGSN[ ]*:[ ]*/,"");gsub(/"/,"");print $0}')
17 | [ -n "$T" ] && IMEI="$T"
18 | T=$(echo "$O" | awk '/CCID:/{gsub(/.*CCID[ ]*:[ ]*/,"");gsub(/"/,"");print $0}')
19 | [ -n "$T" ] && ICCID="$T"
20 | fi
21 |
22 | cat <' '/^.*><.*=/{print $1}' /etc/apk/world > $BACKUPDIR/$PKGSLIST
10 | if ! grep -q $BACKUPDIR/$PKGSLIST /etc/sysupgrade.conf; then
11 | echo $BACKUPDIR/$PKGSLIST >> /etc/sysupgrade.conf
12 | fi
13 |
14 | if [ -n "$1" ]; then
15 | echo ""
16 | echo "Wykonano archiwum listy pakietów"
17 | fi
18 |
19 | exit 0
20 |
--------------------------------------------------------------------------------
/backupandrestore-apk/files/usr/bin/restorepkgslist.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # eko.one.pl services
4 | # restore user installed packages from list
5 |
6 | BACKUPDIR=/etc/backup
7 | PKGSLIST=list-user-installed-packages.txt
8 | if [ ! -s $BACKUPDIR/$PKGSLIST ]; then
9 | [ -n "$1" ] && echo "Brak listy pakietów do zainstalowania"
10 | exit 0
11 | fi
12 |
13 | RET=0
14 | apk update
15 | while read -r pkg; do
16 | if [ -n "$pkg" ]; then
17 | apk add $pkg
18 | T=$?
19 | [ "x$T" != "x0" ] && RET=$T
20 | fi
21 | done < $BACKUPDIR/$PKGSLIST
22 |
23 | if [ -n "$1" ]; then
24 | echo ""
25 | echo "Zainstalowano pakiety użytkownika"
26 | fi
27 |
28 | exit $RET
29 |
--------------------------------------------------------------------------------
/backupandrestore-opkg/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=backupandrestore-opkg
4 | PKG_VERSION:=20241128
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/backupandrestore-opkg
10 | CATEGORY:=Administration
11 | SUBMENU:=eko.one.pl services
12 | SECTION:=admin
13 | TITLE:=eko.one.pl services - backup and restore
14 | PKGARCH:=all
15 | DEPENDS:=+opkg
16 | PROVIDES:=backupandrestore
17 | endef
18 |
19 | define Build/Compile
20 | endef
21 |
22 | define Package/backupandrestore-opkg/install
23 | $(CP) ./files/* $(1)
24 | endef
25 |
26 | $(eval $(call BuildPackage,backupandrestore-opkg))
27 |
--------------------------------------------------------------------------------
/backupandrestore-opkg/files/etc/uci-defaults/backupandrestore.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | [ -e /etc/config/luci ] || exit 0
4 |
5 | if uci show luci | grep -q restorepkgslist.sh; then
6 | true
7 | else
8 | uci add luci command
9 | uci set luci.@command[-1].name='Instalacja pakietów użytkownika'
10 | uci set luci.@command[-1].command='/usr/bin/restorepkgslist.sh verbose'
11 | fi
12 |
13 | if uci show luci | grep -q backuppkgslist.sh; then
14 | true
15 | else
16 | uci add luci command
17 | uci set luci.@command[-1].name='Archiwizacja listy pakietów użytkownika'
18 | uci set luci.@command[-1].command='/usr/bin/backuppkgslist.sh verbose'
19 | fi
20 | uci commit luci
21 |
22 | exit 0
23 |
--------------------------------------------------------------------------------
/backupandrestore-opkg/files/usr/bin/backuppkgslist.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # eko.one.pl services
4 | # backup user installed packages
5 |
6 | BACKUPDIR=/etc/backup
7 | PKGSLIST=list-user-installed-packages.txt
8 | mkdir -p $BACKUPDIR
9 | TIME=$(opkg status base-files | awk '/Installed-Time: /{print $2}')
10 | awk -v time=$TIME '{if($0 ~ /^Package: /) {PKG = $2}if($0 ~ /^Installed-Time: /) {if(time < $2) {print PKG}}}' /usr/lib/opkg/status > $BACKUPDIR/$PKGSLIST
11 | if ! grep -q $BACKUPDIR/$PKGSLIST /etc/sysupgrade.conf; then
12 | echo $BACKUPDIR/$PKGSLIST >> /etc/sysupgrade.conf
13 | fi
14 |
15 | if [ -n "$1" ]; then
16 | echo ""
17 | echo "Wykonano archiwum listy pakietów"
18 | fi
19 |
20 | exit 0
21 |
--------------------------------------------------------------------------------
/backupandrestore-opkg/files/usr/bin/restorepkgslist.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # eko.one.pl services
4 | # restore user installed packages from list
5 |
6 | BACKUPDIR=/etc/backup
7 | PKGSLIST=list-user-installed-packages.txt
8 | if [ ! -s $BACKUPDIR/$PKGSLIST ]; then
9 | [ -n "$1" ] && echo "Brak listy pakietów do zainstalowania"
10 | exit 0
11 | fi
12 |
13 | RET=0
14 | opkg update
15 | while read -r pkg; do
16 | if [ -n "$pkg" ]; then
17 | opkg install $pkg
18 | T=$?
19 | [ "x$T" != "x0" ] && RET=$T
20 | fi
21 | done < $BACKUPDIR/$PKGSLIST
22 |
23 | if [ -n "$1" ]; then
24 | echo ""
25 | echo "Zainstalowano pakiety użytkownika"
26 | fi
27 |
28 | exit $RET
29 |
--------------------------------------------------------------------------------
/bitmeteros/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=bitmeteros
4 | PKG_VERSION:=2015-10-26
5 | PKG_RELEASE=$(PKG_SOURCE_VERSION)
6 |
7 | PKG_SOURCE_PROTO:=git
8 | PKG_SOURCE_URL:=git://github.com/codebox/bitmeteros.git
9 | PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
10 | PKG_SOURCE_VERSION:=5b649e6344316508b15d09c7ad66862dc76ca625
11 | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
12 |
13 | include $(INCLUDE_DIR)/package.mk
14 |
15 | define Package/bitmeteros
16 | SECTION:=net
17 | CATEGORY:=Network
18 | DEPENDS:=+libsqlite3
19 | TITLE:=An open-source bandwidth meter with a sophisticated web interface
20 | endef
21 |
22 | define Build/Compile
23 | $(MAKE) -C $(PKG_BUILD_DIR)/build/linux \
24 | $(TARGET_CONFIGURE_OPTS) \
25 | LIBS="-lsqlite3 -lm -L$(STAGING_DIR)/usr/lib" \
26 | all
27 | endef
28 |
29 | define Package/bitmeteros/install
30 | $(INSTALL_DIR) $(1)/usr/bin
31 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/linux/bmcapture $(1)/usr/bin/
32 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/linux/bmclient $(1)/usr/bin/
33 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/linux/bmws $(1)/usr/bin/
34 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/linux/bmdb $(1)/usr/bin/
35 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/linux/bmsync $(1)/usr/bin/
36 | $(INSTALL_DIR) $(1)/usr/lib/bitmeter/
37 | $(CP) $(PKG_BUILD_DIR)/webserver/web $(1)/usr/lib/bitmeter/
38 | $(CP) $(PKG_BUILD_DIR)/build/bitmeter.db $(1)/usr/lib/bitmeter/
39 | $(CP) ./files/* $(1)
40 | [ -n "$$$$(which uglifyjs)" ] && find $(1)/usr/lib/bitmeter/ -type f -name \*.js -exec uglifyjs -o {} {} \; || true
41 | endef
42 |
43 | $(eval $(call BuildPackage,bitmeteros))
44 |
--------------------------------------------------------------------------------
/bitmeteros/files/etc/init.d/bitmeteros:
--------------------------------------------------------------------------------
1 | #!/bin/sh /etc/rc.common
2 |
3 | START=99
4 |
5 | start() {
6 | if [ ! -e /var/lib/bitmeter/bitmeter.db ]; then
7 | mkdir -p /var/lib/bitmeter
8 | cp /usr/lib/bitmeter/bitmeter.db /var/lib/bitmeter
9 | bmdb webremoteadmin
10 | bmdb setconfig web.dir "/usr/lib/bitmeter/web/"
11 | fi
12 | mkdir -p /var/log/bitmeter/
13 | touch /var/log/bitmeter/bitmeter.log
14 |
15 | bmcapture &
16 | bmws &
17 | }
18 |
19 | stop() {
20 | bmdb webstop
21 | killall bmws
22 | bmdb capstop
23 | killall bmcapture
24 | }
25 |
--------------------------------------------------------------------------------
/comgt-hso/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=comgt-hso
4 | PKG_VERSION:=1.0
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/comgt-hso
10 | SECTION:=utils
11 | CATEGORY:=Utilities
12 | TITLE:=comgt HSO Support
13 | DEPENDS:=+comgt +kmod-usb-net-hso
14 | PKGARCH:=all
15 | endef
16 |
17 | define Build/Compile
18 | endef
19 |
20 | define Package/comgt-hso/install
21 | $(CP) ./files/* $(1)
22 | endef
23 |
24 | $(eval $(call BuildPackage,comgt-hso))
25 |
--------------------------------------------------------------------------------
/comgt-hso/files/etc/chatscripts/hso.chat:
--------------------------------------------------------------------------------
1 | ABORT BUSY
2 | ABORT 'NO CARRIER'
3 | ABORT ERROR
4 | REPORT CONNECT
5 | TIMEOUT 10
6 | "" "ATZ"
7 | OK 'AT+CGDCONT=2,"IP","$USE_APN"'
8 | SAY "Service Mode $MODE"
9 | TIMEOUT 30
10 | OK "AT_OPSYS=$MODE,2"
11 | OK "AT_OWANCALL=2,1,0"
12 | OK "\d\d\d\d\d\dAT_OWANDATA=2"
13 | OK ""
14 |
--------------------------------------------------------------------------------
/comgt-hso/files/etc/chatscripts/hsohup.chat:
--------------------------------------------------------------------------------
1 | ABORT BUSY
2 | ABORT 'NO CARRIER'
3 | ABORT ERROR
4 | REPORT CONNECT
5 | SAY "Hanging up..."
6 | TIMEOUT 30
7 | "" "AT_OWANCALL=2,0"
8 | OK ""
9 |
--------------------------------------------------------------------------------
/comgt-hso/files/etc/gcom/setuser.gcom:
--------------------------------------------------------------------------------
1 | # set username and password
2 | opengt
3 | set com 115200n81
4 | set senddelay 0.02
5 | waitquiet 1 0.2
6 | flash 0.1
7 |
8 | :start
9 | print "Trying to set username and password\n"
10 | send "AT$QCPDPP=1,1,"
11 | send $env("USER")
12 | send ","
13 | send $env("PASS")
14 | send "^m"
15 |
16 | waitfor 15 "OK","ERR","ERROR"
17 | if % = 0 goto continue
18 | if % = 1 goto modeerror
19 | if % = 2 goto modeerror
20 |
21 | print "Timeout setting username and password!\n"
22 | exit 1
23 |
24 | :modeerror
25 | print "Error setting username and password!\n"
26 | exit 1
27 |
28 | :continue
29 | exit 0
30 |
--------------------------------------------------------------------------------
/downloadmanager/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=downloadmanager
4 | PKG_VERSION:=20140719
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/downloadmanager
10 | SECTION:=net
11 | CATEGORY:=Network
12 | TITLE:=Download manager for OpenWrt
13 | DEPENDS:=+aria2
14 | PKGARCH:=all
15 | endef
16 |
17 | define Build/Compile
18 | endef
19 |
20 | define Package/downloadmanager/install
21 | $(CP) files/* $(1)
22 | endef
23 |
24 | $(eval $(call BuildPackage,downloadmanager))
25 |
--------------------------------------------------------------------------------
/downloadmanager/files/etc/aria2.conf:
--------------------------------------------------------------------------------
1 | check-integrity=true
2 | continue=true
3 | daemon=true
4 | dht-entry-point=dht.transmissionbt.com:6881
5 | dht-listen-port=6801
6 | disable-ipv6=true
7 | disk-cache=2M
8 | enable-dht6=false
9 | enable-rpc=true
10 | file-allocation=none
11 | log-level=error
12 | max-overall-upload-limit=3K
13 | rpc-allow-origin-all=true
14 | rpc-listen-all=true
15 | rpc-listen-port=6800
16 | save-session-interval=60
17 | seed-ratio=0.0
18 |
--------------------------------------------------------------------------------
/downloadmanager/files/etc/hotplug.d/block/99-aria2:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | case $ACTION in
4 | add)
5 | grep -q /dev/$DEVICENAME /proc/mounts || exit 0
6 | DIR=$(awk '/^\/dev\/'$DEVICENAME'/ {print $2}' /proc/mounts)
7 | killall aria2c > /dev/null 2>&1
8 | aria2.sh "$DIR"
9 | logger "Aria2 zostala uruchomiona z katalogiem $DIR"
10 | ;;
11 | remove)
12 | killall aria2c > /dev/null 2>&1
13 | ;;
14 | esac
15 |
--------------------------------------------------------------------------------
/downloadmanager/files/usr/bin/aria2.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | DIR=$1
4 | [ "x$DIR" = "x" ] && exit 0
5 |
6 | CONF="$DIR"/.aria2
7 |
8 | mkdir -p "$CONF"
9 | touch "$CONF"/session
10 |
11 | aria2c \
12 | --conf-path=/etc/aria2.conf \
13 | --dir="$DIR" \
14 | --log="$CONF"/aria2.log \
15 | --input-file="$CONF"/session \
16 | --save-session="$CONF"/session \
17 | --dht-file-path="$CONF"/dht.dat
18 |
19 | exit 0
20 |
--------------------------------------------------------------------------------
/easyconfig/README.md:
--------------------------------------------------------------------------------
1 | See https://eko.one.pl/?p=easyconfig
2 |
--------------------------------------------------------------------------------
/easyconfig/files/etc/config/easyconfig:
--------------------------------------------------------------------------------
1 |
2 | config easyconfig 'global'
3 | option datarec_period '15'
4 |
5 | config service 'traffic'
6 | option cycle '1'
7 | option warning_enabled '0'
8 | option warning_unit 'g'
9 | option warning_cycle 'p'
10 | option warning_value '3'
11 |
12 | config service 'watchdog'
13 | option dest 'google.com'
14 | option period '1'
15 | option period_count '10'
16 | option delay '3'
17 | option action 'wan'
18 |
19 | config service 'sms'
20 | option storage ''
21 | option join '1'
22 |
23 | config service 'ussd'
24 | option raw_input '1'
25 | option raw_output '1'
26 |
27 | config service 'modem'
28 | option force_qmi '0'
29 | option force_plmn '0'
30 |
--------------------------------------------------------------------------------
/easyconfig/files/etc/easyconfig_leds.user:
--------------------------------------------------------------------------------
1 | # ACTION on|off
2 |
--------------------------------------------------------------------------------
/easyconfig/files/etc/easyconfig_watchdog.user:
--------------------------------------------------------------------------------
1 | # ACTION reboot|wan
2 |
--------------------------------------------------------------------------------
/easyconfig/files/etc/hotplug.d/dhcp/99-easyconfig:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | case "$ACTION" in
3 | add | update | remove)
4 | /usr/bin/easyconfig_logs.sh
5 | /usr/bin/easyconfig_statistics.sh
6 | ;;
7 | esac
8 |
--------------------------------------------------------------------------------
/easyconfig/files/etc/hotplug.d/iface/99-easyconfig:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | [ $ACTION = "ifup" ] || exit 0
4 |
5 | if [ $INTERFACE = "wan" ]; then
6 | awk '{printf "%d\n", $1}' /proc/uptime >> /tmp/easyconfig_wan_up
7 |
8 | VPNS=$(uci show network | awk -F. '/trigger='\''wan'\''$/{print $2}')
9 | if [ -n "$VPNS" ]; then
10 | sleep 5
11 | for VPN in $VPNS; do
12 | if [ "x$(uci -q get network.$VPN.auto)" = "x0" ]; then
13 | ifup $VPN
14 | fi
15 | done
16 | fi
17 |
18 | OVPNS=$(uci show openvpn | awk -F. '/trigger='\''wan'\''$/{print $2}')
19 | if [ -n "$OVPNS" ]; then
20 | sleep 5
21 | for OVPN in $OVPNS; do
22 | uci set openvpn.$OVPN.enabled=1
23 | done
24 | /etc/init.d/openvpn restart
25 | uci revert openvpn
26 | fi
27 | fi
28 |
29 | exit 0
30 |
--------------------------------------------------------------------------------
/easyconfig/files/etc/hotplug.d/ntp/99-easyconfig:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | [ "$ACTION" = stratum ] || exit 0
4 |
5 | [ -e /etc/crontabs/root ] || exit 0
6 |
7 | TIMESYNCED="/var/state/easyconfig_timesynced"
8 | [ -e "$TIMESYNCED" ] && exit 0
9 |
10 | touch $TIMESYNCED
11 |
12 | if grep -q easyconfig_nightmode /etc/crontabs/root; then
13 | [ -z "$(pidof sunwait)" ] && /usr/bin/easyconfig_nightmode.sh
14 | fi
15 | if grep -q wifi /etc/crontabs/root; then
16 | /usr/bin/easyconfig_cron_helper.sh startup wifi
17 | fi
18 |
19 | exit 0
20 |
--------------------------------------------------------------------------------
/easyconfig/files/etc/init.d/easyconfig_adblock:
--------------------------------------------------------------------------------
1 | #!/bin/sh /etc/rc.common
2 |
3 | START=90
4 | STOP=90
5 |
6 | start() {
7 | [ -e /etc/config/adblock ] && exit 0
8 |
9 | B=/etc/adblock/adblock.blocklist
10 | W=/etc/adblock/adblock.allowlist
11 |
12 | [ -e /etc/adblock/adblock.blocklist ] || exit 0
13 | [ -s /etc/adblock/adblock.blocklist ] || exit 0
14 | [ -e /etc/adblock/adblock.allowlist ] || (mkdir -p "$(dirname "$W")"; touch "$W")
15 |
16 | C=$(uci -q get dhcp.@dnsmasq[0].confdir)
17 | if [ -z "$C" ]; then
18 | C="/tmp/dnsmasq.d"
19 | uci set dhcp.@dnsmasq[0].confdir="$C"
20 | uci commit dhcp
21 | fi
22 | [ -e "$C" ] || mkdir -p "$C"
23 |
24 | grep -x -v -f "$W" "$B" | sed 's|^|address=/|g;s|$|/|g' > "$C/easyconfig.domains"
25 | /etc/init.d/dnsmasq restart >/dev/null 2>&1
26 | }
27 |
28 | stop() {
29 | C=$(uci -q get dhcp.@dnsmasq[0].confdir)
30 | if [ -n "$C" ]; then
31 | if [ -e "$C/easyconfig.domains" ]; then
32 | rm "$C/easyconfig.domains"
33 | /etc/init.d/dnsmasq restart >/dev/null 2>&1
34 | fi
35 | fi
36 | }
37 |
--------------------------------------------------------------------------------
/easyconfig/files/etc/uci-defaults/zz-easyconfig.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | [ ! -e /www/index.html ] && ln -s /www/easyconfig.html /www/index.html
3 | [ -e /etc/crontabs/root ] && sed -i "/easyconfig_logs/d;/easyconfig_statistics/d" /etc/crontabs/root
4 | echo "*/1 * * * * /usr/bin/easyconfig_logs.sh" >> /etc/crontabs/root
5 | echo "*/1 * * * * /usr/bin/easyconfig_statistics.sh" >> /etc/crontabs/root
6 | exit 0
7 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/bin/easyconfig_findmodeminterfaces.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | findinterfaces() {
4 | O=""
5 | DIR="$1"
6 | DESC="$2"
7 | VID=$(cat ${DIR}/idVendor 2>/dev/null)
8 | PID=$(cat ${DIR}/idProduct 2>/dev/null)
9 | MAN=$(cat ${DIR}/manufacturer 2>/dev/null)
10 | PRO=$(cat ${DIR}/product 2>/dev/null)
11 | [ -e "${DIR}" ] && O=$(find "${DIR}" \( -name tty[UA]* -o -name cdc-wdm* -o -name wwan* \) -maxdepth 3 -exec basename {} \; | sort -u | tr '\n' ' ')
12 | [ -n "$O" ] && echo "${DESC}${VID:--}:${PID:--} (${MAN:--} ${PRO:--}) -> ${O}"
13 | }
14 |
15 | case "$(cat /tmp/sysinfo/board_name)" in
16 | alfa-network,quad-e4g)
17 | for i in "m2 :usb2/2-1" "minipcie0:usb1/1-2/1-2.4" "minipcie1:usb1/1-2/1-2.3" "minipcie2:usb1/1-2/1-2.2" "usb :usb1/1-2/1-2.1"; do
18 | T1=$(echo "$i" | cut -f1 -d:)
19 | T2=$(echo "$i" | cut -f2 -d:)
20 | findinterfaces "/sys/devices/platform/1e1c0000.xhci/$T2" "$T1 "
21 | done
22 | ;;
23 | *)
24 | DEVICES=$(find /sys/devices/platform -name idProduct)
25 | for DEVICE in $DEVICES; do
26 | findinterfaces "$(dirname ${DEVICE})"
27 | done
28 | ;;
29 | esac
30 |
31 | exit 0
32 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/bin/easyconfig_logs.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | LOGS=/tmp/easyconfig_logs.txt
4 | T=$(mktemp)
5 |
6 | logread -t -e "AP-STA-.*CONNECTED\|DHCPACK(" | cut -c 27-40,42- >> $T
7 | if [ -s "$T" ]; then
8 | touch $LOGS.gz
9 | zcat $LOGS.gz >> $T 2>/dev/null
10 | sort -u $T > $LOGS
11 | gzip -f $LOGS
12 | fi
13 | rm $T
14 |
15 | exit 0
16 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/bin/easyconfig_modeminfo.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # (c) 2024 Cezary Jackiewicz
5 | #
6 |
7 | . /usr/share/libubox/jshn.sh
8 |
9 | json_init
10 | json_load "$(ubus call easyconfig modem)"
11 | json_get_vars csq signal operator_name operator_mcc operator_mnc mode registration lac_dec lac_hex cid_dec cid_hex
12 |
13 | if [ -z $operator_name ] && [ -z $operator_mcc ] && [ -z $operator_mnc ]; then
14 | echo "Missing modem information"
15 | exit 0
16 | fi
17 |
18 | echo "Signal: ${signal} %"
19 | echo "Mode: ${mode}"
20 | echo "Operator: ${operator_name} (${operator_mcc} ${operator_mnc})"
21 | case $registration in
22 | 0) REG="not registered";;
23 | 1) REG="registered, home network";;
24 | 2) REG="not registered, searching";;
25 | 3) REG="registration denied";;
26 | 5) REG="registered, roaming";;
27 | 6) REG="registered for SMS only, home network";;
28 | 7) REG="registered for SMS only, roaming";;
29 | *) REG="$registration";;
30 | esac
31 | echo "Registration: ${REG}"
32 | echo ""
33 | T="21;CellID: ${cid_dec} (${cid_hex})"
34 | T="${T}\n22;LAC: ${lac_dec} (${lac_hex})"
35 | if json_is_a addon array; then
36 | json_get_keys addon addon
37 | json_select addon
38 | for i in $addon; do
39 | json_select "$i"
40 | json_get_vars idx key value
41 | json_select ..
42 | if [ "$idx" = "10" ]; then
43 | T="${T}\n${idx};${key}: ${value/°/°}"
44 | else
45 | T="${T}\n${idx};${key}: ${value}"
46 | fi
47 | done
48 | fi
49 | echo -e "$T" | sort | awk -F[\;] '{print $2}'
50 |
51 | exit 0
52 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/bin/easyconfig_pincode.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | DEVICE=$(/usr/share/easyconfig/modem/detect.sh)
4 | [ -z $DEVICE ] && exit 0
5 |
6 | CMD=$1
7 | PIN=$2
8 | NEWPIN=$3
9 |
10 | # status
11 | O=$(sms_tool -d $DEVICE at "AT+CLCK=\"SC\",2")
12 | STATUS=$(echo "$O" | awk '/^\+CLCK:/{print $2}')
13 |
14 | case ${CMD} in
15 | "enable")
16 | if [ "x$STATUS" = "x0" ]; then
17 | sms_tool -D -d $DEVICE at "AT+CLCK=\"SC\",1,\""${PIN}"\""
18 | sms_tool -d $DEVICE at "AT+CFUN=1,1"
19 | fi
20 | ;;
21 | "change")
22 | sms_tool -d $DEVICE at "AT+CPWD=\"SC\",\""${PIN}"\",\""${NEWPIN}"\""
23 | ;;
24 | "disable")
25 | if [ "x$STATUS" = "x1" ]; then
26 | sms_tool -D -d $DEVICE at "AT+CLCK=\"SC\",0,\""${PIN}"\""
27 | sms_tool -d $DEVICE at "AT+CFUN=1,1"
28 | fi
29 | ;;
30 | "status")
31 | ;;
32 | esac
33 |
34 | # status
35 | if [ -n "$CMD" ]; then
36 | O=$(sms_tool -d $DEVICE at "AT+CLCK=\"SC\",2")
37 | STATUS=$(echo "$O" | awk '/^\+CLCK:/{print $2}')
38 | fi
39 |
40 | case "${STATUS}" in
41 | "0"*)
42 | echo "SIM pincode OFF"
43 | ;;
44 | *)
45 | echo "SIM pincode ON"
46 | ;;
47 | esac
48 |
49 | if [ -z "$CMD" ]; then
50 | echo ""
51 | echo "$0: status"
52 | echo "$0: enable "
53 | echo "$0: change "
54 | echo "$0: disable "
55 | fi
56 |
57 | exit 0
58 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/bin/easyconfig_setapn.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | MODEM=$1
3 | [ -z "$MODEM" ] && MODEM=$(/usr/share/easyconfig/modem/detect.sh)
4 | [ -z "$MODEM" ] && exit 0
5 | [ -e "$MODEM" ] || exit 0
6 | [ -z $(command -v chat) ] && exit 0
7 |
8 | PROFILE=$(uci -q get network.wan.profile)
9 | [ -z "$PROFILE" ] && PROFILE=1
10 |
11 | T=$(uci -q get network.wan.pdptype | awk '{print tolower($0)}')
12 | case "$T" in
13 | "ipv4v6") PDPTYPE="IPV4V6";;
14 | "ipv6") PDPTYPE="IPV6";;
15 | *) PDPTYPE="IP";;
16 | esac
17 |
18 | APN=$(uci -q get network.wan.apn)
19 | [ -z "$APN" ] && exit 0
20 |
21 | chat -t 3 -e '' 'AT+CGDCONT='$PROFILE',"'$PDPTYPE'","'$APN'"' OK >> $MODEM < $MODEM
22 |
23 | exit 0
24 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/bin/easyconfig_watchdog.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # $1 delay time
4 | # $2 ping count
5 | # $3 host
6 | # $4 period count
7 | # $5 action reboot|wan
8 |
9 | T=$(uci -q get network.wan.proto)
10 | [ -z "$T" ] && exit 0
11 | [ "x$T" = "xnone" ] && exit 0
12 |
13 | UPTIME=$(awk '{printf "%d", $1}' /proc/uptime)
14 | [ $UPTIME -le $1 ] && exit 0
15 |
16 | ping -q -4 -w 10 -c $2 $3 > /tmp/easyconfig_watchdog 2>/dev/null
17 |
18 | PR=$(awk '/packets received/ {print $4}' /tmp/easyconfig_watchdog)
19 | [ -z "$PR" ] && PR=0
20 | if [ "$PR" = "0" ]; then
21 | echo 0 >> /tmp/easyconfig_watchdog_cnt
22 | else
23 | echo 1 > /tmp/easyconfig_watchdog_cnt
24 | exit 0
25 | fi
26 | CNT=$(wc -l < /tmp/easyconfig_watchdog_cnt)
27 | CNT=$((CNT-1))
28 |
29 | if [ $CNT -ge $4 ]; then
30 | case "$5" in
31 | "reboot")
32 | [ -e /etc/easyconfig_watchdog.user ] && env -i ACTION="reboot" /bin/sh /etc/easyconfig_watchdog.user
33 | logger -t $0 "Reboot"
34 | ubus call easyconfig reboot
35 | ;;
36 | "wan")
37 | [ -e /etc/easyconfig_watchdog.user ] && env -i ACTION="wan" /bin/sh /etc/easyconfig_watchdog.user
38 | logger -t $0 "WAN Restart"
39 | (ifdown wan; sleep 5; ifup wan) &
40 | ;;
41 | esac
42 | fi
43 |
44 | exit 0
45 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/03f0581d:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/03f0a31d:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/05c69026:
--------------------------------------------------------------------------------
1 | 16907588
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/05c69625:
--------------------------------------------------------------------------------
1 | # Yuge CLM920 NC_5
2 |
3 | O=$(sms_tool -d $DEVICE at "at+temp")
4 |
5 | T=$(echo "$O" | awk -F[,:] '/^temp:/ {print $2}')
6 | [ -n "$T" ] && addon 10 "Temperature" "$T °C"
7 |
8 | if [ "$REGOK" = "1" ]; then
9 |
10 | O=$(sms_tool -d $DEVICE at "at+qnwinfo")
11 |
12 | if [ "x$MODE_NUM" = "x7" ]; then
13 | T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO/ {print $4}')
14 | if [ -n "$T" ]; then
15 | B=$(echo $T | sed 's/.*LTE_EUTRAN_BAND\(.*\)"/\1/')
16 | MODE="LTE $(band4g ${B})"
17 | addon 30 "Primary band" "$(band4g ${B})"
18 | T=$(echo "$O" | awk -F[,:] '/^\+QNWINFO/ {print $5}')
19 | addon 34 "EARFCN" "$T"
20 | fi
21 | O=$(sms_tool -d $DEVICE at "at+qnwinfo")
22 | T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $3}')
23 | if [ -n "$T" ]; then
24 | T_HEX=$(printf "%X" "$T")
25 | T_DEC=$(printf "%d" "$T")
26 | addon 23 "TAC" "${T_DEC} (${T_HEX})"
27 | fi
28 | T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $5}')
29 | [ -n "$T" ] && addon 33 "PCI" "$T"
30 | T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $12}')
31 | [ -n "$T" ] && addon 35 "RSSI" "$T dBm"
32 | T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $11}')
33 | [ -n "$T" ] && addon 36 "RSRP" "$T dBm"
34 | T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $10}')
35 | [ -n "$T" ] && addon 37 "RSRQ" "$T dB"
36 | T=$(echo "$O" | awk -F[,:] '/^\+LTEINFO/ {print $13}' | xargs)
37 | [ -n "$T" ] && addon 38 "SINR" "$T dB"
38 | fi
39 |
40 | fi
41 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/0e8d7127:
--------------------------------------------------------------------------------
1 | 0e8d7126
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/119968a2:
--------------------------------------------------------------------------------
1 | # Sierra Wireless MC7710
2 |
3 | O=$(sms_tool -d $DEVICE at "at!gstatus?")
4 |
5 | T=$(echo "$O" | awk -F: '/Temperature:/ {print $3}' | xargs)
6 | [ -n "$T" ] && addon 10 "Temperature" "$T °C"
7 |
8 | if [ "$REGOK" = "1" ]; then
9 |
10 | if [ "x$MODE_NUM" = "x7" ]; then
11 | T=$(echo "$O" | awk '/.*TAC:/ {print $5}')
12 | if [ -n "$T" ]; then
13 | T_DEC=$(printf "%d" "0x$T")
14 | addon 23 "TAC" "${T_DEC} ($T)"
15 | fi
16 |
17 | T=$(echo "$O" | awk '/^RSSI/ {print $3}')
18 | [ -n "$T" ] && addon 35 "RSSI" "$T dBm"
19 | T=$(echo "$O" | awk '/^RSRP/ {print $3}')
20 | [ -n "$T" ] && addon 36 "RSRP" "$T dBm"
21 | T=$(echo "$O" | awk '/^RSRQ/ {print $3}')
22 | [ -n "$T" ] && addon 37 "RSRQ" "$T dB"
23 | T=$(echo "$O" | awk '/^SINR/ {print $3}')
24 | [ -n "$T" ] && addon 38 "SINR" "$T dB"
25 |
26 | T=$(echo "$O" | awk '/^LTE band:/ {print $3}')
27 | if [ -n "$T" ]; then
28 | T1=$(echo "$O" | awk '/^LTE band:/ {print $6}')
29 | addon 30 "Primary band" "$(band4g ${T/B/}) @${T1} MHz"
30 | MODE="LTE $(band4g ${T/B/})"
31 | fi
32 | T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $4}')
33 | [ -n "$T" ] && addon 34 "EARFCN DL" "$T"
34 | T=$(echo "$O" | awk '/^LTE Rx chan:/ {print $8}')
35 | [ -n "$T" ] && addon 34 "EARFCN UL" "$T"
36 | fi
37 |
38 | fi
39 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/12d1155e:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/12d1156c:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/12d115c1:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/1435d181:
--------------------------------------------------------------------------------
1 | # WNC D18QC
2 | # WNC D19QA
3 |
4 | if [ "$REGOK" = "1" ]; then
5 |
6 | if [ "x$MODE_NUM" = "x7" ]; then
7 | O=$(sms_tool -d $DEVICE at "at\$qcrsrp?;\$qcrsrq?")
8 | T=$(echo "$O" | awk -F[,:] '/\$QCRSRP/ {gsub("\"","");printf "%.1f", $4 * 1}')
9 | [ -n "$T" ] && addon 36 "RSRP" "$T dBm"
10 | T=$(echo "$O" | awk -F[,:] '/\$QCRSRQ/ {gsub("\"","");printf "%.1f", $4 * 1}')
11 | [ -n "$T" ] && addon 37 "RSRQ" "$T dB"
12 | fi
13 |
14 | fi
15 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/1435d191:
--------------------------------------------------------------------------------
1 | 1435d181
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/19d20167:
--------------------------------------------------------------------------------
1 | # ZTE MF821
2 |
3 | if [ "$REGOK" = "1" ]; then
4 |
5 | O=$(sms_tool -d $DEVICE at "at+zcellinfo?")
6 | B=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO:/ {print $4}')
7 | if [ "x$MODE_NUM" = "x7" ]; then
8 | MODE="$MODE $(band4g ${B/LTE B/})"
9 | else
10 | MODE="$MODE ${B}"
11 | fi
12 |
13 | fi
14 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/19d20189:
--------------------------------------------------------------------------------
1 | # ZTE MF28D
2 | # ZTE MF290
3 |
4 | if [ "$REGOK" = "1" ]; then
5 |
6 | O=$(sms_tool -d $DEVICE at "at+zrssi?;+zcellinfo?")
7 |
8 | case "$MODE_NUM" in
9 | 3*)
10 | T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
11 | addon 35 "RSSI" "$T dBm"
12 | T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
13 | [ -n "$T" ] && MODE="$T"
14 | ;;
15 | 2*|\
16 | 4*|\
17 | 5*|\
18 | 6*)
19 | T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
20 | addon 35 "RSCP" "$T dBm"
21 | T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $3}' | xargs)
22 | addon 36 "ECIO" "$T dB"
23 | T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
24 | [ -n "$T" ] && MODE="$T"
25 | ;;
26 | 7*)
27 | T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $2}' | xargs)
28 | addon 36 "RSRP" "$T dBm"
29 | T=$(echo "$O" | awk -F[,:] '/^\+ZRSSI/ {print $3}' | xargs)
30 | addon 37 "RSRQ" "$T dB"
31 | T=$(echo "$O" | awk -F[,:\;] '/^\+ZCELLINFO/ {print $3}' | xargs)
32 | [ -n "$T" ] && addon 33 "PCI" "$T"
33 | T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $5}' | xargs)
34 | [ -n "$T" ] && addon 34 "EARFCN" "$T"
35 | T=$(echo "$O" | awk -F[,:] '/^\+ZCELLINFO/ {print $4}' | xargs)
36 | MODE="LTE $(band4g ${T/LTE B/})"
37 | ;;
38 | esac
39 |
40 | fi
41 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/1bc71201:
--------------------------------------------------------------------------------
1 | # Telit LE910-EUG
2 |
3 | if [ "$REGOK" = "1" ]; then
4 |
5 | if [ "x$MODE_NUM" = "x7" ]; then
6 |
7 | O=$(sms_tool -d $DEVICE at "at#servinfo")
8 |
9 | T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $4}' | xargs)
10 | if [ -n "$T" ] && [ -z "$FORCE_PLMN" ]; then
11 | COPS="$T"
12 | fi
13 |
14 | T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $7}')
15 | if [ -n "$T" ]; then
16 | T_DEC=$(printf "%d" "0x$T")
17 | addon 23 "TAC" "${T_DEC} ($T)"
18 | fi
19 | T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $6}')
20 | [ -n "$T" ] && addon 33 "PCI" "$(printf "%d" "0x$T")"
21 | T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $2}')
22 | [ -n "$T" ] && addon 34 "EARFCN" "$T"
23 |
24 | T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $3}')
25 | [ -n "$T" ] && addon 35 "RSSI" "$T dBm"
26 | T=$(echo "$O" | awk -F[,:] '/^#SERVINFO/ {print $10}')
27 | [ -n "$T" ] && addon 36 "RSRP" "$T dBm"
28 | fi
29 |
30 | fi
31 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/1e0e9000:
--------------------------------------------------------------------------------
1 | # SIMCOM SIM7906
2 | # SIMCOM SIM8200EA-M2
3 |
4 | O=$(sms_tool -d $DEVICE at "AT+CPMUTEMP")
5 |
6 | T=$(echo "$O" | awk -F[,:] '/^\+CPMUTEMP/ {print $2}' | xargs)
7 | [ -n "$T" ] && addon 10 "Temperature" "$T °C"
8 |
9 | if [ "$REGOK" = "1" ]; then
10 |
11 | O=$(sms_tool -d $DEVICE at "AT+CPSI?")
12 |
13 | case $MODE_NUM in
14 | 7)
15 | MODE="LTE"
16 | T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $5}')
17 | if [ -n "$T" ]; then
18 | T_DEC=$(printf "%d" "$T")
19 | addon 23 "TAC" "${T_DEC} (${T/0x/})"
20 | fi
21 | T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $7}')
22 | [ -n "$T" ] && addon 33 "PCI" "$T"
23 | T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $8}')
24 | [ -n "$T" ] && addon 30 "Primary band" "$(band4g ${T/EUTRAN-BAND/})"
25 | T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $9}')
26 | [ -n "$T" ] && addon 34 "EARFCN" "$T"
27 | T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $10}')
28 | [ -n "$T" ] && addon 32 "Bandwidth DL" "$T MHz"
29 | T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $11}')
30 | [ -n "$T" ] && addon 31 "Bandwidth UL" "$T MHz"
31 | T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $12/10}')
32 | [ -n "$T" ] && addon 37 "RSRQ" "$T dB"
33 | T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $13/10}')
34 | [ -n "$T" ] && addon 36 "RSRP" "$T dBm"
35 | T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $14/10}')
36 | [ -n "$T" ] && addon 35 "RSSI" "$T dBm"
37 | T=$(echo "$O" | awk -F[,:] '/^\+CPSI: LTE/ {print $15}')
38 | [ -n "$T" ] && addon 38 "SNR" "$T dBm"
39 | ;;
40 | 11) MODE="5G SA";;
41 | 13) MODE="5G NSA";;
42 | esac
43 |
44 | fi
45 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/1e0e9001:
--------------------------------------------------------------------------------
1 | 1e0e9000
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/1e0e9003:
--------------------------------------------------------------------------------
1 | 1e0e9000
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/1e2d00b7:
--------------------------------------------------------------------------------
1 | 1e2d00b3
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/20202033:
--------------------------------------------------------------------------------
1 | # BroadMobi BM806U
2 |
3 | if [ "$REGOK" = "1" ]; then
4 |
5 | if [ "x$MODE_NUM" = "x7" ]; then
6 |
7 | O=$(sms_tool -d $DEVICE at "AT+BMTCELLINFO")
8 | echo "$O" | grep "^+BMTCELLINFO" | grep -q ",LAC_ID:" && O=$(echo "$O"| sed 's/,[ ]*/\n/g')
9 |
10 | T=$(echo "$O" | awk -F[,:] '/^TAC:/ {print $2}' | xargs)
11 | if [ -n "$T" ]; then
12 | T_HEX=$(printf "%X" $T)
13 | addon 23 "TAC" "$T (${T_HEX})"
14 | fi
15 |
16 | T=$(echo "$O" | awk -F[,:] '/^RSSI:/ {print $2}' | xargs)
17 | [ -n "$T" ] && addon 35 "RSSI" "-${T} dBm"
18 | T=$(echo "$O" | awk -F[,:] '/^RSRP:/ {print $2}' | xargs)
19 | [ -n "$T" ] && addon 36 "RSRP" "$T dBm"
20 | T=$(echo "$O" | awk -F[,:] '/^RSRQ:/ {print $2}' | xargs)
21 | [ -n "$T" ] && addon 37 "RSRQ" "$T dB"
22 | T=$(echo "$O" | awk -F[,:] '/^SINR:/ {print $2}' | xargs)
23 | [ -n "$T" ] && addon 38 "SINR" "$T dB"
24 |
25 | T=$(echo "$O" | awk -F[,:] 'BEGIN{IGNORECASE=1} /^ACTIVE BAND:/ {print $2}' | xargs)
26 | [ -n "$T" ] && MODE="LTE $(band4g ${T})"
27 |
28 | T=$(echo "$O" | awk -F[,:] '/^PCI:/ {print $2}' | xargs)
29 | [ -n "$T" ] && addon 33 "PCI" "$T"
30 | T=$(echo "$O" | awk -F[,:] '/^EARFCN_DL:/ {print $2}' | xargs)
31 | if [ -n "$T" ] && [ "x$T" != "x0" ]; then
32 | addon 34 "EARFCN DL" "$T"
33 | fi
34 | T=$(echo "$O" | awk -F[,:] '/^EARFCN_UL:/ {print $2}' | xargs)
35 | if [ -n "$T" ] && [ "x$T" != "x0" ]; then
36 | addon 34 "EARFCN UL" "$T"
37 | fi
38 |
39 | fi
40 |
41 | fi
42 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/2c7c0125:
--------------------------------------------------------------------------------
1 | 05c69215
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/2c7c030b:
--------------------------------------------------------------------------------
1 | 2c7c0306
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/2c7c0620:
--------------------------------------------------------------------------------
1 | 2c7c0512
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/2c7c0801:
--------------------------------------------------------------------------------
1 | 2c7c0800
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/2c7c0900:
--------------------------------------------------------------------------------
1 | 2c7c0800
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/2cb70104:
--------------------------------------------------------------------------------
1 | O=$(sms_tool -d /dev/ttyUSB1 at 'AT+CGMM?')
2 |
3 | if echo "$O" | grep -q "FM150"; then
4 | . $RES/addon/usb/2cb70104.fm150
5 | elif echo "$O" | grep -q "FM190"; then
6 | . $RES/addon/usb/2cb70104.fm190
7 | fi
8 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/2cd20001:
--------------------------------------------------------------------------------
1 | # Mikrotik R11e-LTE
2 |
3 | if [ "$REGOK" = "1" ]; then
4 |
5 | # COPS
6 | COPS=""
7 | COPS_MCC=""
8 | COPS_MNC=""
9 | COPS_NUM=$(echo "$O" | awk -F[\"] '/^\+COPS: \(.,2/ {print $2}')
10 | if [ -n "$COPS_NUM" ]; then
11 | COPS_MCC=${COPS_NUM:0:3}
12 | COPS_MNC=${COPS_NUM:3:3}
13 | fi
14 |
15 | if [ -z "$FORCE_PLMN" ]; then
16 | COPS=$(echo "$O" | awk -F[\"] '/^\+COPS: \(.,0/ {print $2)' | awk '{if(NF==2 && $1==$2){print $1}else{print $0}}')
17 | else
18 | [ -n "$COPS_NUM" ] && COPS=$(awk -F[\;] '/'$COPS_NUM'/ {print $2}' $RES/mccmnc.dat)
19 | fi
20 | [ -z "$COPS" ] && COPS=$COPS_NUM
21 |
22 | O=$(sms_tool -d $DEVICE at "at+cesq")
23 | T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $2}' | xargs)
24 | if [ -n "$T" ]; then
25 | [ "$T" != "99" ] && addon 35 "RSSI" "$((T - 111)) dBm"
26 | fi
27 | T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $4}' | xargs)
28 | if [ -n "$T" ]; then
29 | [ "$T" != "255" ] && addon 35 "RSCP" "$((T - 121)) dBm"
30 | fi
31 | T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $5}' | xargs)
32 | if [ -n "$T" ]; then
33 | if [ "$T" != "255" ]; then
34 | T=$(echo "$T" | awk '{printf "%.1f", -1 * (24.5 - $1 * 0.5)}')
35 | addon 36 "ECIO" "$T dB"
36 | fi
37 | fi
38 | T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $7}' | xargs)
39 | if [ -n "$T" ]; then
40 | [ "$T" != "255" ] && addon 36 "RSRP" "$((T - 141)) dBm"
41 | fi
42 | T=$(echo "$O" | awk -F[,:] '/^\+CESQ/ {print $6}' | xargs)
43 | if [ -n "$T" ]; then
44 | if [ "$T" != "255" ]; then
45 | T=$(echo "$T" | awk '{printf "%.1f", -1 * (20 - $1 * 0.5)}')
46 | addon 37 "RSRQ" "$T dB"
47 | fi
48 | fi
49 |
50 | fi
51 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/413c81b1:
--------------------------------------------------------------------------------
1 | 11999071
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/addon/usb/413c81b6:
--------------------------------------------------------------------------------
1 | 11999071
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/check.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.01
5 | waitquiet 0.01 0.01
6 |
7 | send "AT+CPIN?^m"
8 | waitfor 2 "OK" "+CME ERROR"
9 | if % = -1 goto timeout
10 | exit 0
11 |
12 | :timeout
13 | exit 1
14 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/checkext.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.01
5 | waitquiet 0.01 0.01
6 |
7 | let $c="AT+CPIN?^m"
8 | let $r="+CPIN"
9 | gosub readatcmd
10 |
11 | let $c="AT+CGDCONT?^m"
12 | let $r="+CGDCONT"
13 | gosub readatcmd
14 |
15 | exit 0
16 |
17 | :readatcmd
18 | let i=15
19 | send $c
20 | :loop
21 | get 0.1 "^m" $s
22 | let l=len($r)
23 | if len($s) < l goto loop1
24 | if $mid($s,1,l) <> $r goto loop1
25 | print $s
26 | return
27 |
28 | :loop1
29 | if len($s) < 2 goto loop2
30 | if $mid($s,1,2) = "ER" return
31 | if $mid($s,1,2) = "CO" return
32 | if len($s) < 10 goto loop2
33 | if $mid($s,1,10) != "+CME ERROR" goto loop2
34 | print $s
35 | return
36 | :loop2
37 | if i = 0 return
38 | let i=i-1
39 | goto loop
40 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/detect.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # (c) 2023-2024 Cezary Jackiewicz
5 | #
6 |
7 | getdevicepath() {
8 | devname="$(basename $1)"
9 | case "$devname" in
10 | 'wwan'*'at'*)
11 | devpath="$(readlink -f /sys/class/wwan/$devname/device)"
12 | echo ${devpath%/*/*/*}
13 | ;;
14 | 'ttyACM'*)
15 | devpath="$(readlink -f /sys/class/tty/$devname/device)"
16 | echo ${devpath%/*}
17 | ;;
18 | 'tty'*)
19 | devpath="$(readlink -f /sys/class/tty/$devname/device)"
20 | echo ${devpath%/*/*}
21 | ;;
22 | *)
23 | devpath="$(readlink -f /sys/class/usbmisc/$devname/device)"
24 | echo ${devpath%/*}
25 | ;;
26 | esac
27 | }
28 |
29 | # from config
30 | DEVICE=$(uci -q get easyconfig.modem.device)
31 | if [ -n "$DEVICE" ]; then
32 | echo $DEVICE
33 | exit 0
34 | fi
35 |
36 | # from temporary config
37 | MODEMFILE=/var/state/easyconfig_modem
38 | touch $MODEMFILE
39 | DEVICE=$(cat $MODEMFILE)
40 | if [ -n "$DEVICE" ]; then
41 | echo $DEVICE
42 | exit 0
43 | fi
44 |
45 | # find any device
46 | DEVICES=$(find /dev -name "ttyUSB*" -o -name "ttyACM*" -o -name "wwan*at*" | sort -r)
47 | # limit to devices from the modem
48 | WAN=$(uci -q get network.wan.device)
49 | if [ -e "$WAN" ]; then
50 | DEVPATH=$(getdevicepath "$WAN")
51 | DEVICESFOUND=""
52 | for DEVICE in $DEVICES; do
53 | T=$(getdevicepath $DEVICE)
54 | [ "x$T" = "x$DEVPATH" ] && DEVICESFOUND="$DEVICESFOUND $DEVICE"
55 | done
56 | DEVICES="$DEVICESFOUND"
57 | fi
58 | for DEVICE in $DEVICES; do
59 | gcom -d $DEVICE -s /usr/share/easyconfig/modem/check.gcom >/dev/null 2>&1
60 | if [ $? = 0 ]; then
61 | echo "$DEVICE" | tee $MODEMFILE
62 | exit 0
63 | fi
64 | done
65 |
66 | echo ""
67 | exit 0
68 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/info.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.01
5 | waitquiet 0.01 0.01
6 |
7 | let $c="AT+CSQ^m"
8 | let $r="+CSQ"
9 | gosub readatcmd
10 |
11 | let $c="AT+COPS=3,0;+COPS?^m"
12 | let $r="+COPS"
13 | gosub readatcmd
14 |
15 | let $c="AT+COPS=3,2;+COPS?^m"
16 | let $r="+COPS"
17 | gosub readatcmd
18 |
19 | let $c="AT+CREG=2;+CREG?^m"
20 | let $r="+CREG"
21 | gosub readatcmd
22 |
23 | let $c="AT+CPIN?^m"
24 | let $r="+CPIN"
25 | gosub readatcmd
26 |
27 | exit 0
28 |
29 | :readatcmd
30 | let i=15
31 | send $c
32 | :loop
33 | get 0.1 "^m" $s
34 | let l=len($r)
35 | if len($s) < l goto loop1
36 | if $mid($s,1,l) <> $r goto loop1
37 | print $s
38 | return
39 |
40 | :loop1
41 | if len($s) < 2 goto loop2
42 | if $mid($s,1,2) = "ER" return
43 | if $mid($s,1,2) = "CO" return
44 | if len($s) < 10 goto loop2
45 | if $mid($s,1,10) != "+CME ERROR" goto loop2
46 | print $s
47 | return
48 | :loop2
49 | if i = 0 exit 0
50 | let i=i-1
51 | goto loop
52 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/mccmnc.dat:
--------------------------------------------------------------------------------
1 | 22234;BT Italia SpA
2 | 22202;Elsacom
3 | 22299;H3G
4 | 22233;H3G
5 | 22277;IPSE 2000
6 | 22235;Lycamobile Srl
7 | 22207;Noverca Italia Srl
8 | 22230;RFI Rete Ferroviaria Italiana SpA
9 | 22243;Telecom Italia Mobile SpA
10 | 22201;TIM
11 | 22248;Telecom Italia Mobile SpA
12 | 22210;Vodafone
13 | 22206;Vodafone
14 | 22244;WIND
15 | 22288;WIND
16 | 26001;Plus
17 | 26002;T-Mobile
18 | 26003;Orange
19 | 26006;Play
20 | 26017;Aero2
21 | 26034;NetWorks
22 | 24801;Telia
23 | 24802;Elisa
24 | 24803;Tele2
25 | 51001;Indosat Ooredoo
26 | 51003;StarOne
27 | 51007;TelkomFlexi
28 | 51008;AXIS
29 | 51009;Smartfren
30 | 51010;Telkomsel
31 | 51011;XL 4G
32 | 51020;TELKOMMobile
33 | 51021;IM3
34 | 51027;Ceria
35 | 51028;Fren/Hepi
36 | 51088;BOLT! Super 4G
37 | 51089;3
38 | 51099;Esia
39 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/modem/vendorproduct.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.01
5 | waitquiet 0.01 0.01
6 |
7 | let $c="ATE0;+CGMI^m"
8 | let $r="+CGMI:"
9 | gosub readatcmdfl
10 |
11 | let $c="AT+CGMM^m"
12 | let $r="+CGMM:"
13 | gosub readatcmdfl
14 |
15 | let $c="AT+CGMR^m"
16 | let $r="+CGMR:"
17 | gosub readatcmdfl
18 |
19 | let $c="AT+CGSN^m"
20 | let $r="+CGSN:"
21 | gosub readatcmdfl
22 |
23 | let $c="AT\^ICCID?^m"
24 | gosub readatcmd
25 | let $c="AT+ICCID^m"
26 | gosub readatcmd
27 | let $c="AT+QCCID^m"
28 | gosub readatcmd
29 | let $c="AT#CCID^m"
30 | gosub readatcmd
31 | let $c="AT!ICCID?^m"
32 | gosub readatcmd
33 | let $c="AT*ICCID?^m"
34 | gosub readatcmd
35 | let $c="AT+CCID^m"
36 | gosub readatcmd
37 |
38 | exit 0
39 |
40 | :readatcmd
41 | let i=15
42 | send $c
43 | :loop
44 | get 0.1 "^m" $s
45 | if len($s) < 2 goto loop2
46 | if $mid($s,1,2) = "ER" goto loop1
47 | if $mid($s,1,2) = "OK" goto loop2
48 | if $mid($s,1,2) = "AT" goto loop2
49 | print $s,"\n"
50 | exit 0
51 |
52 | :loop1
53 | return
54 |
55 | :loop2
56 | if i = 0 return
57 | let i=i-1
58 | goto loop
59 |
60 | :readatcmdfl
61 | let i=15
62 | send $c
63 | :loop3
64 | get 0.1 "^m" $s
65 | if len($s) < 2 goto loop5
66 | let f=0
67 | if $mid($s,0,1) ="\n" let f=1
68 | if $mid($s,f,2) = "ER" goto loop4
69 | if $mid($s,f,2) = "OK" goto loop5
70 | if $mid($s,f,2) = "AT" goto loop5
71 | if $mid($s,f,1) = "\^" goto loop5
72 | if $mid($s,f,1) = "#" goto loop5
73 | let l=len($s)
74 | let $s=$mid($s,f,l)
75 | print $r,$s,"\n"
76 | return
77 |
78 | :loop4
79 | return
80 |
81 | :loop5
82 | if i = 0 return
83 | let i=i-1
84 | goto loop3
85 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/rc.button/killswitch:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # killswitch
3 | [ "${ACTION}" = "released" ] || exit 0
4 |
5 | ENABLED=""
6 | RULES=$(uci show firewall | awk -F. '/\.src='\''lan'\''$/{print $2}')
7 | for RULE in $RULES; do
8 | T=$(uci -q get firewall.${RULE}.dest)
9 | if [ "x$T" = "xwan" ]; then
10 | T=$(uci -q get firewall.$RULE)
11 | if [ "x$T" = "xforwarding" ]; then
12 | ENABLED=$RULE
13 | break
14 | fi
15 | fi
16 | done
17 |
18 | if [ -n "$ENABLED" ]; then
19 | uci -q del firewall.$ENABLED
20 | else
21 | uci add firewall forwarding
22 | uci set firewall.@forwarding[-1].src=lan
23 | uci set firewall.@forwarding[-1].dest=wan
24 | fi
25 | uci commit firewall
26 | /etc/init.d/firewall restart
27 |
28 | exit 0
29 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/rc.button/leds:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # leds
3 | [ "${ACTION}" = "released" ] || exit 0
4 |
5 | if [ -e /tmp/led_off ]; then
6 | ubus call easyconfig leds '{"action":"on"}'
7 | else
8 | ubus call easyconfig leds '{"action":"off"}'
9 | fi
10 |
11 | exit 0
12 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/rc.button/vpn:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # vpn
3 | [ "${ACTION}" = "released" ] || exit 0
4 |
5 | VPN=$(uci -q get easyconfig.vpn.interface)
6 | [ -z "$VPN" ] && exit 0
7 |
8 | if [ -e /etc/config/openvpn ]; then
9 | OVPN=$(uci show openvpn | awk -F. '/\.dev='\'''${VPN}''\''$/{print $2}' | head -n1)
10 | if [ -n "$OVPN" ]; then
11 | T=$(ubus call network.interface status "{\"interface\":\"${VPN}\"}" 2>/dev/null | jsonfilter -q -e @.up)
12 | if [ "x$T" = "xfalse" ]; then
13 | uci set openvpn.$OVPN.enabled=1
14 | else
15 | uci set openvpn.$OVPN.enabled=0
16 | fi
17 | /etc/init.d/openvpn restart
18 | uci revert openvpn
19 | exit 0
20 | fi
21 | fi
22 |
23 | T=$(ubus call network.interface status "{\"interface\":\"${VPN}\"}" 2>/dev/null | jsonfilter -q -e @.up)
24 | if [ "x$T" = "xfalse" ]; then
25 | ifup ${VPN}
26 | else
27 | ifdown ${VPN}
28 | ifup wan
29 | fi
30 |
31 | exit 0
32 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/rc.button/wifitoggle:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # wifitoggle
3 | [ "${ACTION}" = "released" ] || exit 0
4 |
5 | SECTIONS=$(uci -q show wireless | awk -F. '/\.button='\''1'\''$/{print $2}');
6 | for SEC in $SECTIONS; do
7 | T1=1
8 | T2=$(uci -q get wireless.${SEC}.disabled)
9 | [ "x$T2" = "x1" ] && T1=0
10 | uci set wireless.${SEC}.disabled=$T1
11 | done
12 | if [ -n "$SECTIONS" ]; then
13 | uci commit wireless
14 | wifi reload
15 | fi
16 |
17 | exit 0
18 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/easyconfig/rc.button/wol:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # wol
3 | [ "${ACTION}" = "released" ] || exit 0
4 |
5 | T=$(uci show easyconfig | awk -F[=.] '/=wol/{print $2}')
6 | for i in $T; do
7 | [ "x$(uci -q get easyconfig.$i.button)" = "x1" ] && ubus call easyconfig wolwakeup '{"section":"'${i}'"}'
8 | done
9 |
10 | exit 0
11 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/luci/menu.d/easyconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "admin/services/easyconfig": {
3 | "title": "easyconfig",
4 | "order": 1,
5 | "action": {
6 | "type": "view",
7 | "path": "easyconfig"
8 | },
9 | "depends": {
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/easyconfig/files/usr/share/rpcd/acl.d/easyconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "easyconfig": {
3 | "description": "Easyconfig access role",
4 | "read": {
5 | "ubus": {
6 | "*": ["*"]
7 | },
8 | "file": {
9 | "*": ["*"]
10 | }
11 | },
12 | "write": {
13 | "ubus": {
14 | "*": ["*"]
15 | },
16 | "file": {
17 | "*": ["*"]
18 | }
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/easyconfig/files/www/easyconfig/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/easyconfig/files/www/easyconfig/favicon.ico
--------------------------------------------------------------------------------
/easyconfig/files/www/easyconfig/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/easyconfig/files/www/easyconfig/manuf.js:
--------------------------------------------------------------------------------
1 | var manuf = {};
2 |
--------------------------------------------------------------------------------
/easyconfig/files/www/luci-static/resources/view/easyconfig.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | 'require form';
3 | 'require view';
4 |
5 | return view.extend({
6 | load: function() {
7 | return Promise.resolve();
8 | },
9 |
10 | render: function(data) {
11 | var m, s, o;
12 |
13 | m = new form.Map('system', 'easyconfig', 'Na tym routerze zainstalowany jest także easyconfig! Kliknij poniżej aby go otworzyć.');
14 |
15 | s = m.section(form.NamedSection, 'global');
16 | s.render = L.bind(function(view, section_id) {
17 | return E('div', { 'class': 'cbi-section' }, [
18 | E('div', { class: 'right' }, [
19 | E('button', {
20 | 'class': 'btn cbi-button cbi-button-apply',
21 | 'onclick': 'window.open("/easyconfig.html");',
22 | }, [ 'Otwórz easyconfig' ])
23 | ])
24 | ]);
25 | }, o, this);
26 |
27 | return m.render();
28 | },
29 |
30 | handleSave: null,
31 | handleSaveApply: null,
32 | handleReset: null
33 | });
34 |
--------------------------------------------------------------------------------
/ekooneplconfigs/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=ekooneplconfigs
4 | PKG_VERSION:=20250212
5 | PKG_RELEASE:=1
6 | PKG_MAINTAINER:=Cezary Jackiewicz
7 |
8 | PKG_FLAGS:=nonshared
9 |
10 | include $(INCLUDE_DIR)/package.mk
11 |
12 | define Package/$(PKG_NAME)
13 | CATEGORY:=Administration
14 | SUBMENU:=eko.one.pl services
15 | SECTION:=admin
16 | TITLE:=eko.one.pl configs
17 | endef
18 |
19 | ifeq ($(CONFIG_TARGET_ipq806x_generic),y)
20 | FILE_PATH:=./files/ipq806x_generic
21 | endif
22 | ifeq ($(CONFIG_TARGET_mediatek_filogic),y)
23 | FILE_PATH:=./files/mediatek_filogic
24 | endif
25 | ifeq ($(CONFIG_TARGET_mvebu_cortexa53),y)
26 | FILE_PATH:=./files/mvebu_cortexa53
27 | endif
28 | ifeq ($(CONFIG_TARGET_mvebu_cortexa9),y)
29 | FILE_PATH:=./files/mvebu_cortexa9
30 | endif
31 | ifeq ($(CONFIG_TARGET_qualcommax_ipq807x),y)
32 | FILE_PATH:=./files/qualcommax_ipq807x
33 | endif
34 | ifeq ($(CONFIG_TARGET_x86_64),y)
35 | FILE_PATH:=./files/x86_64
36 | endif
37 |
38 | define Build/Compile
39 | endef
40 |
41 | define Package/$(PKG_NAME)/install
42 | $(CP) ./files/generic/* $(1)
43 | ifdef FILE_PATH
44 | $(CP) $(FILE_PATH)/* $(1)
45 | endif
46 | endef
47 |
48 | $(eval $(call BuildPackage,$(PKG_NAME)))
49 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/generic/etc/board.d/97-eko1:
--------------------------------------------------------------------------------
1 | #
2 | # (c) 2024 Cezary Jackiewicz
3 | #
4 |
5 | . /lib/functions/uci-defaults.sh
6 |
7 | board_config_update
8 |
9 | ucidef_set_country "PL"
10 | ucidef_set_timezone "CET-1CEST,M3.5.0,M10.5.0/3"
11 |
12 | board_config_flush
13 |
14 | exit 0
15 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/generic/etc/profile.d/busybox-history-file.sh:
--------------------------------------------------------------------------------
1 | export HISTFILE=/tmp/.busybox_ash_history
2 |
3 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/generic/etc/profile.d/prompt.sh:
--------------------------------------------------------------------------------
1 | export PS1='\[\033[01;32m\]\u@\h:\w\$\[\033[00m\] '
2 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/generic/etc/sysinfo.d/10_cpu_cur_freq:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | F=/sys/bus/cpu/devices/cpu*/cpufreq
3 | for f in $F; do
4 | [ -e $f ] || continue
5 | if [ -e $f/scaling_cur_freq ]; then
6 | [ -n "$T" ] && T="$T, "
7 | T="$T"$(awk '{if ($1 >= 1000000) {printf "%.2fGHz", $1/1000000} else {printf "%.2fMHz", $1/1000}}' $f/scaling_cur_freq)
8 | else
9 | if [ -e $f/cpuinfo_cur_freq ]; then
10 | [ -n "$T" ] && T="$T, "
11 | T="$T"$(awk '{if ($1 >= 1000000) {printf "%.2fGHz", $1/1000000} else {printf "%.2fMHz", $1/1000}}' $f/cpuinfo_cur_freq)
12 | fi
13 | fi
14 | done
15 | [ -n "$T" ] && echo "CPU freq: $T"
16 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/generic/etc/sysinfo.d/20_cpu_temperature:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | T=""
3 | F=/sys/class/hwmon/hwmon*
4 | for f in $F; do
5 | [ -e $f ] || continue
6 | [ -e $f/name ] && NAME=$(cat $f/name)
7 | if [ -n "$NAME" ]; then
8 | case "$NAME" in
9 | k10temp|coretemp|armada_thermal|cpu_thermal|f10e4078.thermal)
10 | for i in $f/temp*_input; do
11 | [ -n "$T" ] && T="$T, "
12 | T="$T"$(awk '{if ($1 == 0){printf ""}else{printf "%.2f C", $1/1000}}' $i 2>/dev/null)
13 | done
14 | ;;
15 | esac
16 | fi
17 | done
18 | [ -n "$T" ] && echo "CPU temp: $T"
19 | exit 0
20 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/generic/etc/sysinfo.d/30_wifi_temperature:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | T=""
3 | F=/sys/class/hwmon/hwmon*
4 | for f in $F; do
5 | [ -e $f ] || continue
6 | [ -e $f/name ] && NAME=$(cat $f/name)
7 | if [ -n "$NAME" ]; then
8 | case "$NAME" in
9 | ath10k_hwmon|ath11k_hwmon|mt7*_phy*)
10 | [ -n "$T" ] && T="$T, "
11 | T="$T"$(awk '{if ($1 == 0){printf ""}else{printf "%.2f C", $1/1000}}' $f/temp1_input 2>/dev/null)
12 | ;;
13 | tmp421)
14 | T="$T"$(awk '{if ($1 == 0){printf ""}else{printf "%.2f C", $1/1000}}' $f/temp2_input 2>/dev/null)
15 | ;;
16 | esac
17 | fi
18 | done
19 | [ -n "$T" ] && echo "Wi-Fi chip temp: $T"
20 | exit 0
21 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/generic/etc/uci-defaults/zz-eko1:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #uci set system.@system[0].timezone='CET-1CEST,M3.5.0,M10.5.0/3'
4 | uci set system.@system[0].zonename='Europe/Warsaw'
5 | uci commit system
6 |
7 | exit 0
8 |
9 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/ipq806x_generic/etc/sysinfo.d/20_thermal_zone:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | F=/sys/class/thermal/thermal_zone*/temp
3 | T=0
4 | for f in $F; do
5 | [ -e $f ] || continue
6 | T1=$(cat $f)
7 | [ $T1 -gt $T ] && T=$T1
8 | done
9 | [ $T -gt 0 ] && echo "$T" | awk '{printf "CPU max temperature: %.2f C\n", $1/1000}'
10 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/mediatek_filogic/etc/sysinfo.d/40_ethernet_temperature:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | T=""
3 | F=/sys/class/hwmon/hwmon*
4 | for f in $F; do
5 | [ -e $f ] || continue
6 | [ -e $f/name ] && NAME=$(cat $f/name)
7 | if [ -n "$NAME" ]; then
8 | case "$NAME" in
9 | mdio_bus*)
10 | [ -n "$T" ] && T="$T, "
11 | T="$T"$(awk '{if ($1 == 0){printf ""}else{printf "%.2f C", $1/1000}}' $f/temp1_input 2>/dev/null)
12 | ;;
13 | esac
14 | fi
15 | done
16 | [ -n "$T" ] && echo "Ethernet chip temp: $T"
17 | exit 0
18 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/mvebu_cortexa53/etc/sysinfo.d/40_ram_temperature:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | T=""
3 | F=/sys/class/hwmon/hwmon*
4 | for f in $F; do
5 | [ -e $f ] || continue
6 | [ -e $f/name ] && NAME=$(cat $f/name)
7 | if [ -n "$NAME" ]; then
8 | case "$NAME" in
9 | tmp421)
10 | DDR="$T"$(awk '{if ($1 == 0){printf ""}else{printf "%.2f C", $1/1000}}' $f/temp1_input 2>/dev/null)
11 | ;;
12 | esac
13 | fi
14 | done
15 | [ -n "$DDR" ] && echo "RAM chip temp: $DDR"
16 | exit 0
17 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/mvebu_cortexa9/etc/sysinfo.d/40_ram_temperature:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | T=""
3 | F=/sys/class/hwmon/hwmon*
4 | for f in $F; do
5 | [ -e $f ] || continue
6 | [ -e $f/name ] && NAME=$(cat $f/name)
7 | if [ -n "$NAME" ]; then
8 | case "$NAME" in
9 | tmp421)
10 | DDR="$T"$(awk '{if ($1 == 0){printf ""}else{printf "%.2f C", $1/1000}}' $f/temp1_input 2>/dev/null)
11 | ;;
12 | esac
13 | fi
14 | done
15 | [ -n "$DDR" ] && echo "RAM chip temp: $DDR"
16 | exit 0
17 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/qualcommax_ipq807x/root/resize-root.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | TYPE=$(mount | awk '/dev\/root/ {print $5}')
4 |
5 | if [ "x$TYPE" = "xext4" ]; then
6 | BOOT="$(sed -n -e "/\s\/boot\s.*$/{s///p;q}" /etc/mtab)"
7 | DISK="${BOOT%[0-9]*}"
8 | PART="$((${BOOT##*[^0-9]}+1))"
9 | ROOT="${DISK}${PART}"
10 | T=$(echo "$DISK" | sed 's/.*\(.\)$/\1/')
11 | [ "x$T" = "xp" ] && DISK="${DISK::-1}"
12 | parted -s -a opt $DISK "resizepart 2 100%"
13 |
14 | LOOP="$(losetup -f)"
15 | losetup ${LOOP} ${ROOT}
16 | fsck.ext4 -y -f ${LOOP}
17 | resize2fs ${LOOP}
18 | reboot
19 | fi
20 |
21 | if [ "x$TYPE" = "xsquashfs" ]; then
22 | BOOT="$(sed -n -e "/\s\/boot\s.*$/{s///p;q}" /etc/mtab)"
23 | DISK="${BOOT%[0-9]*}"
24 | PART="$((${BOOT##*[^0-9]}+1))"
25 | ROOT="${DISK}${PART}"
26 | T=$(echo "$DISK" | sed 's/.*\(.\)$/\1/')
27 | [ "x$T" = "xp" ] && DISK="${DISK::-1}"
28 | parted -s -a opt $DISK "resizepart 2 100%"
29 |
30 | LOOP="$(losetup -n -O NAME | sort | sed -n -e "1p")"
31 | OFFS="$(losetup -n -O OFFSET ${LOOP})"
32 | LOOP="$(losetup -f)"
33 | losetup -o ${OFFS} ${LOOP} ${ROOT}
34 |
35 | T=$(mount | awk '/\/dev\/loop.*on \/overlay/ {print $5}')
36 | if [ "x$T" = "xext4" ]; then
37 | fsck.ext4 -y -f ${LOOP}
38 | resize2fs ${LOOP}
39 | fi
40 | if [ "x$T" = "xf2fs" ]; then
41 | fsck.f2fs -y -f ${LOOP}
42 | mount ${LOOP} /mnt
43 | umount ${LOOP}
44 | resize.f2fs ${LOOP}
45 | fi
46 | reboot
47 | fi
48 |
49 | exit 0
50 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/x86_64/etc/sysinfo.d/40_cpu_power:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | T=""
3 | F=/sys/class/hwmon/hwmon*
4 | for f in $F; do
5 | [ -e $f ] || continue
6 | [ -e $f/name ] && NAME=$(cat $f/name)
7 | if [ -n "$NAME" ]; then
8 | case "$NAME" in
9 | fam15h_power)
10 | [ -n "$T" ] && T="$T, "
11 | T="$T"$(awk '{if ($1 == 0){printf ""}else{printf "%.2f W", $1/1000000}}' $f/power1_average 2>/dev/null)
12 | ;;
13 | esac
14 | fi
15 | done
16 | [ -n "$T" ] && echo "CPU power: $T"
17 | exit 0
18 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/x86_64/etc/uci-defaults/resize-root.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | [ -e /etc/config/luci ] || exit 0
4 |
5 | if uci show luci | grep -q resize-root.sh; then
6 | true
7 | else
8 | uci add luci command
9 | uci set luci.@command[-1].name='Rozszerzanie partycji głównej na cały nośnik'
10 | uci set luci.@command[-1].command='/root/resize-root.sh'
11 | uci commit luci
12 | fi
13 |
14 | exit 0
15 |
--------------------------------------------------------------------------------
/ekooneplconfigs/files/x86_64/root/resize-root.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | TYPE=$(mount | awk '/dev\/root/ {print $5}')
4 |
5 | if [ "x$TYPE" = "xext4" ]; then
6 | BOOT="$(sed -n -e "/\s\/boot\s.*$/{s///p;q}" /etc/mtab)"
7 | DISK="${BOOT%[0-9]*}"
8 | PART="$((${BOOT##*[^0-9]}+1))"
9 | ROOT="${DISK}${PART}"
10 | T=$(echo "$DISK" | sed 's/.*\(.\)$/\1/')
11 | [ "x$T" = "xp" ] && DISK="${DISK::-1}"
12 | parted -s -a opt $DISK "resizepart 2 100%"
13 |
14 | LOOP="$(losetup -f)"
15 | losetup ${LOOP} ${ROOT}
16 | fsck.ext4 -y -f ${LOOP}
17 | resize2fs ${LOOP}
18 | reboot
19 | fi
20 |
21 | if [ "x$TYPE" = "xsquashfs" ]; then
22 | BOOT="$(sed -n -e "/\s\/boot\s.*$/{s///p;q}" /etc/mtab)"
23 | DISK="${BOOT%[0-9]*}"
24 | PART="$((${BOOT##*[^0-9]}+1))"
25 | ROOT="${DISK}${PART}"
26 | T=$(echo "$DISK" | sed 's/.*\(.\)$/\1/')
27 | [ "x$T" = "xp" ] && DISK="${DISK::-1}"
28 | parted -s -a opt $DISK "resizepart 2 100%"
29 |
30 | LOOP="$(losetup -n -O NAME | sort | sed -n -e "1p")"
31 | OFFS="$(losetup -n -O OFFSET ${LOOP})"
32 | LOOP="$(losetup -f)"
33 | losetup -o ${OFFS} ${LOOP} ${ROOT}
34 |
35 | T=$(mount | awk '/\/dev\/loop.*on \/overlay/ {print $5}')
36 | if [ "x$T" = "xext4" ]; then
37 | fsck.ext4 -y -f ${LOOP}
38 | resize2fs ${LOOP}
39 | fi
40 | if [ "x$T" = "xf2fs" ]; then
41 | fsck.f2fs -y -f ${LOOP}
42 | mount ${LOOP} /mnt
43 | umount ${LOOP}
44 | resize.f2fs ${LOOP}
45 | fi
46 | reboot
47 | fi
48 |
49 | exit 0
50 |
--------------------------------------------------------------------------------
/ekooneplstat/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=ekooneplstat
4 | PKG_VERSION:=20150706
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/ekooneplstat
10 | CATEGORY:=Administration
11 | SUBMENU:=eko.one.pl services
12 | SECTION:=admin
13 | TITLE:=eko.one.pl services - statistics
14 | PKGARCH:=all
15 | endef
16 |
17 | define Build/Compile
18 | endef
19 |
20 | define Package/ekooneplstat/install
21 | $(CP) ./files/* $(1)
22 | endef
23 |
24 | $(eval $(call BuildPackage,ekooneplstat))
25 |
--------------------------------------------------------------------------------
/ekooneplstat/files/sbin/stat-cron.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | [ -e /etc/crontabs/root ] || touch /etc/crontabs/root
4 |
5 | STAT=$(uci -q get system.@system[0].stat)
6 | if [ "x$STAT" != "x1" ]; then
7 | if grep -q "stat.sh" /etc/crontabs/root; then
8 | grep -v "/sbin/stat.sh" /etc/crontabs/root > /tmp/new_cron
9 | mv /tmp/new_cron /etc/crontabs/root
10 | /etc/init.d/cron restart
11 | fi
12 | exit 0
13 | fi
14 |
15 | if ! grep -q "stat.sh" /etc/crontabs/root; then
16 | M=$(tr -cd 0-9 > /etc/crontabs/root
19 | /etc/init.d/cron restart
20 | /sbin/stat.sh
21 | fi
22 |
23 | exit 0
24 |
--------------------------------------------------------------------------------
/ekooneplstat/files/sbin/stat.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # v 20150706
4 | #
5 | # T, token = unikalny identyfikator systemu na podstawie mac adresu
6 | # U, uptime = uptime systemu
7 | # M, model = model routera
8 | # W, wan proto = typ polaczenia na wan
9 | # V, version = numer wersji oprogramowania
10 |
11 | [ "x$1" = "xdebug" ] && DEBUG=echo || DEBUG=""
12 |
13 | grep -q br-lan /proc/net/dev && IF=br-lan || IF=eth0
14 | T=$(md5sum /sys/class/net/$IF/address | cut -f1 -d" ")
15 | if [ "x$1" = "xtoken" ]; then
16 | echo $T
17 | exit 0
18 | fi
19 | U=$(awk '{printf "%d", $1}' /proc/uptime)
20 | M=""
21 | [ -e /tmp/sysinfo/model ] && M=$(cat /tmp/sysinfo/model)
22 | [ -z "$M" ] && M=$(awk -F: '/Hardware/ {print $2}' /proc/cpuinfo)
23 | [ -z "$M" ] && M=$(awk -F: '/machine/ {print $2}' /proc/cpuinfo)
24 | [ -z "$M" ] && M=$(awk -F: '/system type/ {print $2}' /proc/cpuinfo)
25 | [ -z "$M" ] && M="Unknown"
26 | W=$(uci -q get network.wan.proto)
27 | if [ -e /rom/etc/openwrt_release ]; then
28 | . /rom/etc/openwrt_release
29 | V="$DISTRIB_DESCRIPTION $DISTRIB_REVISION"
30 | else
31 | if [ -e /etc/openwrt_release ]; then
32 | . /etc/openwrt_release
33 | V="$DISTRIB_DESCRIPTION $DISTRIB_REVISION"
34 | fi
35 | fi
36 | if [ -e /etc/config/gargoyle ]; then
37 | V="Gargoyle "$(uci -q get gargoyle.global.version)
38 | fi
39 | URL=$(echo "http://dl.eko.one.pl/cgi-bin/s.cgi?t=$T&u=$U&m=$M&w=$W&v=$V" | sed 's/ /%20/g')
40 | $DEBUG wget -q -O /dev/null "$URL"
41 | RET=$?
42 | if [ $RET -eq 0 ]; then
43 | if [ -e /usr/lib/gargoyle/current_time.sh ]; then
44 | /usr/lib/gargoyle/current_time.sh | awk -F\" '{print $2}' > /tmp/stat_time.txt
45 | else
46 | date > /tmp/stat_time.txt
47 | fi
48 | fi
49 |
50 | exit 0
51 |
--------------------------------------------------------------------------------
/ekooneplusbprofiles/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=ekooneplusbprofiles
4 | PKG_VERSION:=20230616
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 |
10 | define Package/ekooneplusbprofiles/Default
11 | CATEGORY:=Administration
12 | SUBMENU:=eko.one.pl services
13 | SECTION:=admin
14 | TITLE:=eko.one.pl profile -
15 | MAINTAINER:=Cezary Jackiewicz
16 | PKGARCH:=all
17 | DEPENDS:=+block-mount +kmod-usb-storage +kmod-usb-storage-uas \
18 | +kmod-fs-f2fs +mkf2fs +f2fsck \
19 | +kmod-fs-ext4 +e2fsprogs \
20 | +kmod-fs-vfat +kmod-nls-cp437 +kmod-nls-iso8859-1 \
21 | +kmod-fs-ntfs3 +kmod-fs-exfat
22 | endef
23 |
24 | define Package/ekooneplusbprofiles/description/Default
25 | eko.one.pl services
26 | endef
27 |
28 | # USB support, filesystems from template
29 | define Package/ekooneplusb
30 | $(call Package/ekooneplusbprofiles/Default)
31 | TITLE+= USB
32 | endef
33 |
34 | define Package/ekooneplusb/description
35 | $(call Package/ekooneplusbprofiles/description/Default)
36 | .
37 | This meta package contains only the dependencies required for
38 | USB functionality.
39 | endef
40 |
41 | define Build/Configure
42 | endef
43 |
44 | define Build/Compile
45 | endef
46 |
47 | define Package/ekooneplusb/install
48 | /bin/true
49 | endef
50 |
51 |
52 | $(eval $(call BuildPackage,ekooneplusb))
53 |
--------------------------------------------------------------------------------
/luci-app-ekooneplstat/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=luci-app-ekooneplstat
4 | PKG_VERSION:=20231220
5 | PKG_RELEASE:=1
6 |
7 | PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
8 | PKG_BUILD_DEPENDS:=luci-base
9 |
10 | include $(INCLUDE_DIR)/package.mk
11 |
12 | define Package/luci-app-ekooneplstat
13 | CATEGORY:=LuCI
14 | SUBMENU:=3. Applications
15 | TITLE:=LuCI Support for eko.one.pl services
16 | MAINTAINER:=Cezary Jackiewicz
17 | DEPENDS:=+ekooneplstat
18 | PKGARCH:=all
19 | endef
20 |
21 | define Build/Compile
22 | endef
23 |
24 | define Package/luci-app-ekooneplstat/install
25 | $(CP) ./files/* $(1)
26 | if [ -e $(STAGING_DIR_HOSTPKG)/bin/po2lmo ]; then \
27 | $(STAGING_DIR_HOSTPKG)/bin/po2lmo $(1)/usr/lib/lua/luci/i18n/ekooneplstat.po $(1)/usr/lib/lua/luci/i18n/ekooneplstat.pl.lmo; \
28 | fi
29 | rm $(1)/usr/lib/lua/luci/i18n/*.po
30 |
31 | $(FIND) $(1) -type f -name '*.js' | while read src; do \
32 | if $(STAGING_DIR_HOSTPKG)/bin/jsmin < "$$$$src" > "$$$$src.o"; \
33 | then mv "$$$$src.o" "$$$$src"; fi; \
34 | done
35 | endef
36 |
37 | define Package/luci-app-ekooneplstat/postinst
38 | [ -n "$${IPKG_INSTROOT}" ] || {
39 | rm -f /tmp/luci-indexcache
40 | rm -rf /tmp/luci-modulecache/
41 | killall -HUP rpcd 2>/dev/null
42 | exit 0
43 | }
44 | endef
45 |
46 | $(eval $(call BuildPackage,luci-app-ekooneplstat))
47 |
--------------------------------------------------------------------------------
/luci-app-ekooneplstat/files/usr/lib/lua/luci/i18n/ekooneplstat.po:
--------------------------------------------------------------------------------
1 | msgid ""
2 | msgstr ""
3 | "Project-Id-Version: LuCI\n"
4 | "Report-Msgid-Bugs-To: \n"
5 | "POT-Creation-Date: 2015-09-25 22:44+0200\n"
6 | "PO-Revision-Date: 2023-12-18 21:47+0100\n"
7 | "Last-Translator: Cezary Jackiewicz \n"
8 | "Language-Team: Polish\n"
9 | "Language: pl\n"
10 | "MIME-Version: 1.0\n"
11 | "Content-Type: text/plain; charset=UTF-8\n"
12 | "Content-Transfer-Encoding: 8bit\n"
13 | "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
14 | "|| n%100>=20) ? 1 : 2);\n"
15 | "X-Generator: Pootle 2.0.6\n"
16 |
17 | msgid "Last update"
18 | msgstr "Ostatnia aktualizacja"
19 |
20 | msgid "Send statistical information"
21 | msgstr "Wysyłaj informacje statystyczne"
22 |
23 | msgid "Settings"
24 | msgstr "Ustawienia"
25 |
26 | msgid "Statistics"
27 | msgstr "Statystyka"
28 |
29 | msgid "eko.one.pl - Statistics"
30 | msgstr "eko.one.pl - Statystyka"
31 |
32 | msgid "See all statistics"
33 | msgstr "Zobacz wszystkie statystyki"
34 |
35 | msgid "This router statistics"
36 | msgstr "Statystyki tego routera"
37 |
38 | msgid ""
39 | "Sending information about the router for statistical purposes. More "
40 | "information on the %seko.one.pl forum%s."
41 | msgstr ""
42 | "Przesyłanie informacji o routerze w celach statystycznych. Więcej "
43 | "informacji na %sforum eko.one.pl%s."
44 |
--------------------------------------------------------------------------------
/luci-app-ekooneplstat/files/usr/share/luci/menu.d/luci-app-ekooneplstat.json:
--------------------------------------------------------------------------------
1 | {
2 | "admin/services/ekooneplstat": {
3 | "title": "eko.one.pl - Statistics",
4 | "order": 1,
5 | "action": {
6 | "type": "view",
7 | "path": "ekooneplstat"
8 | },
9 | "depends": {
10 | "acl": [ "luci-app-ekooneplstat" ],
11 | "uci": { "system": { "@system": true } }
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/luci-app-ekooneplstat/files/usr/share/rpcd/acl.d/luci-app-ekooneplstat.json:
--------------------------------------------------------------------------------
1 | {
2 | "luci-app-ekooneplstat": {
3 | "description": "Grant UCI and file access for luci-app-ekooneplstat",
4 | "read": {
5 | "file": {
6 | "/tmp/stat_time.txt": [
7 | "read"
8 | ],
9 | "/sbin/stat.sh *": [
10 | "exec"
11 | ],
12 | "/sbin/stat-cron.sh": [
13 | "exec"
14 | ]
15 | },
16 | "uci": [
17 | "system"
18 | ]
19 | },
20 | "write": {
21 | "uci": [
22 | "system"
23 | ]
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/luci-proto-wwan/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=luci-proto-wwan
4 | PKG_VERSION:=20151207
5 | PKG_RELEASE:=1
6 |
7 | PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
8 | PKG_BUILD_DEPENDS:=luci-base
9 |
10 | include $(INCLUDE_DIR)/package.mk
11 |
12 | define Package/luci-proto-wwan
13 | CATEGORY:=LuCI
14 | SUBMENU:=5. Protocols
15 | TITLE:=Support for WWAN/QMI/NCM
16 | MAINTAINER:=Cezary Jackiewicz
17 | PKGARCH:=all
18 | endef
19 |
20 | define Build/Compile
21 | endef
22 |
23 | define Package/luci-proto-wwan/install
24 | $(CP) ./files/* $(1)
25 | $(FIND) $(1) -type f -name '*.lua' | while read src; do \
26 | if $(STAGING_DIR_HOST)/bin/lua $(STAGING_DIR_HOST)/bin/LuaSrcDiet \
27 | --noopt-binequiv -o "$$$$src.o" "$$$$src"; \
28 | then mv "$$$$src.o" "$$$$src"; fi; \
29 | done
30 | endef
31 |
32 | define Package/luci-proto-wwan/postinst
33 | #!/bin/sh
34 | [ -n "$${IPKG_INSTROOT}" ] || {
35 | rm -f /var/luci-indexcache
36 | }
37 | exit 0
38 | endef
39 |
40 | $(eval $(call BuildPackage,luci-proto-wwan))
41 |
--------------------------------------------------------------------------------
/megatools/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=megatools
4 | PKG_VERSION:=1.9.98
5 | PKG_RELEASE:=1
6 | PKG_SOURCE=$(PKG_NAME)-$(PKG_RELEASE).tar.gz
7 | PKG_SOURCE_URL=https://megatools.megous.com/builds/
8 | PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_RELEASE)
9 | PKG_INSTALL:=1
10 |
11 | include $(INCLUDE_DIR)/package.mk
12 |
13 | CONFIGURE_ARGS += --disable-docs
14 |
15 | define Package/megatools
16 | SECTION:=utils
17 | CATEGORY:=Utilities
18 | TITLE:=megatools
19 | DEPENDS:=+libopenssl +libcurl +libfuse +glib2 +ca-certificates
20 | endef
21 |
22 | define Package/megatools/install
23 | $(INSTALL_DIR) $(1)/usr/bin
24 | $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mega* $(1)/usr/bin/
25 | endef
26 |
27 | $(eval $(call BuildPackage,megatools))
28 |
--------------------------------------------------------------------------------
/modemband/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=modemband
4 | PKG_VERSION:=20250409
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/modemband
10 | SECTION:=net
11 | CATEGORY:=Network
12 | TITLE:=Setting LTE/5G bands for selected modems
13 | MAINTAINER:=Cezary Jackiewicz
14 | PKGARCH:=all
15 | DEPENDS:=+sms-tool
16 | endef
17 |
18 | define Build/Compile
19 | endef
20 |
21 | define Package/modemband/install
22 | $(CP) ./files/* $(1)
23 | endef
24 |
25 | $(eval $(call BuildPackage,modemband))
26 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/03f00857:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB1
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 17 18 19 20 21 25 26 28 29 30 38 39 40 41 66"
3 |
4 | getinfo() {
5 | echo "Qualcomm Snapdragon(TM) X12 LTE-A"
6 | }
7 |
8 | . $RES/_foxconn_common2
9 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/03f00a57:
--------------------------------------------------------------------------------
1 | 03f00857
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/03f0581d:
--------------------------------------------------------------------------------
1 | 12d1156c
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/03f0a31d:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/05c69215:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 3 5 7 8 20"
3 |
4 | getinfo() {
5 | echo "Quectel EC20"
6 | }
7 |
8 | # +QCFG: "band",0xdf,0x800d5,0x3f
9 |
10 | . $RES/_quectel_common
11 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/05c69625:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 3 5 8 38 39 40 41"
3 |
4 | getinfo() {
5 | echo "Yuge CLM920 NC_5"
6 | }
7 |
8 | getsupportedbands() {
9 | echo "$_DEFAULT_LTE_BANDS"
10 | }
11 |
12 | getbands() {
13 | O=$(sms_tool -d $_DEVICE at "as+bandcfg?")
14 | HEXHI=$(echo "$O" | awk -F[,] '/^\+BANDCFG:3,/{print $2}' | xargs)
15 | HEXLO=$(echo "$O" | awk -F[,] '/^\+BANDCFG:3,/{print $3}' | xargs)
16 | hextobands $(printf "0x%x%08x" 0x${HEXHI:-0} 0x${HEXLO:-0})
17 | }
18 |
19 | setbands() {
20 | BANDS="$1"
21 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
22 |
23 | HEX=$(bandstohex "$BANDS")
24 | LEN=${#HEX}
25 | if [ $LEN -gt 8 ]; then
26 | CNT=$((LEN - 8))
27 | HEXHI=${HEX:0:CNT}
28 | HEXLO=${HEX:CNT}
29 | else
30 | HEXLO=$HEX
31 | HEXHI=0
32 | fi
33 | HEXHI=$(printf "%X" 0x$HEXHI)
34 | HEXLO=$(printf "%X" 0x$HEXLO)
35 | [ "$HEX" != "0" ] && sms_tool -d $_DEVICE at "at+bandcfg=$HEXHI,$HEXLO,3"
36 | }
37 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/0e8d7126:
--------------------------------------------------------------------------------
1 | # +GTUSBMODE: 40
2 | _DEVICE=/dev/ttyUSB2
3 |
4 | . $RES/_fibocom_fm350_common
5 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/0e8d7127:
--------------------------------------------------------------------------------
1 | # +GTUSBMODE: 41
2 | _DEVICE=/dev/ttyUSB4
3 |
4 | . $RES/_fibocom_fm350_common
5 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/11999071:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 |
3 | getinfo() {
4 | echo "Sierra Wireless EM7455/MC7455/DW5811e"
5 | }
6 |
7 | getsupportedbands() {
8 | sms_tool -d $_DEVICE at 'AT!ENTERCND="A710"' >/dev/null 2>&1
9 | O=$(sms_tool -d $_DEVICE at 'AT!BAND=?')
10 | HEX=$(echo "$O" | awk '/^00, All bands/{printf "0x%s\n", $5}')
11 | [ "$HEX" = "0x" ] || hextobands "$HEX"
12 | }
13 |
14 | getbands() {
15 | sms_tool -d $_DEVICE at 'AT!ENTERCND="A710"' >/dev/null 2>&1
16 | O=$(sms_tool -d $_DEVICE at 'AT!BAND?')
17 | HEX=$(echo "$O" | awk -F, '/^[0-9a-fA-F][0-9a-fA-F],/{print $3}' | awk '{printf "0x%s\n", $2}')
18 | [ "$HEX" = "0x" ] || hextobands "$HEX"
19 | }
20 |
21 | setbands() {
22 | BANDS="$1"
23 |
24 | if [ "$BANDS" = "default" ]; then
25 | sms_tool -d $_DEVICE at 'AT!ENTERCND="A710"' >/dev/null 2>&1
26 | sms_tool -d $_DEVICE at 'AT!BAND=00' >/dev/null 2>&1
27 | else
28 | HEXL=$(bandstohex "$BANDS")
29 | if [ "$HEXL" != "0" ]; then
30 | sms_tool -d $_DEVICE at 'AT!ENTERCND="A710"' >/dev/null 2>&1
31 | O=$(sms_tool -d $_DEVICE at 'AT!BAND?')
32 | HEXGW=$(echo "$O" | awk -F, '/^[0-9a-fA-F][0-9a-fA-F],/{print $3}' | awk '{print $1}')
33 | sms_tool -d $_DEVICE at 'AT!BAND=10,"Custom bands",'$HEXGW','$HEXL
34 | sms_tool -d $_DEVICE at 'AT!BAND=10'
35 | sms_tool -d $_DEVICE at 'AT!RESET'
36 | fi
37 | fi
38 | }
39 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/11999079:
--------------------------------------------------------------------------------
1 | 11999071
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/11999091:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 |
3 | getinfo() {
4 | echo "Sierra Wireless EM7465"
5 | }
6 |
7 | getsupportedbands() {
8 | sms_tool -d $_DEVICE at 'AT!ENTERCND="A710"' >/dev/null 2>&1
9 | O=$(sms_tool -d $_DEVICE at 'AT!BAND=?')
10 | HEX=$(echo "$O" | awk '/^00, All bands/{printf "0x%s%s\n", $6, $5}')
11 | [ "$HEX" = "0x" ] || hextobands "$HEX"
12 | }
13 |
14 | getbands() {
15 | sms_tool -d $_DEVICE at 'AT!ENTERCND="A710"' >/dev/null 2>&1
16 | O=$(sms_tool -d $_DEVICE at 'AT!BAND?')
17 | HEX=$(echo "$O" | awk -F, '/^[0-9a-fA-F][0-9a-fA-F],/{print $3}' | awk '{printf "0x%s%s\n", $3, $2}')
18 | [ "$HEX" = "0x" ] || hextobands "$HEX"
19 | }
20 |
21 | setbands() {
22 | BANDS="$1"
23 |
24 | if [ "$BANDS" = "default" ]; then
25 | sms_tool -d $_DEVICE at 'AT!ENTERCND="A710"' >/dev/null 2>&1
26 | sms_tool -d $_DEVICE at 'AT!BAND=00' >/dev/null 2>&1
27 | else
28 | HEX=$(bandstohex "$BANDS")
29 | if [ "$HEX" != "0" ]; then
30 | sms_tool -d $_DEVICE at 'AT!ENTERCND="A710"' >/dev/null 2>&1
31 | O=$(sms_tool -d $_DEVICE at 'AT!BAND?')
32 | HEXGW=$(echo "$O" | awk -F, '/^[0-9a-fA-F][0-9a-fA-F],/{print $3}' | awk '{print $1}')
33 | LEN=${#HEX}
34 | if [ $LEN -gt 16 ]; then
35 | CNT=$((LEN - 16))
36 | HEXL2=${HEX:0:CNT}
37 | HEXL1=${HEX:CNT}
38 | else
39 | HEXL1=$HEX
40 | HEXL2=0
41 | fi
42 | sms_tool -d $_DEVICE at 'AT!BAND=10,"Custom bands",'$HEXGW','$HEXL1','$HEXL2
43 | sms_tool -d $_DEVICE at 'AT!BAND=10'
44 | sms_tool -d $_DEVICE at 'AT!RESET'
45 | fi
46 | fi
47 | }
48 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/12d11506:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB1
2 |
3 | getinfo() {
4 | O=$(sms_tool -d $_DEVICE at "at+cgmi")
5 | VENDOR=$(echo "$O" | awk '/^[a-zA-Z0-9]/ && !/at\+cgmi/{print $0}' | xargs)
6 | O=$(sms_tool -d $_DEVICE at "at+cgmm")
7 | PRODUCT=$(echo "$O" | awk '/^[a-zA-Z0-9]/ && !/at\+cgmm/{print $0}' | xargs)
8 | echo "$(echo ${VENDOR:0:1} | tr '[a-z]' '[A-Z]')${VENDOR:1} $PRODUCT"
9 | }
10 |
11 | getsupportedbands() {
12 | O=$(sms_tool -d $_DEVICE at "at+cgmm")
13 | _NAME=$(echo "$O" | awk '/^[a-zA-Z0-9]/ && !/at\+cgmm/{print tolower($0)}' | xargs)
14 | case "$_NAME" in
15 | "me906e"* | \
16 | "me909u-521")
17 | echo "1 2 3 5 7 8 20"
18 | ;;
19 | "me906s"*)
20 | echo "1 2 3 5 7 8 20 28"
21 | ;;
22 | "me909s-120")
23 | echo "1 2 3 4 5 7 8 20"
24 | ;;
25 | "me909s-821")
26 | echo "1 3 8 38 39 40 41"
27 | ;;
28 | "me909s-821a")
29 | echo "1 3 5 8 38 39 40 41"
30 | ;;
31 | *)
32 | echo "1 3 7 8 20"
33 | ;;
34 | esac
35 | }
36 |
37 | getbands() {
38 | O=$(sms_tool -d $_DEVICE at "at^syscfgex?")
39 | HEX="0x"$(echo "$O" | awk -F[:,] '/^\^SYSCFGEX:/{print $6}' | xargs)
40 | if [ "$HEX" = "0x7FFFFFFFFFFFFFFF" ]; then
41 | getsupportedbands
42 | else
43 | [ "$HEX" = "0x" ] || hextobands "$HEX"
44 | fi
45 | }
46 |
47 | setbands() {
48 | BANDS="$1"
49 |
50 | if [ "$BANDS" = "default" ]; then
51 | HEX="7FFFFFFFFFFFFFFF"
52 | else
53 | HEX=$(bandstohex "$BANDS")
54 | fi
55 | if [ "$HEX" != "0" ]; then
56 | O=$(sms_tool -d $_DEVICE at "at^syscfgex?")
57 | MODE=$(echo "$O" | awk -F[:,] '{print $2}' | xargs)
58 | sms_tool -d $_DEVICE at "at^syscfgex=\"${MODE:-030201}\",3FFFFFFF,2,4,$HEX,,"
59 | fi
60 | }
61 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/12d1155e:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 |
3 | getinfo() {
4 | echo "Huawei E3372h-320"
5 | }
6 |
7 | getsupportedbands() {
8 | echo "1 3 7 8 20 28"
9 | }
10 |
11 | getbands() {
12 | O=$(sms_tool -d $_DEVICE at "at^syscfgex?")
13 | HEX="0x"$(echo "$O" | awk -F[:,] '/^\^SYSCFGEX:/{print $6}' | xargs)
14 | if [ "$HEX" = "0x7FFFFFFFFFFFFFFF" ]; then
15 | getsupportedbands
16 | else
17 | [ "$HEX" = "0x" ] || hextobands "$HEX"
18 | fi
19 | }
20 |
21 | setbands() {
22 | BANDS="$1"
23 |
24 | if [ "$BANDS" = "default" ]; then
25 | HEX="7FFFFFFFFFFFFFFF"
26 | else
27 | HEX=$(bandstohex "$BANDS")
28 | fi
29 | if [ "$HEX" != "0" ]; then
30 | O=$(sms_tool -d $_DEVICE at "at^syscfgex?")
31 | MODE=$(echo "$O" | awk -F[:,] '{print $2}' | xargs)
32 | sms_tool -d $_DEVICE at "at^syscfgex=\"${MODE:-030201}\",3FFFFFFF,2,4,$HEX,,"
33 | fi
34 | }
35 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/12d1156c:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/12d11573:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/12d115bb:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/12d115c1:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/12d115c3:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/12d11f1a:
--------------------------------------------------------------------------------
1 | 12d11506
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/19d20016:
--------------------------------------------------------------------------------
1 | 19d21432
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/19d21432:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB1
2 | _DEFAULT_LTE_BANDS="1 3 7 8 20 28"
3 | _NAME="ZTE MF286"
4 |
5 | case $(cat /tmp/sysinfo/board_name) in
6 | "zte,mf286a")
7 | _DEFAULT_LTE_BANDS="1 2 3 5 7 8 20 38"
8 | _NAME="ZTE MF286A"
9 | ;;
10 | "zte,mf289f")
11 | _DEFAULT_LTE_BANDS="1 3 7 8 20 28 32 38"
12 | _NAME="ZTE MF289F"
13 | ;;
14 | esac
15 |
16 | getinfo() {
17 | echo "$_NAME"
18 | }
19 |
20 | . $RES/_zte_common
21 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/19d21485:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB1
2 | _DEFAULT_LTE_BANDS="1 3 7 8 20 28 32 38"
3 | _NAME="ZTE MF286D"
4 |
5 | case $(cat /tmp/sysinfo/board_name) in
6 | "zte,mf289f")
7 | _NAME="ZTE MF289F"
8 | ;;
9 | esac
10 |
11 | getinfo() {
12 | echo "$_NAME"
13 | }
14 |
15 | . $RES/_zte_common
16 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/19d21489:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyACM0
2 | _DEFAULT_LTE_BANDS="1 3 7 8 20 38"
3 |
4 | getinfo() {
5 | echo "ZTE MF286R"
6 | }
7 |
8 | . $RES/_zte_common
9 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/1bc71040:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 17 20 25 26 28 29 30 38 40 41"
3 |
4 | getinfo() {
5 | echo "Telit LM940"
6 | }
7 |
8 | getsupportedbands() {
9 | echo "$_DEFAULT_LTE_BANDS"
10 | }
11 |
12 | getbands() {
13 | # #BND: 0,11,1A03B0918DF
14 |
15 | O=$(sms_tool -d $_DEVICE at "at#bnd?")
16 | HEX="0x"$(echo "$O" | awk -F[:,] '{print $4}' | xargs)
17 | hextobands "$HEX"
18 | }
19 |
20 | setbands() {
21 | BANDS="$1"
22 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
23 |
24 | HEX=$(bandstohex "$BANDS")
25 | if [ "$HEX" != "0" ]; then
26 | O=$(sms_tool -d $_DEVICE at "at#bnd?")
27 | GSM=$(echo "$O" | awk -F[:,] '{print $2}' | xargs)
28 | UMTS=$(echo "$O" | awk -F[:,] '{print $3}' | xargs)
29 | sms_tool -d $_DEVICE at "at#bnd=${GSM},${UMTS},${HEX}"
30 | fi
31 | }
32 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/1bc71900:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB1
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 17 18 19 20 21 25 26 28 29 30 38 39 40 41 66"
3 |
4 | getinfo() {
5 | echo "Telit LN940 Mobile Broadband"
6 | }
7 |
8 | . $RES/_foxconn_common2
9 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/1bc71901:
--------------------------------------------------------------------------------
1 | 1bc71900
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/1bc71910:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB1
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 38 39 40 41 42 43 46 66"
3 |
4 | getinfo() {
5 | echo "Telit LN960 Mobile Broadband"
6 | }
7 |
8 | . $RES/_foxconn_common1
9 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/1e2d00b3:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB0
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 34 38 39 40 41 42 46 48 66 71"
3 | _DEFAULT_5GNSA_BANDS="1 2 3 5 7 8 12 20 25 28 38 41 66 71 77 78 79"
4 |
5 | getinfo() {
6 | echo "Thales/Cinterion MV31-W"
7 | }
8 |
9 | getsupportedbands() {
10 | echo "$_DEFAULT_LTE_BANDS"
11 | }
12 |
13 | getbands() {
14 | O=$(sms_tool -d $_DEVICE at "AT^BAND_PREF?")
15 | echo "$O" | awk -F: '/LTE,Enable.*Bands.*:/{gsub(",", " ");print $2}' | xargs
16 | }
17 |
18 | setbands() {
19 | BANDS="$1"
20 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
21 |
22 | T=""
23 | for BAND in $BANDS; do
24 | case $BAND in
25 | ''|*[!0-9]*) continue ;;
26 | esac
27 | [ -n "$T" ] && T="${T},"
28 | T="${T}${BAND}"
29 | done
30 |
31 | [ -n "$T" ] && sms_tool -d $_DEVICE at "AT^BAND_PREF=LTE,2,$T"
32 | }
33 |
34 | getsupportedbands5gnsa() {
35 | echo "$_DEFAULT_5GNSA_BANDS"
36 | }
37 |
38 | getbands5gnsa() {
39 | O=$(sms_tool -d $_DEVICE at "AT^BAND_PREF?")
40 | echo "$O" | awk -F: '/NR5G,Enable.*Bands.*:/{gsub(",", " ");print $2}' | xargs
41 | }
42 |
43 | setbands5gnsa() {
44 | BANDS="$1"
45 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_5GNSA_BANDS"
46 |
47 | T=""
48 | for BAND in $BANDS; do
49 | case $BAND in
50 | ''|*[!0-9]*) continue ;;
51 | esac
52 | [ -n "$T" ] && T="${T},"
53 | T="${T}${BAND}"
54 | done
55 |
56 | [ -n "$T" ] && sms_tool -d $_DEVICE at "AT^BAND_PREF=NR5G,2,$T"
57 | }
58 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/20202033:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 5 7 8 12 17 20 38 40"
3 |
4 | getinfo() {
5 | echo "BroadMobi BM806U"
6 | }
7 |
8 | getsupportedbands() {
9 | echo "$_DEFAULT_LTE_BANDS"
10 | }
11 |
12 | getbands() {
13 | O=$(sms_tool -d $_DEVICE at "at+bmbandpref?")
14 | HEX=$(echo "$O" | awk -F[:,] '{print $3}' | xargs)
15 | hextobands "$HEX"
16 | }
17 |
18 | setbands() {
19 | BANDS="$1"
20 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
21 |
22 | HEX=$(bandstohex "$BANDS")
23 | [ "$HEX" != "0" ] && sms_tool -d $_DEVICE at "at+bmbandpref=,$HEX,"
24 | }
25 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0125:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 3 5 7 8 20 38 40 41"
3 |
4 | getinfo() {
5 | echo "Quectel EC25"
6 | }
7 |
8 | . $RES/_quectel_common
9 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0306EG06-E:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 3 5 7 8 20 28 32 38 40 41"
3 |
4 | getinfo() {
5 | echo "Quectel EG06-E"
6 | }
7 |
8 | # +QCFG: "band",0x8df,0x1a0880800d5,0x0
9 |
10 | . $RES/_quectel_common
11 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0306EP06-E:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 3 5 7 8 20 28 38 40 41"
3 |
4 | getinfo() {
5 | echo "Quectel EP06-E"
6 | }
7 |
8 | # +QCFG: "band",0x8d0,0x1a0080800d5,0x1
9 |
10 | . $RES/_quectel_common
11 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0512EG12-EA:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 3 5 7 8 20 28 38 40 41"
3 |
4 | getinfo() {
5 | echo "Quectel EG12-EA"
6 | }
7 |
8 | . $RES/_quectel_common
9 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0512EG18-EA:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 3 5 7 8 20 28 38 40 41"
3 |
4 | getinfo() {
5 | echo "Quectel EG18-EA"
6 | }
7 |
8 | . $RES/_quectel_common
9 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0512EM12-G:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 9 12 13 14 17 18 19 20 21 25 26 28 29 30 32 38 39 40 41 66"
3 |
4 | getinfo() {
5 | echo "Quectel EM12-G"
6 | }
7 |
8 | getsupportedbands() {
9 | echo "$_DEFAULT_LTE_BANDS"
10 | }
11 |
12 | getbands() {
13 | # +QCFG: "band",0x5af0,0x42000000003300185a,0x1
14 |
15 | O=$(sms_tool -d $_DEVICE at "AT+QCFG=\"band\"")
16 | HEX=$(echo "$O" | awk -F[:,] '{print $4}' | xargs)
17 | hextobands "$HEX"
18 | }
19 |
20 | setbands() {
21 | BANDS="$1"
22 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
23 |
24 | HEX=$(bandstohex "$BANDS")
25 | [ "$HEX" != "0" ] && sms_tool -d $_DEVICE at "AT+QCFG=\"band\",0,$HEX,1"
26 | }
27 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0512EM12G-MSFT:
--------------------------------------------------------------------------------
1 | 2c7c0512EM12-G
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0620:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 18 19 20 25 26 28 29 30 32 38 39 40 41 42 46 48 66"
3 |
4 | getinfo() {
5 | echo "Quectel EM160R-GL"
6 | }
7 |
8 | getsupportedbands() {
9 | echo "$_DEFAULT_LTE_BANDS"
10 | }
11 |
12 | getbands() {
13 | # +QNWPREFCFG: "lte_band",1:3:7:8:20:28:38
14 |
15 | O=$(sms_tool -d $_DEVICE at "at+qnwprefcfg=\"lte_band\"?")
16 | echo "$O" | awk -F, '/^\+QNWPREFCFG:/{gsub(":"," ");print $2}'
17 | }
18 |
19 | setbands() {
20 | BANDS="$1"
21 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
22 |
23 | T=""
24 | for BAND in $BANDS; do
25 | case $BAND in
26 | ''|*[!0-9]*) continue ;;
27 | esac
28 | [ -n "$T" ] && T="${T}:"
29 | T="${T}${BAND}"
30 | done
31 |
32 | [ -n "$T" ] && sms_tool -d $_DEVICE at "at+qnwprefcfg=\"lte_band\",$T"
33 | }
34 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0800RG500Q-EA:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 3 5 7 8 18 19 20 26 28 32 34 38 39 40 41 42 43"
3 | _DEFAULT_5GNSA_BANDS="1 3 5 7 8 20 28 38 40 41 77 78 79"
4 | _DEFAULT_5GSA_BANDS="1 3 5 7 8 20 28 38 40 41 77 78 79"
5 |
6 | getinfo() {
7 | echo "Quectel RG500Q-EA"
8 | }
9 |
10 | # +QNWPREFCFG: "lte_band",1:3:7:8:20:28:38
11 |
12 | . $RES/_quectel_common2
13 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0800RG502Q-EA:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 34 38 39 40 41 42 43 46 48 66 71"
3 | _DEFAULT_5GNSA_BANDS="1 3 5 7 8 20 28 38 40 41 77 78 79"
4 | _DEFAULT_5GSA_BANDS="1 3 5 7 8 20 28 38 40 41 77 78 79"
5 |
6 | getinfo() {
7 | echo "Quectel RG502Q-EA"
8 | }
9 |
10 | # +QNWPREFCFG: "lte_band",1:3:7:8:20:28:38
11 |
12 | . $RES/_quectel_common2
13 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0800RM500Q-GL:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 34 38 39 40 41 42 43 46 48 66 71"
3 | _DEFAULT_5GNSA_BANDS="1 2 3 5 7 8 12 20 25 28 38 40 41 48 66 71 77 78 79"
4 | _DEFAULT_5GSA_BANDS="1 2 3 5 7 8 12 20 25 28 38 40 41 48 66 71 77 78 79"
5 |
6 | getinfo() {
7 | echo "Quectel RM500Q-GL"
8 | }
9 |
10 | # +QNWPREFCFG: "lte_band",1:3:7:8:20:28:38
11 |
12 | . $RES/_quectel_common2
13 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0800RM502Q-AE:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 18 19 20 25 26 28 29 30 32 34 38 39 40 41 42 43 46 48 66 71"
3 | _DEFAULT_5GNSA_BANDS="1 2 3 5 7 8 12 20 25 28 38 40 41 48 66 71 77 78 79"
4 | _DEFAULT_5GSA_BANDS="1 2 3 5 7 8 12 20 25 28 38 40 41 48 66 71 77 78 79"
5 |
6 | getinfo() {
7 | echo "Quectel RM502Q-AE"
8 | }
9 |
10 | # +QNWPREFCFG: "lte_band",1:3:7:8:20:28:38
11 |
12 | . $RES/_quectel_common2
13 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0800RM502Q-GL:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 34 38/39 40 41 42 43 48 66 71"
3 | _DEFAULT_5GNSA_BANDS="38 41 77 78"
4 | _DEFAULT_5GSA_BANDS="1 2 3 5 7 8 12 20 25 28 38 40 41 48 66 71 77 78"
5 |
6 | getinfo() {
7 | echo "Quectel RM502Q-GL"
8 | }
9 |
10 | # +QNWPREFCFG: "lte_band",1:3:7:8:20:28:38
11 |
12 | . $RES/_quectel_common2
13 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0800RM505Q-AE:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 8 12 13 14 17 18 19 20 25 26 28 29 30 32 34 39 40 41 42 43 46 48 66 71"
3 | _DEFAULT_5GNSA_BANDS="1 2 3 5 7 8 12 14 20 25 28 38 40 41 48 66 71 77 78 79"
4 | _DEFAULT_5GSA_BANDS="1 2 3 5 7 8 12 14 20 25 28 38 40 41 48 66 71 77 78 79"
5 |
6 | getinfo() {
7 | echo "Quectel RM505Q-AE"
8 | }
9 |
10 | # +QNWPREFCFG: "lte_band",1:3:7:8:20:28:38
11 |
12 | . $RES/_quectel_common2
13 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0801:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 34 38 39 40 41 42 43 46 48 66 71"
3 | _DEFAULT_5GNSA_BANDS="1 2 3 5 7 8 12 13 14 18 20 25 26 28 29 30 38 40 41 48 66 70 71 75 76 77 78 79"
4 | _DEFAULT_5GSA_BANDS="1 2 3 5 7 8 12 13 14 18 20 25 26 28 29 30 38 40 41 48 66 70 71 75 76 77 78 79"
5 |
6 | getinfo() {
7 | echo "Quectel RM520N-GL"
8 | }
9 |
10 | # +QNWPREFCFG: "lte_band",1:3:7:8:20:28:38
11 |
12 | . $RES/_quectel_common2
13 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c0900:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 2 3 5 8 34 38 39 40 41"
3 | _DEFAULT_5GNSA_BANDS="41 78 79"
4 | _DEFAULT_5GSA_BANDS="1 2 3 5 8 28 41 77 78 79"
5 |
6 | getinfo() {
7 | echo "Quectel RM500U-CNV"
8 | }
9 |
10 | # +QNWPREFCFG: "lte_band",1:3:7:8:20:28:38
11 |
12 | . $RES/_quectel_common2
13 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2c7c6026:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB2
2 | _DEFAULT_LTE_BANDS="1 3 5 8 34 38 39 40 41"
3 |
4 | getinfo() {
5 | echo "Quectel EC200T-CN"
6 | }
7 |
8 | # +QNWPREFCFG: "lte_band",1:3:7:8:20:28:38
9 |
10 | getsupportedbands() {
11 | echo "${_DEFAULT_LTE_BANDS:-Unsupported}"
12 | }
13 |
14 | getbands() {
15 | O=$(sms_tool -d $_DEVICE at "at+qcfg=\"band\"")
16 | HEX=$(echo "$O" | awk -F[:,] '{print $4}' | xargs)
17 | hextobands "$HEX"
18 | }
19 |
20 | setbands() {
21 | BANDS="$1"
22 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
23 |
24 | HEX=$(bandstohex "$BANDS")
25 | [ "$HEX" != "0" ] && sms_tool -d $_DEVICE at "at+qcfg=\"band\",0,$HEX"
26 | }
27 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/2cb70007:
--------------------------------------------------------------------------------
1 | 8087095a
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/413c81b6:
--------------------------------------------------------------------------------
1 | 11999071
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/413c81d7:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyUSB1
2 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 38 39 40 41 42 43 46 66"
3 |
4 | getinfo() {
5 | echo "Dell DW5821e Snapdragon X20 LTE"
6 | }
7 |
8 | . $RES/_foxconn_common1
9 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/8087095a:
--------------------------------------------------------------------------------
1 | _DEVICE=/dev/ttyACM2
2 |
3 | getinfo() {
4 | O=$(sms_tool -d $_DEVICE at "at+gmm")
5 | _NAME="Fibocom $(echo "$O" | awk -F, '{print $2}')"
6 | echo "$_NAME"
7 | }
8 |
9 | getsupportedbands() {
10 | O=$(sms_tool -d $_DEVICE at "at+gmm")
11 | if echo "$O" | grep -q "L850"; then
12 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 11 12 13 17 18 19 20 21 26 28 29 30 38 39 40 41 66"
13 | fi
14 | if echo "$O" | grep -q "L860"; then
15 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 38 39 40 41 42 46 66"
16 | fi
17 | if echo "$O" | grep -q "L860-GL-16"; then
18 | _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 34 38 39 40 41 42 43 46 48 66 71"
19 | fi
20 | echo "$_DEFAULT_LTE_BANDS"
21 | }
22 |
23 | getbands() {
24 | # +XACT: 4,2,1,1,2,4,5,8,101,102,103,104,105,107,108,112,113,114,117,118,119,120,125,126,128,129,130,132,138,139,140,141,142,146,166
25 |
26 | O=$(sms_tool -d $_DEVICE at "at+xact?")
27 | BANDS=$(echo "$O" | awk -F: '/^\+XACT:/{gsub(","," ");print $2}')
28 | for BAND in $BANDS; do
29 | if [ $BAND -gt 100 ] && [ $BAND -lt 200 ]; then
30 | echo -n "$((BAND - 100)) "
31 | fi
32 | done
33 | echo ""
34 | }
35 |
36 | setbands() {
37 | BANDS="$1"
38 |
39 | T=""
40 | if [ "$BANDS" = "default" ]; then
41 | T="0"
42 | else
43 | for BAND in $BANDS; do
44 | case $BAND in
45 | ''|*[!0-9]*) continue ;;
46 | esac
47 | [ -n "$T" ] && T="${T},"
48 | T="${T}$((BAND + 100))"
49 | done
50 | fi
51 |
52 | if [ -n "$T" ]; then
53 | O=$(sms_tool -d $_DEVICE at "at+xact?")
54 | MODE=$(echo "$O" | awk -F[:,] '{print $2}' | xargs)
55 | sms_tool -d $_DEVICE at "at+xact=$MODE,,,$T"
56 | fi
57 | }
58 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/_foxconn_common1:
--------------------------------------------------------------------------------
1 | getsupportedbands() {
2 | echo "$_DEFAULT_LTE_BANDS"
3 | }
4 |
5 | getbands() {
6 | # ^SLBAND: WCDMA,Enabled,1,2,4,5,6,8,9,19
7 | # ^SLBAND: LTE,Enabled,1,2,3,4,5,7,8,12,13,14,17,18,19,20,25,26,28,29,30,32,38,39,40,41,42,43,46,66
8 |
9 | O=$(sms_tool -d $_DEVICE at "at^slband?")
10 | echo "$O" | awk -F: '/LTE/{gsub("LTE,Enabled,","");gsub(","," ");print $2}' | xargs
11 | }
12 |
13 | setbands() {
14 | BANDS="$1"
15 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
16 |
17 | T=""
18 | for BAND in $BANDS; do
19 | case $BAND in
20 | ''|*[!0-9]*) continue ;;
21 | esac
22 | [ -n "$T" ] && T="${T},"
23 | T="${T}${BAND}"
24 | done
25 |
26 | [ -n "$T" ] && sms_tool -d $_DEVICE at "at^slband=lte,2,$T"
27 | }
28 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/_foxconn_common2:
--------------------------------------------------------------------------------
1 | getsupportedbands() {
2 | echo "$_DEFAULT_LTE_BANDS"
3 | }
4 |
5 | getbands() {
6 | # ^SLBAND: WCDMA,1,2,4,5,6,8,9,19
7 | # ^SLBAND: LTE,1,2,3,4,5,7,8,12,13,17,18,19,20,21,25,26,28,29,30,38,39,40,41,66
8 |
9 | O=$(sms_tool -d $_DEVICE at "at^slband?")
10 | echo "$O" | awk -F: '/^\^SLBAND:.*LTE,/{gsub("LTE,","");gsub(","," ");print $2}' | xargs
11 | }
12 |
13 | setbands() {
14 | BANDS="$1"
15 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
16 |
17 | T=""
18 | for BAND in $BANDS; do
19 | case $BAND in
20 | ''|*[!0-9]*) continue ;;
21 | esac
22 | [ -n "$T" ] && T="${T},"
23 | T="${T}${BAND}"
24 | done
25 |
26 | [ -n "$T" ] && sms_tool -d $_DEVICE at "at^slband=lte,$T"
27 | }
28 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/_quectel_common:
--------------------------------------------------------------------------------
1 | getsupportedbands() {
2 | echo "${_DEFAULT_LTE_BANDS:-Unsupported}"
3 | }
4 |
5 | getbands() {
6 | O=$(sms_tool -d $_DEVICE at "at+qcfg=\"band\"")
7 | HEX=$(echo "$O" | awk -F[:,] '{print $4}' | xargs)
8 | hextobands "$HEX"
9 | }
10 |
11 | setbands() {
12 | BANDS="$1"
13 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
14 |
15 | HEX=$(bandstohex "$BANDS")
16 | [ "$HEX" != "0" ] && sms_tool -d $_DEVICE at "at+qcfg=\"band\",0,$HEX,0,1"
17 | }
18 |
--------------------------------------------------------------------------------
/modemband/files/usr/share/modemband/_zte_common:
--------------------------------------------------------------------------------
1 | getsupportedbands() {
2 | echo "$_DEFAULT_LTE_BANDS"
3 | }
4 |
5 | getbands() {
6 | # +ZNLOCKBAND: 80800c5,2000000680380
7 |
8 | O=$(sms_tool -d $_DEVICE at "at+znlockband?")
9 | HEX="0x"$(echo "$O" | awk -F[:,] '{print $2}' | xargs)
10 | hextobands "$HEX"
11 | }
12 |
13 | setbands() {
14 | BANDS="$1"
15 | [ "$BANDS" = "default" ] && BANDS="$_DEFAULT_LTE_BANDS"
16 |
17 | HEX=$(bandstohex "$BANDS")
18 | [ "$HEX" != "0" ] && sms_tool -d $_DEVICE at "at+znlockband=1,0,$HEX,0"
19 | }
20 |
--------------------------------------------------------------------------------
/n2n-2.4-stable/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=n2n-v2
4 | PKG_RELEASE:=1
5 |
6 | PKG_SOURCE_URL:=https://github.com/ntop/n2n.git
7 | PKG_SOURCE_PROTO:=git
8 | PKG_SOURCE_DATE:=2019-05-23
9 | PKG_SOURCE_VERSION:=ca407f42af26226f5c9109efdf6996f3ed595135
10 |
11 | include $(INCLUDE_DIR)/package.mk
12 |
13 | MAKE_FLAGS += N2N_OPTION_AES="no" DEBUG=""
14 |
15 | define Package/n2n-v2
16 | SECTION:=net
17 | CATEGORY:=Network
18 | TITLE:=VPN tunneling daemon (client, no ssl)
19 | URL:=http://www.ntop.org/n2n/
20 | SUBMENU:=VPN
21 | DEPENDS:=+libpthread +kmod-tun
22 | endef
23 |
24 | define Package/n2n-v2-supernode
25 | SECTION:=net
26 | CATEGORY:=Network
27 | TITLE:=VPN tunneling daemon (server, no ssl)
28 | URL:=http://www.ntop.org/n2n/
29 | SUBMENU:=VPN
30 | DEPENDS:=+libpthread +kmod-tun
31 | endef
32 |
33 | define Package/n2n-v2/install
34 | $(INSTALL_DIR) $(1)/usr/sbin
35 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/edge $(1)/usr/sbin/
36 | $(INSTALL_DIR) $(1)/etc/config
37 | $(INSTALL_DATA) ./files/n2n.config $(1)/etc/config/n2n
38 | $(INSTALL_DIR) $(1)/etc/init.d
39 | $(INSTALL_BIN) ./files/n2n.init $(1)/etc/init.d/n2n
40 | endef
41 |
42 | define Package/n2n-v2-supernode/install
43 | $(INSTALL_DIR) $(1)/usr/sbin
44 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/supernode $(1)/usr/sbin/
45 | endef
46 |
47 | $(eval $(call BuildPackage,n2n-v2))
48 | $(eval $(call BuildPackage,n2n-v2-supernode))
49 |
--------------------------------------------------------------------------------
/n2n-2.4-stable/files/n2n.config:
--------------------------------------------------------------------------------
1 | config edge
2 | option ipaddr 'dhcp:0.0.0.0'
3 | option netmask '255.255.255.0'
4 | option supernode '88.86.108.50'
5 | option port '86'
6 | option community 'OpenWrt'
7 | option key 'secretkey'
8 | option route '0'
9 |
10 | config supernode
11 | option port '86'
12 |
--------------------------------------------------------------------------------
/n2n-2.4-stable/files/n2n.init:
--------------------------------------------------------------------------------
1 | #!/bin/sh /etc/rc.common
2 |
3 | START=90
4 |
5 | start_instance() {
6 | local cfg="$1"
7 |
8 | config_get type "$cfg" TYPE
9 |
10 | case "$type" in
11 | edge)
12 | config_get ipaddr "$cfg" 'ipaddr'
13 | [ -n "$ipaddr" ] || return 1
14 | config_get netmask "$cfg" 'netmask' '255.255.255.0'
15 | config_get supernode "$cfg" 'supernode'
16 | config_get port "$cfg" 'port'
17 | config_get community "$cfg" 'community'
18 | config_get key "$cfg" 'key'
19 | config_get_bool route "$cfg" 'route' '0'
20 | [ "$route" = "1" ] && args='-r'
21 | service_start /usr/sbin/edge $args -a $ipaddr -s $netmask -c $community -k $key -l ${supernode}:${port}
22 | ;;
23 | supernode)
24 | [ -e /usr/sbin/supernode ] || return 1
25 | config_get port "$cfg" port
26 | [ -n "$port" ] || return 1
27 | service_start /usr/sbin/supernode -l $port
28 | ;;
29 | esac
30 | }
31 |
32 | stop_instance() {
33 | local cfg="$1"
34 |
35 | config_get type "$cfg" TYPE
36 |
37 | case "$type" in
38 | edge)
39 | service_stop /usr/sbin/edge
40 | ;;
41 | supernode)
42 | [ -e /usr/sbin/supernode ] || return 1
43 | service_stop /usr/sbin/supernode
44 | ;;
45 | esac
46 | }
47 |
48 | start() {
49 | config_load 'n2n'
50 | config_foreach start_instance 'edge'
51 | config_foreach start_instance 'supernode'
52 | }
53 |
54 | stop() {
55 | config_load 'n2n'
56 | config_foreach stop_instance 'edge'
57 | config_foreach stop_instance 'supernode'
58 | }
59 |
--------------------------------------------------------------------------------
/oscam/files/oscam.conf:
--------------------------------------------------------------------------------
1 | [global]
2 | logfile = /tmp/oscam.log
3 | disablelog = 0
4 | disableuserfile = 0
5 | usrfileflag = 0
6 | clienttimeout = 5000
7 | fallbacktimeout = 2500
8 | clientmaxidle = 120
9 | cachedelay = 120
10 | bindwait = 120
11 | netprio = 0
12 | clientdyndns = 0
13 | resolvedelay = 30
14 | unlockparental = 0
15 | nice = 1
16 | serialreadertimeout = 1500
17 | maxlogsize = 10
18 | waitforcards = 1
19 | preferlocalcards = 0
20 | saveinithistory = 0
21 | readerrestartseconds = 5
22 | readerautoloadbalance = 0
23 | readerautoloadbalance_save = 0
24 |
25 | [monitor]
26 | port = 9999
27 | nocrypt =
28 | aulow = 120
29 | hideclient_to = 0
30 | monlevel = 4
31 | appendchaninfo = 0
32 |
33 | [newcamd]
34 | port = 10100@0100:000000
35 | key = 0102030405060708091011121314
36 | allowed =
37 | keepalive = 1
38 | mgclient = 0
39 |
40 | [webif]
41 | httpport = 9000
42 | httpuser = admin
43 | httppwd = admin
44 | httprefresh = 5
45 | httpallowed = 127.0.0.1,192.168.1.0-192.168.1.255
46 | httphideidleclients = 0
47 | httpreadonly = 0
48 |
--------------------------------------------------------------------------------
/oscam/files/oscam.init:
--------------------------------------------------------------------------------
1 | #!/bin/sh /etc/rc.common
2 |
3 | START=85
4 |
5 | start() {
6 | [ -d /var/log/oscam ] || mkdir -p /var/log/oscam
7 | /usr/bin/oscam -b
8 | }
9 |
10 | stop() {
11 | killall oscam
12 | }
13 |
--------------------------------------------------------------------------------
/oscam/files/oscam.server:
--------------------------------------------------------------------------------
1 | [reader]
2 | label = cyfra
3 | Protocol = mouse
4 | device = /dev/ttyUSB0
5 | group = 1
6 | emmcache = 1,3,2
7 | CAID = 0100
8 | MHz = 368
9 |
--------------------------------------------------------------------------------
/oscam/files/oscam.user:
--------------------------------------------------------------------------------
1 | [account]
2 | user = test
3 | pwd = test
4 | disabled = 0
5 | expdate =
6 | group = 1
7 | hostname =
8 | uniq = 0
9 | sleep = 0
10 | monlevel = 4
11 | au = cyfra
12 | services =
13 | caid = 0100
14 | betatunnel =
15 | ident =
16 | cccmaxhops = 10
17 | keepalive = 1
18 | numusers = 0
19 | penalty = 0
20 |
--------------------------------------------------------------------------------
/pingraw/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=pingraw
4 | PKG_VERSION:=20250502
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/pingraw
10 | SECTION:=utils
11 | CATEGORY:=Utilities
12 | TITLE:=pingraw
13 | endef
14 |
15 | define Build/Prepare
16 | mkdir -p $(PKG_BUILD_DIR)
17 | $(CP) ./src/* $(PKG_BUILD_DIR)/
18 | endef
19 |
20 | define Package/pingraw/install
21 | $(INSTALL_DIR) $(1)/usr/bin
22 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/pingraw $(1)/usr/bin
23 | endef
24 |
25 | $(eval $(call BuildPackage,pingraw))
26 |
--------------------------------------------------------------------------------
/pingraw/src/Makefile:
--------------------------------------------------------------------------------
1 | OBJS = pingraw.o
2 |
3 | all: $(OBJS)
4 | $(CC) -o pingraw $(CFLAGS) $(OBJS) $(LIBS)
5 |
6 | clean:
7 | rm *.o pingraw
8 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/etc/uci-defaults/plugin-gargoyle-3ginfo-extended:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | uci set gargoyle.display.status_3ginfo_extended="Cellular Modem"
4 | uci set gargoyle.scripts.status_3ginfo_extended='3ginfo_extended.sh'
5 | uci set gargoyle.status.3ginfo_extended='900'
6 |
7 | touch /etc/config/3ginfo
8 | uci -q get 3ginfo.@3ginfo[0] > /dev/null || uci add 3ginfo 3ginfo
9 |
10 | uci commit
11 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/usr/lib/gargoyle/3ginfo_extended/mccmnc.dat:
--------------------------------------------------------------------------------
1 | 22234;BT Italia SpA
2 | 22202;Elsacom
3 | 22299;H3G
4 | 22233;H3G
5 | 22277;IPSE 2000
6 | 22235;Lycamobile Srl
7 | 22207;Noverca Italia Srl
8 | 22230;RFI Rete Ferroviaria Italiana SpA
9 | 22243;Telecom Italia Mobile SpA
10 | 22201;TIM
11 | 22248;Telecom Italia Mobile SpA
12 | 22210;Vodafone
13 | 22206;Vodafone
14 | 22244;WIND
15 | 22288;WIND
16 | 26001;Plus
17 | 26002;T-Mobile;T-Mobile.pl
18 | 26003;Orange;PTK Centertel;Orange PL
19 | 26006;Play;Play Fakt Mobile
20 | 26016;Mobyland LTE;Cyfrowy Polsat
21 | 26017;Aero2
22 | 26034;NetWorks
23 | 24801;Telia
24 | 24802;Elisa
25 | 24803;Tele2
26 | 51001;Indosat Ooredoo
27 | 51003;StarOne
28 | 51007;TelkomFlexi
29 | 51008;AXIS
30 | 51009;Smartfren
31 | 51010;Telkomsel
32 | 51011;XL 4G
33 | 51020;TELKOMMobile
34 | 51021;IM3
35 | 51027;Ceria
36 | 51028;Fren/Hepi
37 | 51088;BOLT! Super 4G
38 | 51089;3
39 | 51099;Esia
40 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/usr/lib/gargoyle/3ginfo_extended/vendorproduct.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set comecho off
4 | set senddelay 0.01
5 | waitquiet 0.01 0.01
6 |
7 | let $c="ATE0;+CGMI^m"
8 | let $r="+CGMI:"
9 | gosub readatcmdfl
10 |
11 | let $c="AT+CGMM^m"
12 | let $r="+CGMM:"
13 | gosub readatcmdfl
14 |
15 | let $c="AT+CGMR^m"
16 | let $r="+CGMR:"
17 | gosub readatcmdfl
18 |
19 | let $c="AT+CGSN^m"
20 | let $r="+CGSN:"
21 | gosub readatcmdfl
22 |
23 | let $c="AT\^ICCID?^m"
24 | gosub readatcmd
25 | let $c="AT+ICCID^m"
26 | gosub readatcmd
27 | let $c="AT+QCCID^m"
28 | gosub readatcmd
29 | let $c="AT#CCID^m"
30 | gosub readatcmd
31 | let $c="AT!ICCID?^m"
32 | gosub readatcmd
33 | let $c="AT*ICCID?^m"
34 | gosub readatcmd
35 |
36 | exit 0
37 |
38 | :readatcmd
39 | let i=15
40 | send $c
41 | :loop
42 | get 0.1 "^m" $s
43 | if len($s) < 2 goto loop2
44 | if $mid($s,1,2) = "ER" goto loop1
45 | if $mid($s,1,2) = "OK" goto loop2
46 | if $mid($s,1,2) = "AT" goto loop2
47 | print $s,"\n"
48 | exit 0
49 |
50 | :loop1
51 | return
52 |
53 | :loop2
54 | if i = 0 return
55 | let i=i-1
56 | goto loop
57 |
58 | :readatcmdfl
59 | let i=15
60 | send $c
61 | :loop3
62 | get 0.1 "^m" $s
63 | if len($s) < 2 goto loop5
64 | let f=0
65 | if $mid($s,0,1) ="\n" let f=1
66 | if $mid($s,f,2) = "ER" goto loop4
67 | if $mid($s,f,2) = "OK" goto loop5
68 | if $mid($s,f,2) = "AT" goto loop5
69 | if $mid($s,f,1) = "\^" goto loop5
70 | if $mid($s,f,1) = "#" goto loop5
71 | let l=len($s)
72 | let $s=$mid($s,f,l)
73 | print $r,$s,"\n"
74 | return
75 |
76 | :loop4
77 | return
78 |
79 | :loop5
80 | if i = 0 return
81 | let i=i-1
82 | goto loop3
83 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/i18n/English-EN/3ginfo_extended.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) English-EN text strings for 3ginfo.sh html elements
3 | */
4 |
5 | tginfoS.Modem3g="Cellular Modem";
6 | tginfoS.Device="Device";
7 | tginfoS.None="None";
8 | tginfoS.DldingData="Downloading Data...";
9 | tginfoS.SIMStatus="SIM card status";
10 | tginfoS.BTSLoc="Base station location";
11 | tginfoS.Vendor="Vendor";
12 | tginfoS.Product="Product";
13 | tginfoS.Revision="Revision";
14 | tginfoS.IMEI="IMEI";
15 | tginfoS.ICCID="SIM card number (ICCID)";
16 | tginfoS.Temperature="Modem temperature";
17 | tginfoS.NoNetwork="Not registered";
18 | tginfoS.HomeNetwork="Registered, home network";
19 | tginfoS.Searching="Searching a new operator ";
20 | tginfoS.AccessDenied="Registration denied";
21 | tginfoS.Roaming="Registered, roaming";
22 | tginfoS.SMSHomeNetwork="Registered for SMS only, home network";
23 | tginfoS.SMSRoaming="Registered for SMS only, roaming";
24 | tginfoS.NoInfo="No additional information";
25 | tginfoS.Information="Operator information";
26 | tginfoS.SignalParam="Signal parameters";
27 | tginfoS.Modem="Modem and SIM card information";
28 | tginfoS.SignalExcellent="Excellent";
29 | tginfoS.SignalGood="Good";
30 | tginfoS.SignalFair="Fair";
31 | tginfoS.SignalPoor="Poor";
32 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/i18n/Polish-PL/3ginfo_extended.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) Polish-PL text strings for 3ginfo.sh html elements
3 | */
4 |
5 | tginfoS.Modem3g="Modem komórkowy";
6 | tginfoS.Device="Urządzenie";
7 | tginfoS.None="Brak";
8 | tginfoS.DldingData="Pobieranie danych";
9 | tginfoS.SIMStatus="Status karty SIM";
10 | tginfoS.BTSLoc="Lokalizacja stacji bazowej";
11 | tginfoS.Vendor="Producent";
12 | tginfoS.Product="Model";
13 | tginfoS.Revision="Wersja";
14 | tginfoS.IMEI="IMEI";
15 | tginfoS.ICCID="Numer karty SIM (ICCID)";
16 | tginfoS.Temperature="Temperatura modemu";
17 | tginfoS.NoNetwork="Brak sieci";
18 | tginfoS.HomeNetwork="Zalogowana do sieci macierzystej";
19 | tginfoS.Searching="Wyszukiwanie operatora";
20 | tginfoS.AccessDenied="Odmowa dostępu";
21 | tginfoS.Roaming="Zalogowana do sieci w roamingu";
22 | tginfoS.SMSHomeNetwork="Zalogowana do sieci macierzystej, tylko SMS";
23 | tginfoS.SMSRoaming="Zalogowana do sieci w roamingu, tylko SMS";
24 | tginfoS.NoInfo="Brak dodatkowych informacji";
25 | tginfoS.Information="Informacje o operatorze";
26 | tginfoS.SignalParam="Parametry sygnału";
27 | tginfoS.Modem="Informacje o modemie i karcie SIM";
28 | tginfoS.SignalExcellent="Doskonały";
29 | tginfoS.SignalGood="Dobry";
30 | tginfoS.SignalFair="Słaby";
31 | tginfoS.SignalPoor="Zły";
32 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/i18n/universal/menu-status_3ginfo_extended.txt:
--------------------------------------------------------------------------------
1 | fallback=Cellular Modem
2 | EN=Cellular Modem
3 | PL=Modem komórkowy
4 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal0.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal10.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal100.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal20.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal30.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal40.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal50.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal60.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal70.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal80.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal90.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo-extended/files/www/img/3ginfo_extended/signal90.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/etc/uci-defaults/plugin-gargoyle-3ginfo:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | uci set gargoyle.display.status_3ginfo="USB Modem"
4 | uci set gargoyle.scripts.status_3ginfo='3ginfo.sh'
5 | uci set gargoyle.status.3ginfo='900'
6 | uci commit
7 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/i18n/English-EN/3ginfo.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) English-EN text strings for 3ginfo.sh html elements
3 | */
4 |
5 | tginfoS.Modem3g="USB Modem";
6 | tginfoS.Device="Device";
7 | tginfoS.None="None";
8 | tginfoS.CntsStatus="Connection Status";
9 | tginfoS.CntsTime="Connection Time";
10 | tginfoS.DlnData="Downloaded data";
11 | tginfoS.UplData="Uploaded data";
12 | tginfoS.MdmType="Modem Type";
13 | tginfoS.DldingData="Downloading Data...";
14 | tginfoS.Conn="Connected";
15 | tginfoS.DisConn="Disconnected";
16 | tginfoS.NoInfo="No information";
17 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/i18n/Polish-PL/3ginfo.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) Polish-PL text strings for 3ginfo.sh html elements
3 | */
4 |
5 | tginfoS.Modem3g="Modem USB";
6 | tginfoS.Device="Urządzenie";
7 | tginfoS.None="Brak";
8 | tginfoS.CntsStatus="Status połączenia";
9 | tginfoS.CntsTime="Czas połączenia";
10 | tginfoS.DlnData="Pobrano danych";
11 | tginfoS.UplData="Wysłano danych";
12 | tginfoS.MdmType="Typ modemu";
13 | tginfoS.DldingData="Pobieranie danych";
14 | tginfoS.Conn="Połączony";
15 | tginfoS.DisConn="Rozłączony";
16 | tginfoS.NoInfo="Brak informacji";
17 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/i18n/universal/menu-status_3ginfo.txt:
--------------------------------------------------------------------------------
1 | fallback=USB Modem
2 | EN=USB Modem
3 | PL=Modem USB
4 |
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal0.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal10.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal100.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal20.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal30.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal40.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal50.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal60.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal60.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal70.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal80.png
--------------------------------------------------------------------------------
/plugin-gargoyle-3ginfo/files/www/img/signal90.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-3ginfo/files/www/img/signal90.png
--------------------------------------------------------------------------------
/plugin-gargoyle-apcups/files/www/i18n/English-EN/ups.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) English-EN text strings for ups.sh html elements
3 | */
4 |
5 | upsS.UPS="UPS";
6 | upsS.MODEL="Model";
7 | upsS.STATUS="Status";
8 | upsS.BCHARGE="Battery Charge";
9 | upsS.LINEV="Line";
10 | upsS.LOADPCT="Load";
11 | upsS.TIMELEFT="Time Left";
12 |
13 | upsS.DldingData="Downloading Data";
14 | upsS.Volts="Volts";
15 | upsS.Percent="Percent";
16 |
--------------------------------------------------------------------------------
/plugin-gargoyle-apcups/files/www/i18n/Polish-PL/ups.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) Polish-PL text strings for ups.sh html elements
3 | */
4 |
5 | upsS.UPS="UPS";
6 | upsS.MODEL="Model";
7 | upsS.STATUS="Status";
8 | upsS.BCHARGE="Naładowanie baterii";
9 | upsS.LINEV="Napięcie sieci";
10 | upsS.LOADPCT="Obciążenie UPS";
11 | upsS.TIMELEFT="Pozostało czasu";
12 |
13 | upsS.DldingData="Pobieranie danych";
14 | upsS.Volts="V";
15 | upsS.Percent="%";
16 |
--------------------------------------------------------------------------------
/plugin-gargoyle-apcups/files/www/i18n/universal/menu-status_ups.txt:
--------------------------------------------------------------------------------
1 | fallback=UPS
2 | EN=UPS
3 | PL=UPS
4 |
--------------------------------------------------------------------------------
/plugin-gargoyle-atcmd/files/etc/uci-defaults/plugin-gargoyle-atcmd:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | uci set gargoyle.display.system_atcmd='AT Commands'
4 | uci set gargoyle.scripts.system_atcmd='atcmd.sh'
5 | uci set gargoyle.system.atcmd='351'
6 |
7 | touch /etc/config/3ginfo
8 | uci -q get 3ginfo.@3ginfo[0] > /dev/null || uci add 3ginfo 3ginfo
9 |
10 | uci commit
11 |
--------------------------------------------------------------------------------
/plugin-gargoyle-atcmd/files/www/i18n/English-EN/atcmd.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) English-EN text strings for atcmd.sh html elements
3 | */
4 |
5 | atcmd.AT="AT Commands";
6 | atcmd.Config="Configuration";
7 | atcmd.Device="Device";
8 | atcmd.NoDevice="No device selected!";
9 | atcmd.None="None";
10 | atcmd.SlctCd="Select command";
11 | atcmd.Code="Command";
12 | atcmd.Send="Send";
13 | atcmd.Mngmt="Commands management";
14 | atcmd.Sending="Command is being sent...";
15 | atcmd.NoCode="No AT command!";
16 | atcmd.Description="Description";
17 | atcmd.ATCodeErr="Wrong AT command";
18 | atcmd.ATDescErr="Wrong AT command description";
19 |
--------------------------------------------------------------------------------
/plugin-gargoyle-atcmd/files/www/i18n/Polish-PL/atcmd.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) Polish-PL text strings for atcmd.sh html elements
3 | */
4 |
5 | atcmd.AT="Polecenia AT";
6 | atcmd.Config="Konfiguracja";
7 | atcmd.Device="Urządzenie";
8 | atcmd.NoDevice="Nie wybrano żadnego urządzenia!";
9 | atcmd.None="Brak";
10 | atcmd.SlctCd="Wybierz polecenie";
11 | atcmd.Code="Polecenie";
12 | atcmd.Send="Wyślij";
13 | atcmd.Mngmt="Zarządzanie poleceniami";
14 | atcmd.NoCode="Brak polecenia AT!";
15 | atcmd.Description="Opis";
16 | atcmd.ATCodeErr="Błędne polecenie AT";
17 | atcmd.ATDescErr="Błędny opis polecenia AT";
18 |
--------------------------------------------------------------------------------
/plugin-gargoyle-atcmd/files/www/i18n/universal/menu-system_atcmd.txt:
--------------------------------------------------------------------------------
1 | fallback=AT Command
2 | EN=AT Command
3 | PL=Polecenia AT
4 |
--------------------------------------------------------------------------------
/plugin-gargoyle-iradio/files/etc/config/iradio:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-iradio/files/etc/config/iradio
--------------------------------------------------------------------------------
/plugin-gargoyle-iradio/files/www/i18n/English-EN/iradio.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) English-EN text strings
3 | */
4 |
5 | iradio.Radio="Internet Radio";
6 | iradio.StopMusic="Stop Radio";
7 | iradio.Anam="Name";
8 | iradio.Aurl="URL";
9 | iradio.ASrc="Add new source";
10 | iradio.Play="Play >>";
11 | iradio.Delete="Delete";
12 | iradio.SNamErr="ERROR: You must specify Source Name";
13 | iradio.SURLErr="ERROR: You must specify Source URL";
14 | iradio.AddPSErr="Cannot add source";
15 |
--------------------------------------------------------------------------------
/plugin-gargoyle-iradio/files/www/i18n/Polish-PL/iradio.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) Polish-PL text strings
3 | */
4 |
5 | iradio.Radio="Radio internetowe";
6 | iradio.StopMusic="Wyłącz radio";
7 | iradio.Anam="Nazwa";
8 | iradio.Aurl="URL";
9 | iradio.ASrc="Dodaj nowe źródło";
10 | iradio.Play="Graj >>";
11 | iradio.Delete="Usuń";
12 | iradio.SNamErr="BŁĄD: Należy podać nazwę źródła";
13 | iradio.SURLErr="BŁĄD: Należy podać adres URL źródła";
14 | iradio.AddPSErr="Nie można dodać źródła";
15 |
--------------------------------------------------------------------------------
/plugin-gargoyle-iradio/files/www/i18n/universal/menu-status_iradio.txt:
--------------------------------------------------------------------------------
1 | fallback=Internet Radio
2 | EN=Internet Radio
3 | PL=Radio internetowe
4 |
5 |
--------------------------------------------------------------------------------
/plugin-gargoyle-management/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=plugin_gargoyle_management
4 | PKG_VERSION:=20140402
5 | PKG_RELEASE:=3
6 |
7 | PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
8 |
9 | include $(INCLUDE_DIR)/package.mk
10 |
11 | define Package/plugin-gargoyle-management
12 | SECTION:=admin
13 | CATEGORY:=Administration
14 | SUBMENU:=Gargoyle Web Interface
15 | TITLE:=Management buttons on login page
16 | DEPENDS:=+gargoyle
17 | PKGARCH:=all
18 | endef
19 |
20 | define Package/plugin-gargoyle-management/description
21 | Management buttons on login page
22 | endef
23 |
24 | define Build/Prepare
25 | endef
26 |
27 | define Build/Configure
28 | endef
29 |
30 | define Build/Compile
31 | endef
32 |
33 | define Package/plugin-gargoyle-management/install
34 | $(INSTALL_DIR) $(1)
35 | $(CP) ./files/* $(1)/
36 | [ -n "$$$$(which uglifyjs)" ] && uglifyjs ./files/www/hooks/login/091-management.js > $(1)/www/hooks/login/091-management.js || true
37 | endef
38 |
39 | $(eval $(call BuildPackage,plugin-gargoyle-management))
40 |
--------------------------------------------------------------------------------
/plugin-gargoyle-management/files/www/hooks/login/091-management.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/haserl
2 |
3 |
4 |
5 |
6 |
7 |
8 |
Zarządzanie
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/plugin-gargoyle-management/files/www/utility/run_commands1.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/haserl
2 |
3 | echo "Content-type: text/plain"
4 | echo ""
5 |
6 | if [ -n "$FORM_commands" ] ; then
7 |
8 | tmp_file="/tmp/tmp.sh"
9 | printf "%s" "$FORM_commands" | tr -d "\r" > $tmp_file
10 | sh $tmp_file
11 |
12 | if [ -e $tmp_file ] ; then
13 | rm $tmp_file
14 | fi
15 | fi
16 | echo "Success"
17 | ?>
18 |
--------------------------------------------------------------------------------
/plugin-gargoyle-modemband/files/etc/uci-defaults/plugin-gargoyle-modemband:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | uci set gargoyle.display.system_modemband="Modem bands"
4 | uci set gargoyle.scripts.system_modemband='modemband.sh'
5 | uci set gargoyle.system.modemband='351'
6 |
7 | touch /etc/config/3ginfo
8 | uci -q get 3ginfo.@3ginfo[0] > /dev/null || uci add 3ginfo 3ginfo
9 |
10 | uci commit
11 |
--------------------------------------------------------------------------------
/plugin-gargoyle-modemband/files/www/i18n/English-EN/modemband.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) English-EN text strings for modemband.sh html elements
3 | */
4 |
5 | modemband.Modembands="Modem bands";
6 | modemband.Device="Device";
7 | modemband.None="None";
8 | modemband.Info="Modem information"
9 | modemband.Modem="Modem";
10 | modemband.LTEBands="LTE Bands";
11 | modemband.FGNSABands="5G NSA Bands";
12 | modemband.FGSABands="5G SA Bands";
13 | modemband.Restart="Restart conn.";
14 | modemband.Default="Default settings";
15 | modemband.Error="Błąd";
16 | modemband.NoModem="No compatible modem was found or the selected device is not correct.";
17 |
--------------------------------------------------------------------------------
/plugin-gargoyle-modemband/files/www/i18n/Polish-PL/modemband.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) Polish-PL text strings for modemband.sh html elements
3 | */
4 |
5 | modemband.Modembands="Pasma modemu";
6 | modemband.Device="Urządzenie";
7 | modemband.None="Brak";
8 | modemband.Info="Informacje o modemie";
9 | modemband.Modem="Modem";
10 | modemband.LTEBands="Pasma LTE";
11 | modemband.FGNSABands="Pasma 5G NSA";
12 | modemband.FGSABands="Pasma 5G SA";
13 | modemband.Restart="Restart poł.";
14 | modemband.Default="Domyślne ustawienia";
15 | modemband.Error="Błąd";
16 | modemband.NoModem="Nie znaleziono kompatybilnego modemu lub wybrane urządzenie nie jest właściwe.";
17 |
--------------------------------------------------------------------------------
/plugin-gargoyle-modemband/files/www/i18n/universal/menu-system_modemband.txt:
--------------------------------------------------------------------------------
1 | fallback=Modem bands
2 | EN=Modem bands
3 | PL=Pasma modemu
4 |
--------------------------------------------------------------------------------
/plugin-gargoyle-msg/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=plugin_gargoyle_msg
4 | PKG_VERSION:=1.0
5 | PKG_RELEASE:=1
6 |
7 | PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
8 |
9 | include $(INCLUDE_DIR)/package.mk
10 |
11 | define Package/plugin-gargoyle-msg
12 | SECTION:=admin
13 | CATEGORY:=Administration
14 | SUBMENU:=Gargoyle Web Interface
15 | TITLE:=Admin Message for Gargoyle (PL)
16 | DEPENDS:=+gargoyle
17 | PKGARCH:=all
18 | endef
19 |
20 | define Package/plugin-gargoyle-msg/description
21 | Admin Message for Gargoyle
22 | endef
23 |
24 | define Build/Prepare
25 | endef
26 |
27 | define Build/Configure
28 | endef
29 |
30 | define Build/Compile
31 | endef
32 |
33 | define Package/plugin-gargoyle-msg/install
34 | $(INSTALL_DIR) $(1)
35 | $(CP) ./files/* $(1)/
36 | endef
37 |
38 | $(eval $(call BuildPackage,plugin-gargoyle-msg))
39 |
--------------------------------------------------------------------------------
/plugin-gargoyle-msg/files/www/hooks/login/090-msg.js:
--------------------------------------------------------------------------------
1 | function setMsg()
2 | {
3 | setControlsEnabled(false, true, "Proszę czekać...");
4 |
5 | var stateChangeFunction = function(req)
6 | {
7 | if(req.readyState == 4)
8 | {
9 |
10 | if(!req.responseText.match(/^no_msg/))
11 | {
12 | document.getElementById("msg_fields").style.display="block";
13 | setChildText("msg", req.responseText);
14 | }
15 | setControlsEnabled(true);
16 | }
17 | }
18 |
19 | runAjax("POST", "/msgip.sh", "", stateChangeFunction);
20 | }
21 |
22 | addLoadFunction(setMsg);
23 |
--------------------------------------------------------------------------------
/plugin-gargoyle-msg/files/www/hooks/login/090-msg.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/haserl
2 |
3 |
9 |
--------------------------------------------------------------------------------
/plugin-gargoyle-msg/files/www/msgip.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/haserl
2 |
3 | echo "Content-Type: text/plain"
4 | echo ""
5 |
6 | ip="$REMOTE_ADDR"
7 | result="no_msg"
8 | msgfile=$(uci -q get gargoyle.system.msgfile)
9 | if [ -z "$msgfile" ]; then
10 | msgfile="/www/msg.txt"
11 | fi
12 | if [ -e "$msgfile" ]; then
13 | result=$(awk '/'$ip'/ {for (i=2; i<=NF; i++) printf("%s ",$i) }' "$msgfile")
14 | [ -z "$result" ] && result="no_msg"
15 | fi
16 |
17 | echo "$result"
18 | ?>
19 |
--------------------------------------------------------------------------------
/plugin-gargoyle-smsbox/files/etc/config/smsbox:
--------------------------------------------------------------------------------
1 |
2 | config 'smsbox'
3 | option 'device' ''
4 | option 'memory' 'SM'
5 | option 'rawinput' 1
6 | option 'rawoutput' 1
7 |
--------------------------------------------------------------------------------
/plugin-gargoyle-smsbox/files/etc/uci-defaults/plugin-gargoyle-smsbox:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | uci set gargoyle.display.system_smsbox='SMS/USSD'
4 | uci set gargoyle.scripts.system_smsbox='smsbox.sh'
5 | uci set gargoyle.system.smsbox='351'
6 | uci commit gargoyle
7 |
--------------------------------------------------------------------------------
/plugin-gargoyle-smsbox/files/www/i18n/English-EN/smsbox.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) English-EN text strings for smsbox.sh html elements
3 | */
4 |
5 | smsbox.Sms="SMS/USSD";
6 | smsbox.Config="Configuration";
7 | smsbox.Device="Device";
8 | smsbox.NoDevice="No device selected!";
9 | smsbox.None="None";
10 | smsbox.RawInput="Without changing USSD code to PDU";
11 | smsbox.RawOutput="No USSD response decoding";
12 | smsbox.Memory="SMS memory";
13 | smsbox.internal="internal";
14 | smsbox.simcard="SIM card";
15 | smsbox.internalsimcard="internal and SIM card";
16 | smsbox.DSave="Save";
17 | smsbox.USSD="USSD";
18 | smsbox.SlctCd="Select code";
19 | smsbox.Code="Code";
20 | smsbox.Send="Send";
21 | smsbox.Mngmt="Code management";
22 | smsbox.Sending="Message is being sent...";
23 | smsbox.NoCode="No USSD code!";
24 | smsbox.Number="Phone number";
25 | smsbox.Message="Message content";
26 | smsbox.SendSMS="Sending message";
27 | smsbox.RecvBox="Messages received";
28 | smsbox.SMSCnt="Number of messages";
29 | smsbox.Refresh="Refresh";
30 | smsbox.ReadMsg="Message reading...";
31 | smsbox.DeleteMsg="Message deleting...";
32 | smsbox.SendingMsg="Sending a message...";
33 | smsbox.Timestamp="Date";
34 | smsbox.From="From";
35 | smsbox.Content="Message";
36 | smsbox.NoNumber="No number provided!";
37 | smsbox.NoMsg="No message content!";
38 | smsbox.USSDCodes="USSD codes";
39 | smsbox.Description="Description";
40 | smsbox.USSDCodeErr="Wrong USSD code";
41 | smsbox.USSDDescErr="Wrong USSD code description";
42 |
--------------------------------------------------------------------------------
/plugin-gargoyle-smsbox/files/www/i18n/Polish-PL/smsbox.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) Polish-PL text strings for smsbox.sh html elements
3 | */
4 |
5 | smsbox.Sms="SMS/USSD";
6 | smsbox.Config="Konfiguracja";
7 | smsbox.Device="Urządzenie";
8 | smsbox.NoDevice="Nie wybrano żadnego urządzenia!";
9 | smsbox.None="Brak";
10 | smsbox.RawInput="Bez zmiany kodu USSD do PDU";
11 | smsbox.RawOutput="Bez dekodowania odpowiedzi USSD";
12 | smsbox.Memory="Pamięć SMSów";
13 | smsbox.internal="wewnętrzna";
14 | smsbox.simcard="karta SIM";
15 | smsbox.internalsimcard="wewnętrzna i karta SIM";
16 | smsbox.DSave="Zapisz";
17 | smsbox.USSD="USSD";
18 | smsbox.SlctCd="Wybierz kod";
19 | smsbox.Code="Kod";
20 | smsbox.Send="Wyślij";
21 | smsbox.Mngmt="Zarządzanie kodami";
22 | smsbox.Sending="Trwa wysyłanie wiadomości...";
23 | smsbox.NoCode="Brak kodu USSD!";
24 | smsbox.Number="Numer telefonu";
25 | smsbox.Message="Treść wiadomości";
26 | smsbox.SendSMS="Wysyłanie wiadomości";
27 | smsbox.RecvBox="Wiadomości otrzymane";
28 | smsbox.SMSCnt="Liczba wiadomości";
29 | smsbox.Refresh="Ośwież";
30 | smsbox.ReadMsg="Odczyt wiadomości...";
31 | smsbox.DeleteMsg="Usuwanie wiadomości...";
32 | smsbox.SendingMsg="Wysyłanie wiadomości...";
33 | smsbox.Timestamp="Data";
34 | smsbox.From="Od";
35 | smsbox.Content="Treść";
36 | smsbox.NoNumber="Brak podanego numeru!";
37 | smsbox.NoMsg="Brak treści wiadomości!";
38 | smsbox.USSDCodes="Kody USSD";
39 | smsbox.Description="Opis";
40 | smsbox.USSDCodeErr="Błędny kod USSD";
41 | smsbox.USSDDescErr="Błędny opis kodu";
42 |
--------------------------------------------------------------------------------
/plugin-gargoyle-smsbox/files/www/i18n/universal/menu-system_smsbox.txt:
--------------------------------------------------------------------------------
1 | fallback=SMS/USSD
2 | EN=SMS/USSD
3 | PL=SMS/USSD
4 |
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=plugin_gargoyle_usbrelay
4 | PKG_VERSION:=20230523
5 | PKG_RELEASE:=1
6 |
7 | PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
8 |
9 | include $(INCLUDE_DIR)/package.mk
10 |
11 | define Package/plugin-gargoyle-usbrelay
12 | SECTION:=admin
13 | CATEGORY:=Administration
14 | SUBMENU:=Gargoyle Web Interface
15 | TITLE:=USB Relay
16 | MAINTAINER:=Cezary Jackiewicz
17 | DEPENDS:=+gargoyle
18 | PKGARCH:=all
19 | endef
20 |
21 | define Package/plugin-gargoyle-usbrelay/description
22 | USB Relay
23 | endef
24 |
25 | define Build/Prepare
26 | endef
27 |
28 | define Build/Configure
29 | endef
30 |
31 | define Build/Compile
32 | endef
33 |
34 | define Package/plugin-gargoyle-usbrelay/postinst
35 | #!/bin/sh
36 |
37 | if [ -z "$${IPKG_INSTROOT}" ]; then
38 | menu_name="USB Relay"
39 | [ -n `which i18n` ] && {
40 | mn=$$(i18n-menu gargoyle.display.status_usbrelay)
41 | if [ -n "$$mn" ] ; then
42 | menu_name="$$mn"
43 | fi
44 | }
45 | uci set gargoyle.display.status_usbrelay="$$menu_name"
46 | uci set gargoyle.scripts.status_usbrelay='usbrelay.sh'
47 | uci set gargoyle.status.usbrelay='910'
48 | uci commit
49 | fi
50 | endef
51 |
52 | define Package/plugin-gargoyle-usbrelay/postrm
53 | #!/bin/sh
54 |
55 | if [ -z "$${IPKG_INSTROOT}" ]; then
56 | uci del gargoyle.display.status_usbrelay
57 | uci del gargoyle.scripts.status_usbrelay
58 | uci del gargoyle.status.usbrelay
59 | uci commit
60 | fi
61 | endef
62 |
63 | define Package/plugin-gargoyle-usbrelay/install
64 | $(INSTALL_DIR) $(1)
65 | $(CP) ./files/* $(1)/
66 | endef
67 |
68 | $(eval $(call BuildPackage,plugin-gargoyle-usbrelay))
69 |
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/files/etc/config/usbrelay:
--------------------------------------------------------------------------------
1 |
2 | config 'usbrelay' 'desc'
3 | option '0' 'Przekaźnik 0'
4 | option '1' 'Przekaźnik 1'
5 | option '2' 'Przekaźnik 2'
6 | option '3' 'Przekaźnik 3'
7 | option '4' 'Przekaźnik 4'
8 | option '5' 'Przekaźnik 5'
9 | option '6' 'Przekaźnik 6'
10 | option '7' 'Przekaźnik 7'
11 | option '8' 'Przekaźnik 8'
12 |
13 |
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/files/usr/lib/gargoyle/usbrelay.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # usbrelay.sh polecenie [numer_portu]
4 |
5 | # polecenie, pierwszy argument:
6 | # off - wylacza przekaznik
7 | # usbrelay.sh off 0
8 | # on - wlacza przekaznik
9 | # usbrelay.sh on 0
10 | # status - podaje status wszystkich przekazników w postaci numer_przekaznika:on lub numer_portu:off, kazdy w osobnej linii
11 | # usbrelay.sh status
12 | # 0:on
13 | # 1:on
14 | # 2:off
15 | # 3:off
16 | # 4:off
17 | # 5:off
18 | # 6:off
19 | # 7:off
20 |
21 | # numer_portu, drugi argument
22 |
23 | case "$1" in
24 | off)
25 | powerSwitch off $2
26 | ;;
27 | on)
28 | powerSwitch on $2
29 | ;;
30 | status)
31 | powerSwitch status 2>/dev/null | awk '/port/ {printf "%s%s\n", $2, $3}'
32 | ;;
33 | esac
34 |
35 | exit 0
36 |
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/files/www/i18n/English-EN/usbrelay.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) English-EN text strings
3 | */
4 |
5 | usbrelayS.Relay="USB Relay";
6 | usbrelayS.NoRelay="USB Relay not detected";
7 | usbrelayS.Columns=['Port', 'Description', ''];
8 |
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/files/www/i18n/English-EN/usbrelay_schedule.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) English-EN text strings for wifi_schedule.sh html elements
3 | */
4 |
5 | Usch.Wisch="Relay Schedule";
6 | Usch.Number="Number";
7 | Usch.Name="Name";
8 | Usch.Rstat="Relay status";
9 | Usch.StStR="Stop/Start Relay";
10 | Usch.RadOn="Start Relay";
11 | Usch.RadOf="Stop Relay";
12 | Usch.TPer="Timer Period";
13 | Usch.NoTm="Disable timer";
14 | Usch.Dly="Daily";
15 | Usch.Wkd="Weekday + Sat/Sun";
16 | Usch.Wkly="Weekly";
17 | Usch.TInc="Timer increment";
18 |
19 | //javscript
20 | Usch.Smmy="Summary";
21 | Usch.WeekA=["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
22 | Usch.WDayA=["Sunday", "Monday-Friday", "Saturday"];
23 | Usch.Warn="Warning";
24 | Usch.NextEv="Schedule will take effect with the next event.";
25 | Usch.SelTM="Selected timer mode";
26 | Usch.SumDis="disabled (no schedule).";
27 | Usch.SumDly="daily schedule (every day is the same).";
28 | Usch.SumSwS="Sun/weekday/Sat schedule (every weekday is the same).";
29 | Usch.SumWky="weekly schedule (separate timer for each day of the week; each week is the same).";
30 | Usch.SumGo="Relay will go";
31 | Usch.SumUp=" on ";
32 | Usch.SumDn="off";
33 | Usch.SumAt="at";
34 | Usch.actv="active";
35 | Usch.schd="scheduled";
36 | Usch.nscd="not scheduled";
37 | Usch.STDly="Daily";
38 | Usch.STSunday="Sunday";
39 | Usch.STMonday="Monday";
40 | Usch.STTuesday="Tuesday";
41 | Usch.STWednesday="Wednesday";
42 | Usch.STThursday="Thursday";
43 | Usch.STFriday="Friday";
44 | Usch.STSaturday="Saturday";
45 | Usch.STMonFri="Monday-Friday";
46 | Usch.Back="Back";
47 |
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/files/www/i18n/Polish-PL/usbrelay.js:
--------------------------------------------------------------------------------
1 | /*
2 | * UTF-8 (with BOM) Polish-PL text strings
3 | */
4 |
5 | usbrelayS.Relay="Przekaźniki USB";
6 | usbrelayS.NoRelay="Nie wykryto modułu przekaźników";
7 | usbrelayS.Columns=['Port', 'Opis', ''];
8 |
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/files/www/i18n/universal/menu-status_usbrelay.txt:
--------------------------------------------------------------------------------
1 | fallback=USB Relay
2 | EN=USB Relay
3 | PL=Przekaźniki USB
4 |
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/files/www/img/green-power-button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-usbrelay/files/www/img/green-power-button.png
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/files/www/img/readme.txt:
--------------------------------------------------------------------------------
1 | Green/red power button image taken from http://www.vectors4all.net
2 |
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/files/www/img/red-power-button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/obsy/packages/0e6d976bd53f85711eea119092aa85ff5d74411d/plugin-gargoyle-usbrelay/files/www/img/red-power-button.png
--------------------------------------------------------------------------------
/plugin-gargoyle-usbrelay/files/www/usbrelay.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/haserl
2 | <%
3 | # This program is copyright © 2014-2023 Cezary Jackiewicz and is distributed under the terms of the GNU GPL
4 | # version 2.0 with a special clarification/exception that permits adapting the program to
5 | # configure proprietary "back end" software provided that all modifications to the web interface
6 | # itself remain covered by the GPL.
7 | # See http://gargoyle-router.com/faq.html#qfoss for more information
8 | eval $( gargoyle_session_validator -c "$COOKIE_hash" -e "$COOKIE_exp" -a "$HTTP_USER_AGENT" -i "$REMOTE_ADDR" -r "login.sh" -t $(uci get gargoyle.global.session_timeout) -b "$COOKIE_browser_time" )
9 | gargoyle_header_footer -h -s "status" -p "usbrelay" -j "table.js usbrelay.js" -z "usbrelay.js" -i usbrelay
10 | %>
11 |
12 |
20 |
21 |
22 |
35 |
36 |
41 |
42 | <%
43 | gargoyle_header_footer -f -s "status" -p "usbrelay"
44 | %>
45 |
--------------------------------------------------------------------------------
/repo-4iceg/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=repo-4iceg
4 | PKG_VERSION:=20250122
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/repo-4iceg
10 | SECTION:=utils
11 | CATEGORY:=Base system
12 | TITLE:=Repository - https://github.com/4iceg
13 | PKGARCH:=all
14 | endef
15 |
16 | define Package/repo-4iceg/description
17 | Repository - https://github.com/4iceg
18 | endef
19 |
20 | define Build/Compile
21 | endef
22 |
23 | define Build/Configure
24 | endef
25 |
26 | define Package/repo-4iceg/postinst
27 | #!/bin/sh
28 | if [ -z "$${IPKG_INSTROOT}" ]; then
29 | grep -q "4IceG/Modem-extras" /etc/opkg/customfeeds.conf || echo 'src/gz repo-4iceg https://github.com/4IceG/Modem-extras/raw/main/myrepo' >> /etc/opkg/customfeeds.conf
30 | fi
31 | exit 0
32 | endef
33 |
34 | define Package/repo-4iceg/postrm
35 | #!/bin/sh
36 | if [ -z "$${IPKG_INSTROOT}" ]; then
37 | grep -q "4IceG/Modem-extras" /etc/opkg/customfeeds.conf && sed -i '/4IceG/d' /etc/opkg/customfeeds.conf
38 | fi
39 | exit 0
40 | endef
41 |
42 | define Package/repo-4iceg/install
43 | $(INSTALL_DIR) $(1)/etc/opkg/keys
44 | wget https://github.com/4IceG/Modem-extras/raw/main/myrepo/IceG-repo.pub -O $(1)/etc/opkg/keys/0a0f903b916f6cb5
45 | endef
46 |
47 | $(eval $(call BuildPackage,repo-4iceg))
48 |
--------------------------------------------------------------------------------
/simplefailover/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=simplefailover
4 | PKG_VERSION:=20160218
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/simplefailover
10 | SECTION:=net
11 | CATEGORY:=Network
12 | TITLE:=Simple failover WAN<->WAN2
13 | MAINTAINER:=Cezary Jackiewicz
14 | PKGARCH:=all
15 | endef
16 |
17 | define Package/simplefailover/description
18 | Simple failover WAN<->WAN2
19 | endef
20 |
21 | define Build/Prepare
22 | endef
23 |
24 | define Build/Configure
25 | endef
26 |
27 | define Build/Compile
28 | endef
29 |
30 | define Package/simplefailover/install
31 | $(CP) ./files/* $(1)
32 | endef
33 |
34 | $(eval $(call BuildPackage,simplefailover))
35 |
--------------------------------------------------------------------------------
/simplefailover/files/etc/config/simplefailover:
--------------------------------------------------------------------------------
1 | config simplefailover
2 | option wan_main wan
3 | option wan_backup wan2
4 | option host 8.8.4.4
5 | option interval 5
6 |
--------------------------------------------------------------------------------
/simplefailover/files/etc/init.d/simplefailover:
--------------------------------------------------------------------------------
1 | #!/bin/sh /etc/rc.common
2 |
3 | # (c) 2010-2016 Cezary Jackiewicz
4 |
5 | START=99
6 |
7 | start() {
8 | /usr/bin/simplefailover &
9 | }
10 |
11 | stop() {
12 | kill $(pidof simplefailover)
13 | }
14 |
--------------------------------------------------------------------------------
/sunwait/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=sunwait
4 | PKG_VERSION:=1.0
5 | PKG_RELEASE:=1
6 |
7 | PKG_BUILD_PARALLEL:=1
8 |
9 | include $(INCLUDE_DIR)/package.mk
10 |
11 | define Package/sunwait
12 | SECTION:=utils
13 | CATEGORY:=Utilities
14 | TITLE:=Calculate sunrise and sunset
15 | URL:=https://github.com/probonopd/sunwait
16 | endef
17 |
18 | define Package/sunwait/description
19 | Calculate sunrise and sunset, as well as civil, nautical, and astronomical twilights.
20 | Has features that make it useful for home automation tasks.
21 | endef
22 |
23 | define Build/Prepare
24 | mkdir -p $(PKG_BUILD_DIR)
25 | $(CP) ./src/* $(PKG_BUILD_DIR)/
26 | endef
27 |
28 | define Package/sunwait/install
29 | $(INSTALL_DIR) $(1)/usr/bin
30 | $(INSTALL_BIN) $(PKG_BUILD_DIR)/sunwait $(1)/usr/bin
31 | endef
32 |
33 | $(eval $(call BuildPackage,sunwait))
34 |
--------------------------------------------------------------------------------
/sunwait/src/Makefile:
--------------------------------------------------------------------------------
1 | LIBS += -lm
2 | OBJS = main.o print.o sunriset.o
3 |
4 | sunwait: $(OBJS)
5 | $(CC) -o sunwait $(CFLAGS) $(OBJS) $(LIBS)
6 |
7 | clean:
8 | rm *.o sunwait
9 |
--------------------------------------------------------------------------------
/sunwait/src/README.md:
--------------------------------------------------------------------------------
1 | sunwait
2 | =======
3 |
4 | GitHub clone based on http://www.risacher.org/sunwait/
5 |
--------------------------------------------------------------------------------
/sysinfo/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=sysinfo
4 | PKG_VERSION:=20210313
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/sysinfo
10 | SECTION:=utils
11 | CATEGORY:=Utilities
12 | TITLE:=eko.one.pl Services
13 | PKGARCH:=all
14 | endef
15 |
16 | define Build/Compile
17 | endef
18 |
19 | define Package/sysinfo/install
20 | $(CP) ./files/* $(1)
21 | endef
22 |
23 | $(eval $(call BuildPackage,sysinfo))
24 |
25 |
--------------------------------------------------------------------------------
/sysinfo/files/etc/profile.d/99-sysinfo.sh:
--------------------------------------------------------------------------------
1 | /sbin/sysinfo.sh
2 |
--------------------------------------------------------------------------------
/telemetry/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=telemetry
4 | PKG_VERSION:=20230408
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/telemetry
10 | SECTION:=net
11 | CATEGORY:=Network
12 | TITLE:=telemetry
13 | MAINTAINER:=Cezary Jackiewicz
14 | PKGARCH:=all
15 | endef
16 |
17 | define Build/Prepare
18 | endef
19 |
20 | define Build/Configure
21 | endef
22 |
23 | define Build/Compile
24 | endef
25 |
26 | define Package/telemetry/install
27 | $(CP) ./files/* $(1)
28 | endef
29 |
30 | $(eval $(call BuildPackage,telemetry))
31 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/board:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Device model"
4 | else
5 | cat /tmp/sysinfo/model
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/conntrack:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Tracked connections"
4 | else
5 | cat /proc/sys/net/netfilter/nf_conntrack_count
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/freememory:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Free memory"
4 | else
5 | awk '
6 | BEGIN{f=0;b=0;c=0}
7 | /^MemFree:/ {f=($2*1024)}
8 | /^Buffers:/ {b=($2*1024)}
9 | /^Cached:/ {c=($2*1024)}
10 | END {printf "%s", f+b+c}
11 | ' /proc/meminfo
12 | fi
13 | exit 0
14 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/gps:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "GPS"
4 | else
5 | T=$(ubus call gps info)
6 | AGE=$(echo "$T" | jsonfilter -q -e '@.age')
7 | [ -z "$AGE" ] && AGE=9999
8 | [ "$AGE" -le 5 ] && echo "$T" | jsonfilter -e '@.latitude' -e '@.longitude'
9 | fi
10 | exit 0
11 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/hostname:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Device name"
4 | else
5 | cat /proc/sys/kernel/hostname
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/ident:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Device ID"
4 | else
5 | grep -q br-lan /proc/net/dev && IF=br-lan || IF=eth0
6 | md5sum /sys/class/net/$IF/address | cut -f1 -d" "
7 | fi
8 | exit 0
9 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/load:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Load 1/5/15m"
4 | else
5 | awk '{printf "%s\n%s\n%s\n", $1, $2, $3}' /proc/loadavg
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/load15m:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Load 15m"
4 | else
5 | awk '{printf "%s", $3}' /proc/loadavg
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/load1m:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Load 1m"
4 | else
5 | awk '{printf "%s", $1}' /proc/loadavg
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/load5m:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Load 5m"
4 | else
5 | awk '{printf "%s", $2}' /proc/loadavg
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/mac:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Device MAC"
4 | else
5 | cat /sys/class/net/eth0/address
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/modemuqmi:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Modem QMI - RSSI"
4 | else
5 | PORT=$(uci -q get network.wan.device)
6 |
7 | uqmi -d $PORT --get-signal-info | jsonfilter -q -e '@.rssi'
8 | fi
9 | exit 0
10 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/systemversion:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "System version"
4 | else
5 | awk -F= '/DISTRIB_DESCRIPTION/{print $2}' /etc/openwrt_release | xargs
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/uptime:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Uptime"
4 | else
5 | awk '{printf "%d", $1}' /proc/uptime
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/wanip:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "WAN IP address"
4 | else
5 | I=$(ubus call network.interface status '{"interface":"wan"}' | jsonfilter -e '@.l3_device')
6 | [ -z "$I" ] && exit 0
7 | ip -4 addr show dev $I | awk '/inet/{gsub(/\/.*/,""); print $2}'
8 | fi
9 | exit 0
10 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/wanproto:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "WAN protocol"
4 | else
5 | ifstatus wan | jsonfilter -q -e @.proto | xargs
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/wanrx:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Downloaded data on WAN"
4 | else
5 | IFNAME=$(ifstatus wan | jsonfilter -q -e '@.l3_device')
6 | [ -z "$IFNAME" ] && exit 0
7 | cat /sys/class/net/$IFNAME/statistics/rx_bytes
8 | fi
9 | exit 0
10 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/wantransfer:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Downloaded data on WAN"
4 | else
5 | IFNAME=$(ifstatus wan | jsonfilter -q -e '@.l3_device')
6 | [ -z "$IFNAME" ] && exit 0
7 | cat /sys/class/net/$IFNAME/statistics/tx_bytes
8 | cat /sys/class/net/$IFNAME/statistics/rx_bytes
9 | fi
10 | exit 0
11 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/wantx:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Uploaded data on WAN"
4 | else
5 | IFNAME=$(ifstatus wan | jsonfilter -q -e '@.l3_device')
6 | [ -z "$IFNAME" ] && exit 0
7 | cat /sys/class/net/$IFNAME/statistics/tx_bytes
8 | fi
9 | exit 0
10 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/wanuptime:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "WAN uptime"
4 | else
5 | ifstatus wan | jsonfilter -q -e @.uptime | xargs
6 | fi
7 | exit 0
8 |
--------------------------------------------------------------------------------
/telemetry/files/usr/lib/telemetry/wlanclients:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | if [ "x$1" = "xinfo" ]; then
3 | echo "Connected WiFi clients"
4 | else
5 | IFACES=$(ubus call network.wireless status | jsonfilter -q -e '@.*.interfaces[*].ifname')
6 | ALL=0
7 | for i in $IFACES; do
8 | CNT=$(iw dev $i station dump | grep -c Station)
9 | ALL=$((ALL+CNT))
10 | done
11 | echo "$ALL"
12 | fi
13 | exit 0
14 |
--------------------------------------------------------------------------------
/tplinkmodem-helper/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=tplinkmodem-helper
4 | PKG_VERSION:=20180304
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/tplinkmodem-helper
10 | SECTION:=utils
11 | CATEGORY:=Utilities
12 | TITLE:=TP-LINK Archer MR200/TL-MR6400 modem helper
13 | PKGARCH:=all
14 | DEPENDS:=+comgt
15 | endef
16 |
17 | define Build/Compile
18 | endef
19 |
20 | define Package/tplinkmodem-helper/install
21 | $(CP) ./files/* $(1)
22 | endef
23 |
24 | $(eval $(call BuildPackage,tplinkmodem-helper))
25 |
--------------------------------------------------------------------------------
/tplinkmodem-helper/files/etc/gcom/runcommand.gcom:
--------------------------------------------------------------------------------
1 | # run AT-command from environment
2 | opengt
3 | set com 115200n81
4 | set senddelay 0.02
5 | waitquiet 1 0.2
6 | flash 0.1
7 |
8 | :start
9 | print "sending -> ",$env("COMMAND"),"\n"
10 | send $env("COMMAND")
11 | send "^m"
12 |
13 | waitfor 15 "OK","ERR","ERROR","COMMAND NOT SUPPORT"
14 | if % = 0 goto continue
15 | if % = 1 goto error
16 | if % = 2 goto error
17 | if % = 3 goto notsupported
18 |
19 | print "Timeout running AT-command\n"
20 | exit 1
21 |
22 | :error
23 | print "Error running AT-command\n"
24 | exit 1
25 |
26 | :notsupported
27 | print "AT-command not supported\n"
28 | exit 1
29 |
30 | :continue
31 | exit 0
32 |
--------------------------------------------------------------------------------
/tplinkmodem-helper/files/etc/gcom/tplink.gcom:
--------------------------------------------------------------------------------
1 | opengt
2 | set com 115200n81
3 | set senddelay 0.02
4 | waitquiet 0.02 0.02
5 | flash 0.02
6 |
7 | :start
8 | send "at+tpweb=\"{\"module\":\"wan\",\"action\":0}\"^m"
9 | get 1 "" $s
10 | print $s
11 |
12 | send "at+tpweb=\"{\"module\":\"simLock\",\"action\":0}\"^m"
13 | get 1 "" $s
14 | print $s
15 |
16 | exit 0
17 |
--------------------------------------------------------------------------------
/tplinkmodem-helper/files/etc/hotplug.d/iface/99-tplink:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | [ $ACTION = "ifup" ] || exit 0
3 | [ $INTERFACE = "wan" ] || exit 0
4 |
5 | PORT=/dev/ttyUSB0
6 | sleep 3
7 | [ -e $PORT ] || exit 0
8 |
9 | APN=$(uci -q get network.wan.apn)
10 | [ -z "$APN" ] && exit 0
11 |
12 | O=$(gcom -d $PORT -s /etc/gcom/tplink.gcom)
13 |
14 | PINSTATE=$(echo "$O" | awk '/pinState/{gsub("+tpweb:","");print $0}' | jsonfilter -e '@.pinState')
15 | if [ "x$PINSTATE" = "x1" ]; then
16 | PIN=$(uci -q get network.wan.pincode)
17 | if [ -n "$PIN" ]; then
18 | COMMAND="at+tpweb=\"{\"module\":\"simLock\",\"action\":4,\"autoUnlock\":false,\"pin\":\"$PIN\"}\"" gcom -d $PORT -s /etc/gcom/runcommand.gcom
19 | fi
20 | fi
21 |
22 | LASTPROFILE=$(echo "$O" | awk '/profileName/{gsub("+tpweb:","");print $0}' | jsonfilter -e '@.profileSettings.list[-1].profileName')
23 | USER=$(uci -q get network.wan.username)
24 | PASS=$(uci -q get network.wan.password)
25 | if [ "$APN" != "$LASTPROFILE" ]; then
26 | COMMAND="at+tpweb=\"{\"module\":\"wan\",\"action\":3,\"profileSettings\":{\"list\":[{\"profileID\":1}],\"activeProfile\":1,\"defaultProfile\":1}}\"" gcom -d $PORT -s /etc/gcom/runcommand.gcom
27 | sleep 2
28 | COMMAND="at+tpweb=\"{\"module\":\"wan\",\"action\":2,\"profileSettings\":{\"list\":[{\"profileID\":1,\"profileName\":\"$APN\",\"pdpType\":0,\"ipv4Apn\":\"$APN\",\"ipv4ApnType\":0,\"ipv4Username\":\"$USER\",\"ipv4Password\":\"$PASS\",\"ipv4AuthType\":2,\"ipv6Apn\":\"\",\"ipv6ApnType\":0,\"ipv6Username\":\"\",\"ipv6Password\":\"\",\"ipv6AuthType\":2}],\"activeProfile\":1,\"defaultProfile\":1}}\"" gcom -d $PORT -s /etc/gcom/runcommand.gcom
29 | fi
30 | exit 0
31 |
--------------------------------------------------------------------------------
/ugps-helper/Makefile:
--------------------------------------------------------------------------------
1 | include $(TOPDIR)/rules.mk
2 |
3 | PKG_NAME:=ugps-helper
4 | PKG_VERSION:=20240126
5 | PKG_RELEASE:=1
6 |
7 | include $(INCLUDE_DIR)/package.mk
8 |
9 | define Package/ugps-helper
10 | SECTION:=utils
11 | CATEGORY:=Utilities
12 | TITLE:=ugps helper
13 | MAINTAINER:=Cezary Jackiewicz
14 | PKGARCH:=all
15 | DEPENDS:=+sms-tool
16 | endef
17 |
18 | define Build/Compile
19 | endef
20 |
21 | define Package/ugps-helper/install
22 | $(CP) ./files/* $(1)
23 | endef
24 |
25 | $(eval $(call BuildPackage,ugps-helper))
26 |
--------------------------------------------------------------------------------
/ugps-helper/files/etc/gps.json:
--------------------------------------------------------------------------------
1 | {
2 | "05c69215": {
3 | "name": "Quectel EC20",
4 | "start": [
5 | "AT+QGPS=1"
6 | ],
7 | "cmd_tty": "/dev/ttyUSB2",
8 | "nmea_tty": "/dev/ttyUSB1"
9 | },
10 | "119968a2": {
11 | "name": "Sierra Wireless MC7710",
12 | "start": [
13 | "$GPS_START"
14 | ],
15 | "cmd_tty": "/dev/ttyUSB1",
16 | "nmea_tty": "/dev/ttyUSB1"
17 | },
18 | "1bc71040": {
19 | "name": "Telit LM940",
20 | "start": [
21 | "AT$GPSANTPORT=1",
22 | "AT$GPSNMUN=1,1,1,1,1,1,1",
23 | "AT$GPSP=1"
24 | ],
25 | "cmd_tty": "/dev/ttyUSB2",
26 | "nmea_tty": "/dev/ttyUSB1"
27 | },
28 | "20202033": {
29 | "name": "BroadMobi BM806U",
30 | "start": [
31 | "AT+GPSSTART"
32 | ],
33 | "cmd_tty": "/dev/ttyUSB2",
34 | "nmea_tty": "/dev/ttyUSB3"
35 | },
36 | "2c7c0125": {
37 | "name": "Quectel EC25",
38 | "start": [
39 | "AT+QGPS=1"
40 | ],
41 | "cmd_tty": "/dev/ttyUSB2",
42 | "nmea_tty": "/dev/ttyUSB1"
43 | },
44 | "2c7c0306": {
45 | "name": "Quectel EP06/EG06",
46 | "start": [
47 | "AT+QGPS=1"
48 | ],
49 | "cmd_tty": "/dev/ttyUSB2",
50 | "nmea_tty": "/dev/ttyUSB1"
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/ugps-helper/files/etc/hotplug.d/usb/99-ugps-helper:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # (c) 2023 Cezary Jackiewicz
4 |
5 | VENDOR=""
6 | PRODUCT=""
7 |
8 | log() {
9 | logger -t "ugps-helper" "$@"
10 | }
11 |
12 | find_usb_attrs() {
13 | local usb_dir="/sys/$DEVPATH"
14 | [ -f "$usb_dir/idVendor" ] || usb_dir="${usb_dir%/*}"
15 |
16 | VENDOR=$(cat "$usb_dir/idVendor")
17 | PRODUCT=$(cat "$usb_dir/idProduct")
18 | }
19 |
20 | if [ "$ACTION" = "add" ] && [ "$DEVTYPE" = "usb_interface" ]; then
21 | case "$DEVICENAME" in
22 | *-*:*.*) : ;;
23 | *) exit 0 ;;
24 | esac
25 |
26 | find_usb_attrs
27 |
28 | PORT=${DEVICENAME##*\.}
29 | # log "$DEVICENAME: Vendor=${VENDOR:-?} Product=${PRODUCT:-?} Port=${PORT:-?}"
30 |
31 | . /usr/share/libubox/jshn.sh
32 | json_load "$(cat /etc/gps.json)"
33 | json_select "${VENDOR}${PRODUCT}" && {
34 | json_get_vars name cmd_tty start
35 | CMDPORT=${cmd_tty##*[^0-9]}
36 | if [ $CMDPORT = $PORT ]; then
37 | TTY=$(find /sys${DEVPATH} -maxdepth 1 -type d -name "tty*${PORT}")
38 | TTY=${TTY##*/}
39 | log "Found GPS: ${name}, cmd port: /dev/${TTY}"
40 |
41 | json_select "start"
42 | idx="1"
43 | while json_get_type atcmd $idx && [ "$atcmd" = string ]; do
44 | json_get_var atcmd "$((idx++))"
45 | sms_tool -d /dev/$TTY at ${atcmd}
46 | done
47 | fi
48 | }
49 | fi
50 |
51 | exit 0
52 |
--------------------------------------------------------------------------------
/ugps-helper/files/etc/init.d/ugps-helper:
--------------------------------------------------------------------------------
1 | #!/bin/sh /etc/rc.common
2 |
3 | START=81
4 |
5 | USE_PROCD=1
6 | PROG=/usr/bin/ugps-helper
7 |
8 | start_service() {
9 | local disabled="$(uci get gps.@gps[0].disabled || echo 0)"
10 | [ "$disabled" = "0" ] || return
11 |
12 | procd_open_instance
13 | procd_set_param command "$PROG"
14 | procd_close_instance
15 | }
16 |
--------------------------------------------------------------------------------
/ugps-helper/files/usr/bin/ugps-helper:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # (c) 2023 Cezary Jackiewicz
4 |
5 | . /usr/share/libubox/jshn.sh
6 | json_load "$(cat /etc/gps.json)"
7 |
8 | _DEVS=$(awk '/Vendor=/{gsub(/.*Vendor=| ProdID=| Rev.*/,"");print}' /sys/kernel/debug/usb/devices | sort -u)
9 | for usbid in $_DEVS; do
10 | _json_no_warning=1
11 | json_select "$usbid" && {
12 | json_get_vars name start cmd_tty nmea_tty
13 | logger "Found GPS: ${name}, cmd port: ${cmd_tty}, NMEA port: ${nmea_tty}"
14 | tty=$(uci -q get gps.@gps[0].tty)
15 | case "$tty" in
16 | "/"*)
17 | true
18 | ;;
19 | *)
20 | tty="/dev/$tty"
21 | ;;
22 | esac
23 | if [ -e ${nmea_tty} ] && [ -e ${cmd_tty} ]; then
24 | if [ "x$tty" != "x${nmea_tty}" ]; then
25 | uci set gps.@gps[0].tty=${nmea_tty}
26 | uci commit gps
27 | /etc/init.d/ugps restart
28 | fi
29 |
30 | json_select "start"
31 | idx="1"
32 | while json_get_type atcmd $idx && [ "$atcmd" = string ]; do
33 | json_get_var atcmd "$((idx++))"
34 | sms_tool -d ${cmd_tty} at ${atcmd}
35 | done
36 | break
37 | fi
38 | }
39 | done
40 |
41 | exit 0
42 |
--------------------------------------------------------------------------------