2026-03-31 04:27:24 -07:00
|
|
|
#!/system/bin/sh
|
|
|
|
|
# RadioControl — cleanup on uninstall
|
|
|
|
|
|
|
|
|
|
CONFIG_DIR="/data/adb/radiocontrol"
|
|
|
|
|
PID_FILE="$CONFIG_DIR/webui.pid"
|
|
|
|
|
|
|
|
|
|
# Stop WebUI server
|
|
|
|
|
if [ -f "$PID_FILE" ]; then
|
|
|
|
|
kill $(cat "$PID_FILE") 2>/dev/null
|
|
|
|
|
fi
|
|
|
|
|
|
v1.1.0: Complete kernel modules, fix WebUI bugs
Kernel modules fully implemented for kernel 6.6/Tensor G5:
- rc_wifi_mon: kprobes kallsyms, bcmdhd iovar monitor/promisc/allmulti,
sysfs status at /sys/kernel/rc_wifi_mon/, clean unpatch on unload
- rc_shannon_cmd: ioctl interface (AT_CMD, GET_URC, SET_TIMEOUT,
GET_STATUS, FLUSH), URC ring buffer (64 entries), modem probe on init
- rc_diag_bridge: HDLC decode with CRC-16 validation, FTM ioctl,
EFS read/write/stat/unlink, version query, subsystem dispatch
- rc_ioctl.h: shared userspace header for all ioctl definitions
- All modules handle class_create() API change in kernel 6.4+
WebUI fixes:
- Fix malformed WiFi firmware JSON output
- Add vonr/vt/apn/nradv to carrier config read endpoint
- Fix carrier toggle state loading in frontend
- Fix redundant replace in kmod toggle logic
Makefile: single-module build (MOD=), make package target
uninstall.sh: unload kernel modules before cleanup
2026-03-31 20:25:44 -07:00
|
|
|
# Unload kernel modules
|
|
|
|
|
for mod in rc_wifi_mon rc_shannon_cmd rc_diag_bridge; do
|
|
|
|
|
lsmod 2>/dev/null | grep -q "$mod" && rmmod "$mod" 2>/dev/null
|
|
|
|
|
done
|
|
|
|
|
|
2026-03-31 04:27:24 -07:00
|
|
|
# Restore WiFi to managed mode
|
|
|
|
|
for iface in wlan0 wlan1 wifi0; do
|
|
|
|
|
if [ -d "/sys/class/net/$iface" ]; then
|
|
|
|
|
ip link set "$iface" down 2>/dev/null
|
|
|
|
|
iw dev "$iface" set type managed 2>/dev/null
|
|
|
|
|
ip link set "$iface" up 2>/dev/null
|
|
|
|
|
break
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Remove persistent config
|
|
|
|
|
rm -rf "$CONFIG_DIR"
|