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
29 lines
678 B
Bash
Executable File
29 lines
678 B
Bash
Executable File
#!/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
|
|
|
|
# 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
|
|
|
|
# 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"
|