mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-30 04:55:13 +08:00
🌴 Sync 2026-03-05 23:51:42
This commit is contained in:
1 parent
97c049ed0a
commit
0acff03804
14253 files changed
+3893239
No files matched your search
@@ -0,0 +1,6 @@
|
||||
|
||||
config 3ginfo
|
||||
option device ''
|
||||
option http_port '81'
|
||||
option network 'wan'
|
||||
option pincode ''
|
||||
Executable
+138
@@ -0,0 +1,138 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# (c) 2024-2025 Cezary Jackiewicz <cezary@eko.one.pl>
|
||||
#
|
||||
|
||||
. /lib/functions.sh
|
||||
. /usr/share/libubox/jshn.sh
|
||||
|
||||
FORMAT=1
|
||||
[ "x$1" = "xjson" ] && FORMAT=2
|
||||
ECM=""
|
||||
|
||||
RES="/usr/share/modemdata"
|
||||
|
||||
format_conn_time() {
|
||||
CT=$1
|
||||
D=$(expr $CT / 60 / 60 / 24)
|
||||
H=$(expr $CT / 60 / 60 % 24)
|
||||
M=$(expr $CT / 60 % 60)
|
||||
S=$(expr $CT % 60)
|
||||
printf "%dd, %02d:%02d:%02d" $D $H $M $S
|
||||
}
|
||||
|
||||
SEPARATOR=""
|
||||
parse_section() {
|
||||
[ -n "$SEPARATOR" ] && echo "$SEPARATOR"
|
||||
local section="$1"
|
||||
config_get device "$section" device ""
|
||||
config_get network "$section" network ""
|
||||
config_get force_plmn "$section" force_plmn "0"
|
||||
|
||||
if echo "x$device" | grep -q "192.168."; then
|
||||
ECM="$RES/addon/ecm/huawei.sh $device"
|
||||
else
|
||||
ECM=""
|
||||
if [ ! -e /var/state/3ginfo-detected ]; then
|
||||
[ -z "$device" ] && device=$(/usr/share/3ginfo/detectdevice.sh)
|
||||
[ -z "$network" ] && network=$(/usr/share/3ginfo/detectsection.sh "$section")
|
||||
fi
|
||||
config_get pincode "$section" pincode ""
|
||||
if [ -n "$pincode" ] && [ ! -e /var/state/3ginfo-pincode ]; then
|
||||
[ -n "$device" ] && sms_tool -d "$device" at "at+cpin=\"$pincode\""
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$FORMAT" = "1" ]; then
|
||||
SEPARATOR="---"
|
||||
json_init
|
||||
if [ -n "$ECM" ]; then
|
||||
json_load "$($ECM product)"
|
||||
else
|
||||
json_load "$($RES/product.sh "$device")"
|
||||
fi
|
||||
json_get_vars vendor product revision imei iccid imsi
|
||||
echo "Device: ${vendor} ${product}"
|
||||
echo "Revision: ${revision}"
|
||||
echo "IMEI: ${imei}"
|
||||
echo "ICCID: ${iccid}"
|
||||
echo "IMSI: ${imsi}"
|
||||
echo ""
|
||||
|
||||
json_init
|
||||
json_load "$($RES/network.sh "$network")"
|
||||
json_get_vars conn_time_sec rx tx
|
||||
echo "Connected time: "$(format_conn_time ${conn_time_sec})
|
||||
echo "TX: ${tx}"
|
||||
echo "RX: ${rx}"
|
||||
echo ""
|
||||
|
||||
json_init
|
||||
if [ -n "$ECM" ]; then
|
||||
json_load "$($ECM params)"
|
||||
else
|
||||
json_load "$($RES/params.sh "$device" "$force_plmn")"
|
||||
fi
|
||||
json_get_vars signal operator_name operator_mcc operator_mnc country mode registration lac_dec lac_hex cid_dec cid_hex
|
||||
echo "Signal: ${signal} %"
|
||||
echo "Mode: ${mode}"
|
||||
echo "Operator: ${operator_name} (${operator_mcc} ${operator_mnc})"
|
||||
[ -n "$country" ] && echo "Country: ${country}"
|
||||
case $registration in
|
||||
0) REG="not registered";;
|
||||
1) REG="registered, home network";;
|
||||
2) REG="not registered, searching";;
|
||||
3) REG="registration denied";;
|
||||
5) REG="registered, roaming";;
|
||||
6) REG="registered for SMS only, home network";;
|
||||
7) REG="registered for SMS only, roaming";;
|
||||
*) REG="$registration";;
|
||||
esac
|
||||
echo "Registration: ${REG}"
|
||||
echo ""
|
||||
T="21;CellID: ${cid_dec} (${cid_hex})"
|
||||
T="${T}\n22;LAC: ${lac_dec} (${lac_hex})"
|
||||
if json_is_a addon array; then
|
||||
json_get_keys addon addon
|
||||
json_select addon
|
||||
for i in $addon; do
|
||||
json_select "$i"
|
||||
json_get_vars idx key value
|
||||
json_select ..
|
||||
if [ "$idx" = "10" ]; then
|
||||
T="${T}\n${idx};${key}: ${value/°/°}"
|
||||
else
|
||||
T="${T}\n${idx};${key}: ${value}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
echo -e "$T" | sort | awk -F[\;] '{print $2}'
|
||||
else
|
||||
SEPARATOR=","
|
||||
echo "["
|
||||
if [ -n "$ECM" ]; then
|
||||
$ECM product
|
||||
echo ","
|
||||
$RES/network.sh "$network"
|
||||
echo ","
|
||||
$ECM params
|
||||
else
|
||||
$RES/product.sh "$device"
|
||||
echo ","
|
||||
$RES/network.sh "$network"
|
||||
echo ","
|
||||
$RES/params.sh "$device" "$force_plmn"
|
||||
fi
|
||||
echo "]"
|
||||
fi
|
||||
}
|
||||
|
||||
config_load 3ginfo
|
||||
[ "$FORMAT" = "2" ] && echo '{"res":['
|
||||
config_foreach parse_section 3ginfo
|
||||
[ "$FORMAT" = "2" ] && echo ']}'
|
||||
touch /var/state/3ginfo-detected
|
||||
touch /var/state/3ginfo-pincode
|
||||
|
||||
exit 0
|
||||
@@ -0,0 +1,13 @@
|
||||
opengt
|
||||
set com 115200n81
|
||||
set comecho off
|
||||
set senddelay 0.01
|
||||
waitquiet 0.01 0.01
|
||||
|
||||
send "AT+CPIN?^m"
|
||||
waitfor 2 "OK" "+CME ERROR"
|
||||
if % = -1 goto timeout
|
||||
exit 0
|
||||
|
||||
:timeout
|
||||
exit 1
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# (c) 2023-2024 Cezary Jackiewicz <cezary@eko.one.pl>
|
||||
#
|
||||
|
||||
# find any device
|
||||
DEVICES=$(find /dev -name "ttyUSB*" -o -name "ttyACM*" -o -name "wwan*at*" | sort -r)
|
||||
for DEVICE in $DEVICES; do
|
||||
gcom -d $DEVICE -s /usr/share/3ginfo/check.gcom >/dev/null 2>&1
|
||||
if [ $? = 0 ]; then
|
||||
uci set 3ginfo.@3ginfo[0].device="$DEVICE"
|
||||
uci commit 3ginfo
|
||||
echo "$DEVICE"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
exit 0
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# (c) 2024 Cezary Jackiewicz <cezary@eko.one.pl>
|
||||
#
|
||||
|
||||
getdevicepath() {
|
||||
devname="$(basename $1)"
|
||||
case "$devname" in
|
||||
'wwan'*'at'*)
|
||||
devpath="$(readlink -f /sys/class/wwan/$devname/device)"
|
||||
echo ${devpath%/*/*/*}
|
||||
;;
|
||||
'ttyACM'*)
|
||||
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
||||
echo ${devpath%/*}
|
||||
;;
|
||||
'tty'*)
|
||||
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
||||
echo ${devpath%/*/*}
|
||||
;;
|
||||
*)
|
||||
devpath="$(readlink -f /sys/class/usbmisc/$devname/device)"
|
||||
echo ${devpath%/*}
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
CONFIGSEC=$1
|
||||
if [ -n "$CONFIGSEC" ]; then
|
||||
SEC=$(uci -q get 3ginfo.${CONFIGSEC}.network)
|
||||
if [ -n "$SEC" ]; then
|
||||
echo "$SEC"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
DEVICE=$(uci -q get 3ginfo.${CONFIGSEC}.device)
|
||||
if [ -z "$DEVICE" ]; then
|
||||
echo ""
|
||||
exit 0
|
||||
fi
|
||||
|
||||
DEVPATH=$(getdevicepath "$DEVICE")
|
||||
DEVICES=$(uci show network | awk '/network\..*\.device/')
|
||||
for T in $DEVICES; do
|
||||
T1=$(echo "$T" | cut -f2 -d= | xargs)
|
||||
if [ -e "$T1" ]; then
|
||||
if [ "$DEVPATH" = "$(getdevicepath "$T1")" ]; then
|
||||
T2=$(echo "$T" | cut -f2 -d.)
|
||||
uci set 3ginfo.${CONFIGSEC}.network="$T2"
|
||||
uci commit 3ginfo
|
||||
echo "$T2"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
exit 0
|
||||
Reference in new issue
Block a user