#!/bin/sh # Local-only Wi-Fi hotspot for Kali NetHunter / Android # SSID: vegeta black # Password: supermarioinreallife IFACE="wlan1" # Change if needed (check with: ip link / iw dev) SSID="vegeta black" PSK="supermarioinreallife" CHANNEL="6" AP_IP="192.168.43.1" DHCP_RANGE="192.168.43.10,192.168.43.50,12h" # Check root if [ "$(id -u)" -ne 0 ]; then echo "This script must be run as root" exit 1 fi echo "[*] Hard reset of Wi-Fi stack..." # Full path to Android's svc /system/bin/svc wifi disable 2>/dev/null killall hostapd dnsmasq wpa_supplicant wificond 2>/dev/null sleep 1 pkill -9 hostapd sleep 3 # Delete the interface iw dev $IFACE del 2>/dev/null sleep 1 # Create a fresh AP interface iw phy phy0 interface add $IFACE type __ap 2>/dev/null || \ iw phy phy0 interface add $IFACE type ap 2>/dev/null sleep 1 ip link set $IFACE down 2>/dev/null ip addr flush dev $IFACE 2>/dev/null ip link set $IFACE up sleep 1 # Create hostapd config cat > /tmp/hostapd-"$IFACE".conf </dev/null ip rule del from "$AP_IP"/32 table 200 2>/dev/null ip route flush table 200 2>/dev/null # Policy routing for the NAO network ip route add 192.168.43.0/24 dev "$IFACE" src "$AP_IP" table 200 ip rule add pref 50 to 192.168.43.0/24 lookup 200 ip rule add from "$AP_IP"/32 table 200 # Start dnsmasq (DHCP only – no DNS forwarding / no internet) dnsmasq \ --interface="$IFACE" \ --bind-interfaces \ --dhcp-range="$DHCP_RANGE" \ --dhcp-option=3,"$AP_IP" \ --dhcp-option=6,"$AP_IP" \ --port=0 \ --no-resolv \ --pid-file=/tmp/dnsmasq-"$IFACE".pid \ --log-facility=/tmp/dnsmasq-"$IFACE".log & sleep 1 # Show status echo echo "Local-only hotspot started" echo " Interface : $IFACE" echo " SSID : $SSID" echo " Password : $PSK" echo " Gateway : $AP_IP" echo iw dev "$IFACE" info 2>/dev/null | head -n 15 echo ip addr show "$IFACE" echo echo "Clients will receive IPs in the range 192.168.43.10 – 192.168.43.50" echo "No internet is shared (local network only)."