├── 3ginfo ├── Makefile ├── files-html-old │ ├── etc │ │ └── init.d │ │ │ └── 3ginfo │ └── usr │ │ └── share │ │ └── 3ginfo │ │ ├── cgi-bin │ │ ├── limit.sh │ │ ├── onoff.sh │ │ ├── signal.sh │ │ ├── sms.sh │ │ └── ussd.sh │ │ ├── index.html │ │ ├── loader.gif │ │ ├── scripts │ │ ├── cyfrowy_polsat.sh │ │ ├── functions.sh │ │ ├── lycamobile_pdu.gcom │ │ ├── lycamobile_pdu.sh │ │ ├── mbank.gcom │ │ ├── mbank_pdu.gcom │ │ ├── ofnk.gcom │ │ ├── ofnk.sh │ │ ├── ofnk2.gcom │ │ ├── ofnk2.sh │ │ ├── play_fresh.gcom │ │ ├── play_fresh2.gcom │ │ ├── play_fresh2.sh │ │ ├── play_fresh_pdu.gcom │ │ ├── play_fresh_pdu.sh │ │ ├── tmobile_pdu.gcom │ │ ├── tmobile_pdu.sh │ │ ├── virginmobile.gcom │ │ ├── virginmobile_pdu.gcom │ │ └── virginmobile_pdu.sh │ │ ├── signal.html │ │ ├── status.html.en │ │ ├── status.html.et │ │ ├── status.html.it │ │ ├── status.html.pl │ │ └── uhttpd.conf ├── files-html │ ├── etc │ │ └── init.d │ │ │ └── 3ginfo │ └── usr │ │ └── share │ │ └── 3ginfo │ │ └── html │ │ ├── 3ginfo.css │ │ ├── 3ginfo.js │ │ ├── bootstrap.min.css │ │ ├── cgi-bin │ │ ├── info.sh │ │ └── infoproducts.sh │ │ ├── html5shiv.min.js │ │ ├── i18n │ │ └── pl.json │ │ ├── index.html │ │ └── respond.min.js ├── files-lite │ └── usr │ │ └── share │ │ └── 3ginfo-lite │ │ ├── 3ginfo.gcom │ │ └── 3ginfo.sh ├── files-qmisignal │ └── www │ │ ├── cgi-bin │ │ └── qmisignal.sh │ │ ├── qmisignal.html │ │ └── qmisignal.js ├── files-text-old │ ├── etc │ │ ├── config │ │ │ └── 3ginfo │ │ ├── hotplug.d │ │ │ └── usb │ │ │ │ └── 99-3ginfo │ │ └── uci-defaults │ │ │ └── 99-3ginfo │ └── usr │ │ └── share │ │ └── 3ginfo │ │ ├── cgi-bin │ │ └── 3ginfo.sh │ │ ├── mccmnc.dat │ │ ├── msg.dat.en │ │ ├── msg.dat.et │ │ ├── msg.dat.it │ │ ├── msg.dat.pl │ │ ├── scripts │ │ ├── 3ginfo.gcom │ │ ├── alcatel_hilink.sh │ │ ├── huawei_hilink-login.sh │ │ ├── huawei_hilink.sh │ │ ├── probeport.gcom │ │ └── zte.sh │ │ ├── status.json │ │ ├── status.txt.en │ │ ├── status.txt.et │ │ ├── status.txt.it │ │ └── status.txt.pl └── files-text │ ├── etc │ └── config │ │ └── 3ginfo │ └── usr │ ├── bin │ └── 3ginfo │ └── share │ └── 3ginfo │ ├── addon │ └── ecm │ │ └── huawei.sh │ ├── check.gcom │ ├── detectdevice.sh │ ├── detectsection.sh │ ├── info.gcom │ ├── infonetwork.sh │ ├── infoparams.sh │ ├── infoproduct.sh │ ├── mccmnc.dat │ └── vendorproduct.gcom ├── README.md ├── backupandrestore-apk ├── Makefile └── files │ ├── etc │ └── uci-defaults │ │ └── backupandrestore.sh │ └── usr │ └── bin │ ├── backuppkgslist.sh │ └── restorepkgslist.sh ├── backupandrestore-opkg ├── Makefile └── files │ ├── etc │ └── uci-defaults │ │ └── backupandrestore.sh │ └── usr │ └── bin │ ├── backuppkgslist.sh │ └── restorepkgslist.sh ├── bitmeteros ├── Makefile └── files │ └── etc │ └── init.d │ └── bitmeteros ├── comgt-hso ├── Makefile └── files │ ├── etc │ ├── chatscripts │ │ ├── hso.chat │ │ └── hsohup.chat │ └── gcom │ │ └── setuser.gcom │ └── lib │ └── netifd │ └── proto │ └── hso.sh ├── downloadmanager ├── Makefile └── files │ ├── etc │ ├── aria2.conf │ └── hotplug.d │ │ └── block │ │ └── 99-aria2 │ └── usr │ └── bin │ └── aria2.sh ├── easyconfig ├── Makefile ├── README.md ├── addon │ ├── config.json │ ├── easyconfig_statistics.sh │ └── manuf.js └── files │ ├── etc │ ├── config │ │ └── easyconfig │ ├── easyconfig_leds.user │ ├── easyconfig_watchdog.user │ ├── hotplug.d │ │ ├── dhcp │ │ │ └── 99-easyconfig │ │ ├── iface │ │ │ └── 99-easyconfig │ │ └── ntp │ │ │ └── 99-easyconfig │ ├── init.d │ │ └── easyconfig_adblock │ └── uci-defaults │ │ └── zz-easyconfig.sh │ ├── usr │ ├── bin │ │ ├── easyconfig_cron_helper.sh │ │ ├── easyconfig_findmodeminterfaces.sh │ │ ├── easyconfig_firewall_helper.sh │ │ ├── easyconfig_logs.sh │ │ ├── easyconfig_modeminfo.sh │ │ ├── easyconfig_nightmode.sh │ │ ├── easyconfig_pincode.sh │ │ ├── easyconfig_setapn.sh │ │ ├── easyconfig_statistics.sh │ │ ├── easyconfig_statistics.uc │ │ └── easyconfig_watchdog.sh │ ├── libexec │ │ └── rpcd │ │ │ └── easyconfig │ └── share │ │ ├── easyconfig │ │ ├── modem │ │ │ ├── addon │ │ │ │ ├── pci │ │ │ │ │ └── 105be0b0 │ │ │ │ └── usb │ │ │ │ │ ├── 11999071 │ │ │ │ │ ├── 11999091 │ │ │ │ │ ├── 16907588 │ │ │ │ │ ├── 20202033 │ │ │ │ │ ├── 03f0581d │ │ │ │ │ ├── 03f0a31d │ │ │ │ │ ├── 05c69026 │ │ │ │ │ ├── 05c69215 │ │ │ │ │ ├── 05c69625 │ │ │ │ │ ├── 05c6f601 │ │ │ │ │ ├── 0e8d7126 │ │ │ │ │ ├── 0e8d7127 │ │ │ │ │ ├── 119968a2 │ │ │ │ │ ├── 119990d3 │ │ │ │ │ ├── 12d11506 │ │ │ │ │ ├── 12d1155e │ │ │ │ │ ├── 12d1156c │ │ │ │ │ ├── 12d115c1 │ │ │ │ │ ├── 1435d181 │ │ │ │ │ ├── 1435d191 │ │ │ │ │ ├── 19d20167 │ │ │ │ │ ├── 19d20189 │ │ │ │ │ ├── 19d21275 │ │ │ │ │ ├── 19d21432 │ │ │ │ │ ├── 19d21485 │ │ │ │ │ ├── 19d21489 │ │ │ │ │ ├── 1bc71040 │ │ │ │ │ ├── 1bc71201 │ │ │ │ │ ├── 1e0e9000 │ │ │ │ │ ├── 1e0e9001 │ │ │ │ │ ├── 1e0e9003 │ │ │ │ │ ├── 1e2d00b3 │ │ │ │ │ ├── 1e2d00b7 │ │ │ │ │ ├── 2c7c0125 │ │ │ │ │ ├── 2c7c0306 │ │ │ │ │ ├── 2c7c030b │ │ │ │ │ ├── 2c7c0512 │ │ │ │ │ ├── 2c7c0620 │ │ │ │ │ ├── 2c7c0800 │ │ │ │ │ ├── 2c7c0801 │ │ │ │ │ ├── 2c7c0900 │ │ │ │ │ ├── 2c7c6026 │ │ │ │ │ ├── 2cb70007 │ │ │ │ │ ├── 2cb70104 │ │ │ │ │ ├── 2cb70104.fm150 │ │ │ │ │ ├── 2cb70104.fm190 │ │ │ │ │ ├── 2cd20001 │ │ │ │ │ ├── 2cd20004 │ │ │ │ │ ├── 413c81b1 │ │ │ │ │ ├── 413c81b6 │ │ │ │ │ ├── 413c81d7 │ │ │ │ │ └── 8087095a │ │ │ ├── check.gcom │ │ │ ├── checkext.gcom │ │ │ ├── detect.sh │ │ │ ├── info.gcom │ │ │ ├── info.sh │ │ │ ├── info_modemmanager.sh │ │ │ ├── info_qmi.sh │ │ │ ├── mccmnc.dat │ │ │ └── vendorproduct.gcom │ │ └── rc.button │ │ │ ├── killswitch │ │ │ ├── leds │ │ │ ├── vpn │ │ │ ├── wifitoggle │ │ │ └── wol │ │ ├── luci │ │ └── menu.d │ │ │ └── easyconfig.json │ │ └── rpcd │ │ └── acl.d │ │ └── easyconfig.json │ └── www │ ├── easyconfig.html │ ├── easyconfig │ ├── bootstrap.min.css │ ├── dns.js │ ├── easyconfig.css │ ├── easyconfig.js │ ├── favicon.ico │ ├── feather.min.js │ ├── html5shiv.min.js │ ├── index.html │ ├── manuf.js │ └── respond.min.js │ └── luci-static │ └── resources │ └── view │ └── easyconfig.js ├── ekooneplconfigs ├── Makefile └── files │ ├── generic │ └── etc │ │ ├── board.d │ │ └── 97-eko1 │ │ ├── profile.d │ │ ├── busybox-history-file.sh │ │ └── prompt.sh │ │ ├── sysinfo.d │ │ ├── 10_cpu_cur_freq │ │ ├── 20_cpu_temperature │ │ └── 30_wifi_temperature │ │ └── uci-defaults │ │ └── zz-eko1 │ ├── ipq806x_generic │ └── etc │ │ └── sysinfo.d │ │ └── 20_thermal_zone │ ├── mediatek_filogic │ └── etc │ │ └── sysinfo.d │ │ └── 40_ethernet_temperature │ ├── mvebu_cortexa53 │ └── etc │ │ └── sysinfo.d │ │ └── 40_ram_temperature │ ├── mvebu_cortexa9 │ └── etc │ │ └── sysinfo.d │ │ └── 40_ram_temperature │ ├── qualcommax_ipq807x │ └── root │ │ └── resize-root.sh │ └── x86_64 │ ├── etc │ ├── sysinfo.d │ │ └── 40_cpu_power │ └── uci-defaults │ │ └── resize-root.sh │ └── root │ └── resize-root.sh ├── ekooneplluciprofiles └── Makefile ├── ekooneplstat ├── Makefile └── files │ └── sbin │ ├── stat-cron.sh │ └── stat.sh ├── ekooneplusbprofiles └── Makefile ├── luci-app-ekooneplstat ├── Makefile └── files │ ├── usr │ ├── lib │ │ └── lua │ │ │ └── luci │ │ │ └── i18n │ │ │ └── ekooneplstat.po │ └── share │ │ ├── luci │ │ └── menu.d │ │ │ └── luci-app-ekooneplstat.json │ │ └── rpcd │ │ └── acl.d │ │ └── luci-app-ekooneplstat.json │ └── www │ └── luci-static │ └── resources │ └── view │ └── ekooneplstat.js ├── luci-proto-wwan ├── Makefile └── files │ └── usr │ └── lib │ └── lua │ └── luci │ └── model │ ├── cbi │ └── admin_network │ │ ├── proto_ncm.lua │ │ ├── proto_qmi.lua │ │ └── proto_wwan.lua │ └── network │ ├── proto_ncm.lua │ ├── proto_qmi.lua │ └── proto_wwan.lua ├── megatools └── Makefile ├── modemband ├── Makefile ├── README.md └── files │ └── usr │ ├── bin │ └── modemband.sh │ └── share │ └── modemband │ ├── 11999071 │ ├── 11999079 │ ├── 11999091 │ ├── 20202033 │ ├── 03f00857 │ ├── 03f00a57 │ ├── 03f0581d │ ├── 03f0a31d │ ├── 05c69215 │ ├── 05c69625 │ ├── 0e8d7126 │ ├── 0e8d7127 │ ├── 12d11506 │ ├── 12d1155e │ ├── 12d1156c │ ├── 12d11573 │ ├── 12d115bb │ ├── 12d115c1 │ ├── 12d115c3 │ ├── 12d11f1a │ ├── 19d20016 │ ├── 19d21432 │ ├── 19d21485 │ ├── 19d21489 │ ├── 1bc71040 │ ├── 1bc71900 │ ├── 1bc71901 │ ├── 1bc71910 │ ├── 1e0e9001 │ ├── 1e2d00b3 │ ├── 2c7c0125 │ ├── 2c7c0306EG06-E │ ├── 2c7c0306EP06-E │ ├── 2c7c0512EG12-EA │ ├── 2c7c0512EG18-EA │ ├── 2c7c0512EM12-G │ ├── 2c7c0512EM12G-MSFT │ ├── 2c7c0620 │ ├── 2c7c0800RG500Q-EA │ ├── 2c7c0800RG502Q-EA │ ├── 2c7c0800RM500Q-GL │ ├── 2c7c0800RM502Q-AE │ ├── 2c7c0800RM502Q-GL │ ├── 2c7c0800RM505Q-AE │ ├── 2c7c0801 │ ├── 2c7c0900 │ ├── 2c7c6026 │ ├── 2cb70007 │ ├── 413c81b6 │ ├── 413c81d7 │ ├── 8087095a │ ├── _fibocom_fm350_common │ ├── _foxconn_common1 │ ├── _foxconn_common2 │ ├── _quectel_common │ ├── _quectel_common2 │ └── _zte_common ├── motion-ffmpeg ├── Makefile └── patches │ └── 100-musl-compat.patch ├── n2n-2.4-stable ├── Makefile └── files │ ├── n2n.config │ └── n2n.init ├── oscam ├── Makefile └── files │ ├── oscam.conf │ ├── oscam.init │ ├── oscam.server │ └── oscam.user ├── pingraw ├── Makefile └── src │ ├── Makefile │ └── pingraw.c ├── plugin-gargoyle-3ginfo-extended ├── Makefile └── files │ ├── etc │ └── uci-defaults │ │ └── plugin-gargoyle-3ginfo-extended │ ├── usr │ └── lib │ │ └── gargoyle │ │ └── 3ginfo_extended │ │ ├── info.sh │ │ ├── mccmnc.dat │ │ └── vendorproduct.gcom │ └── www │ ├── 3ginfo_extended.sh │ ├── i18n │ ├── English-EN │ │ └── 3ginfo_extended.js │ ├── Polish-PL │ │ └── 3ginfo_extended.js │ └── universal │ │ └── menu-status_3ginfo_extended.txt │ ├── img │ └── 3ginfo_extended │ │ ├── signal0.png │ │ ├── signal10.png │ │ ├── signal100.png │ │ ├── signal20.png │ │ ├── signal30.png │ │ ├── signal40.png │ │ ├── signal50.png │ │ ├── signal60.png │ │ ├── signal70.png │ │ ├── signal80.png │ │ └── signal90.png │ └── js │ └── 3ginfo_extended.js ├── plugin-gargoyle-3ginfo ├── Makefile └── files │ ├── etc │ └── uci-defaults │ │ └── plugin-gargoyle-3ginfo │ └── www │ ├── 3ginfo.sh │ ├── i18n │ ├── English-EN │ │ └── 3ginfo.js │ ├── Polish-PL │ │ └── 3ginfo.js │ └── universal │ │ └── menu-status_3ginfo.txt │ ├── img │ ├── signal0.png │ ├── signal10.png │ ├── signal100.png │ ├── signal20.png │ ├── signal30.png │ ├── signal40.png │ ├── signal50.png │ ├── signal60.png │ ├── signal70.png │ ├── signal80.png │ └── signal90.png │ └── js │ └── 3ginfo.js ├── plugin-gargoyle-apcups ├── Makefile └── files │ └── www │ ├── i18n │ ├── English-EN │ │ └── ups.js │ ├── Polish-PL │ │ └── ups.js │ └── universal │ │ └── menu-status_ups.txt │ ├── js │ └── ups.js │ └── ups.sh ├── plugin-gargoyle-atcmd ├── Makefile └── files │ ├── etc │ └── uci-defaults │ │ └── plugin-gargoyle-atcmd │ └── www │ ├── atcmd.sh │ ├── i18n │ ├── English-EN │ │ └── atcmd.js │ ├── Polish-PL │ │ └── atcmd.js │ └── universal │ │ └── menu-system_atcmd.txt │ └── js │ └── atcmd.js ├── plugin-gargoyle-iradio ├── Makefile └── files │ ├── etc │ └── config │ │ └── iradio │ └── www │ ├── i18n │ ├── English-EN │ │ └── iradio.js │ ├── Polish-PL │ │ └── iradio.js │ └── universal │ │ └── menu-status_iradio.txt │ ├── iradio.sh │ └── js │ └── iradio.js ├── plugin-gargoyle-management ├── Makefile └── files │ └── www │ ├── hooks │ └── login │ │ ├── 091-management.js │ │ └── 091-management.sh │ └── utility │ └── run_commands1.sh ├── plugin-gargoyle-modemband ├── Makefile └── files │ ├── etc │ └── uci-defaults │ │ └── plugin-gargoyle-modemband │ └── www │ ├── i18n │ ├── English-EN │ │ └── modemband.js │ ├── Polish-PL │ │ └── modemband.js │ └── universal │ │ └── menu-system_modemband.txt │ ├── js │ └── modemband.js │ └── modemband.sh ├── plugin-gargoyle-msg ├── Makefile └── files │ └── www │ ├── hooks │ └── login │ │ ├── 090-msg.js │ │ └── 090-msg.sh │ └── msgip.sh ├── plugin-gargoyle-smsbox ├── Makefile └── files │ ├── etc │ ├── config │ │ └── smsbox │ └── uci-defaults │ │ └── plugin-gargoyle-smsbox │ └── www │ ├── i18n │ ├── English-EN │ │ └── smsbox.js │ ├── Polish-PL │ │ └── smsbox.js │ └── universal │ │ └── menu-system_smsbox.txt │ ├── js │ └── smsbox.js │ └── smsbox.sh ├── plugin-gargoyle-usbrelay ├── Makefile └── files │ ├── etc │ └── config │ │ └── usbrelay │ ├── usr │ └── lib │ │ └── gargoyle │ │ └── usbrelay.sh │ └── www │ ├── i18n │ ├── English-EN │ │ ├── usbrelay.js │ │ └── usbrelay_schedule.js │ ├── Polish-PL │ │ ├── usbrelay.js │ │ └── usbrelay_schedule.js │ └── universal │ │ └── menu-status_usbrelay.txt │ ├── img │ ├── green-power-button.png │ ├── readme.txt │ └── red-power-button.png │ ├── js │ ├── usbrelay.js │ └── usbrelay_schedule.js │ ├── usbrelay.sh │ └── usbrelay_schedule.sh ├── repo-4iceg └── Makefile ├── simplefailover ├── Makefile └── files │ ├── etc │ ├── config │ │ └── simplefailover │ └── init.d │ │ └── simplefailover │ └── usr │ └── bin │ └── simplefailover ├── sunwait ├── Makefile ├── README.md └── src │ ├── COPYING │ ├── Makefile │ ├── README.md │ ├── TAGS │ ├── main.c │ ├── print.c │ ├── sunriset.c │ └── sunriset.h ├── sysinfo ├── Makefile └── files │ ├── etc │ └── profile.d │ │ └── 99-sysinfo.sh │ └── sbin │ └── sysinfo.sh ├── telemetry ├── Makefile └── files │ ├── etc │ └── config │ │ └── telemetry │ └── usr │ ├── bin │ └── telemetry.sh │ └── lib │ └── telemetry │ ├── board │ ├── conntrack │ ├── freememory │ ├── gps │ ├── hostname │ ├── ident │ ├── load │ ├── load15m │ ├── load1m │ ├── load5m │ ├── mac │ ├── modemuqmi │ ├── systemversion │ ├── uptime │ ├── wanip │ ├── wanproto │ ├── wanrx │ ├── wantransfer │ ├── wantx │ ├── wanuptime │ └── wlanclients ├── tplinkmodem-helper ├── Makefile └── files │ └── etc │ ├── gcom │ ├── runcommand.gcom │ └── tplink.gcom │ └── hotplug.d │ └── iface │ └── 99-tplink └── ugps-helper ├── Makefile └── files ├── etc ├── gps.json ├── hotplug.d │ └── usb │ │ └── 99-ugps-helper └── init.d │ └── ugps-helper └── usr └── bin └── ugps-helper /3ginfo/files-html-old/etc/init.d/3ginfo: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | 3 | # (c) 2010-2019 Cezary Jackiewicz 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 |
50 | 51 |
USSD:

52 | 53 |
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 | $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 | 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 |

<%~ usbrelay.Relay %>

22 |
23 |
24 |
25 |
26 | 27 | 30 |
31 |
32 |
33 |
34 |
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 | --------------------------------------------------------------------------------