diff --git a/addCRTModes.sh b/addCRTModes.sh index 9e9c06f..d2fffc4 100755 --- a/addCRTModes.sh +++ b/addCRTModes.sh @@ -14,4 +14,5 @@ addMode "640x480_120p" 52.41 640 680 744 848 480 481 484 515 +HSync -Vsync addMode "480x360_120p" 29.00 480 504 552 624 360 363 367 389 -hsync +vsync #enter the gungeon addMode "760x284_120p" 35.50 760 792 864 968 284 287 297 308 -hsync +vsync #downwell addMode "1920x240_120p" 92.443 1920 2202 2266 2744 240 245 250 281 -HSync -VSync - +addMode "640x360_119i_down" 27.810 640 672 736 824 360 365 373 563 -HSync -VSync Interlace +addMode "640x360_119i_up" 27.810 640 672 736 824 360 485 493 563 -HSync -VSync Interlace diff --git a/crtGreenStripeFix.sh b/crtGreenStripeFix.sh new file mode 100644 index 0000000..cd46ca6 --- /dev/null +++ b/crtGreenStripeFix.sh @@ -0,0 +1,2 @@ +testvidmode "640x360_119i_down" 27.810 640 672 736 824 360 365 373 563 -HSync -VSync Interlace +testvidmode "640x360_119i_up" 27.810 640 672 736 824 360 485 493 563 -HSync -VSync Interlace diff --git a/keymaps.sh b/keymaps.sh index d8d3f4b..819a231 100755 --- a/keymaps.sh +++ b/keymaps.sh @@ -7,3 +7,4 @@ xmodmap -e 'remove mod4 = Hyper_L' xmodmap -e 'remove mod1 = Hyper_L' xmodmap -e 'clear mod3' xmodmap -e 'add mod3 = Hyper_L' +systemctl --user restart sxhkd diff --git a/pixel3a/fixdns b/pixel3a/fixdns new file mode 100755 index 0000000..4c7fc5f --- /dev/null +++ b/pixel3a/fixdns @@ -0,0 +1,3 @@ +#!/bin/bash + +echo nameserver 10.0.0.1 > /etc/resolv.conf diff --git a/pixel3a/localhotspot b/pixel3a/localhotspot new file mode 100755 index 0000000..0aec943 --- /dev/null +++ b/pixel3a/localhotspot @@ -0,0 +1,108 @@ +#!/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)." diff --git a/pixel3a/localhotspotoff b/pixel3a/localhotspotoff new file mode 100755 index 0000000..03353a8 --- /dev/null +++ b/pixel3a/localhotspotoff @@ -0,0 +1,39 @@ +#!/bin/sh + +# Stop the local-only hotspot created by localhotspot + +IFACE="wlan1" # Must match the interface used in localhotspot + +# Check root +if [ "$(id -u)" -ne 0 ]; then + echo "This script must be run as root" + exit 1 +fi + +echo "[*] Stopping local hotspot..." + +# Kill the daemons +killall hostapd dnsmasq 2>/dev/null +pkill -9 hostapd 2>/dev/null +pkill -9 dnsmasq 2>/dev/null +sleep 1 + +# Remove routing rules that were added +ip rule del pref 50 2>/dev/null +ip rule del from 192.168.43.1/32 table 200 2>/dev/null +ip route flush table 200 2>/dev/null + +# Bring the interface down and remove the IP +ip addr flush dev "$IFACE" 2>/dev/null +ip link set "$IFACE" down 2>/dev/null + +# Delete the AP interface +iw dev "$IFACE" del 2>/dev/null + +# Clean up temporary files +rm -f /tmp/hostapd-"$IFACE".conf +rm -f /tmp/dnsmasq-"$IFACE".pid +rm -f /tmp/dnsmasq-"$IFACE".log + +echo "[+] Hotspot stopped." +echo " Interface $IFACE has been removed." diff --git a/pixel3a/naowifi b/pixel3a/naowifi new file mode 100755 index 0000000..9a28c8a --- /dev/null +++ b/pixel3a/naowifi @@ -0,0 +1,61 @@ +#!/bin/sh + +IFACE="wlan1" +SSID="naorobotwifi" +PSK="supermarioinreallife" + +ip link set "$IFACE" up || exit 1 + +cat >/tmp/wpa-"$IFACE".conf </dev/null + +wpa_supplicant -B -i "$IFACE" -c /tmp/wpa-"$IFACE".conf || exit 1 + +if command -v dhclient >/dev/null 2>&1; then + dhclient "$IFACE" +elif command -v udhcpc >/dev/null 2>&1; then + udhcpc -i "$IFACE" +elif command -v dhcpcd >/dev/null 2>&1; then + dhcpcd "$IFACE" +else + echo "No DHCP client found." + exit 1 +fi + +iw dev "$IFACE" link +ip addr show "$IFACE" + +# Wait for DHCP to assign an address +sleep 2 + +IP=$(ip -4 -o addr show dev "$IFACE" | awk '{print $4}' | cut -d/ -f1) + +if [ -z "$IP" ]; then + echo "Failed to obtain an IPv4 address on $IFACE" + exit 1 +fi + +# Remove any previous rules/routes +ip rule del pref 50 2>/dev/null +ip rule del from "$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.0.0/24 dev "$IFACE" src "$IP" table 200 +ip rule add pref 50 to 192.168.0.0/24 lookup 200 +ip rule add from "$IP"/32 table 200 + +echo +echo "Connected on $IFACE ($IP)" +echo +ip route get 192.168.0.100 diff --git a/pixel3a/old/localhotspot b/pixel3a/old/localhotspot new file mode 100755 index 0000000..1fba05b --- /dev/null +++ b/pixel3a/old/localhotspot @@ -0,0 +1,86 @@ +#!/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 + +# Kill previous instances +killall hostapd dnsmasq wpa_supplicant 2>/dev/null +sleep 1 + +# Bring interface down and clean it +ip link set "$IFACE" down 2>/dev/null +ip addr flush dev "$IFACE" 2>/dev/null +ip link set "$IFACE" up || { + echo "Failed to bring up $IFACE" + exit 1 +} + +# Create hostapd config +cat > /tmp/hostapd-"$IFACE".conf </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)." diff --git a/pixel3a/old/localhotspot10 b/pixel3a/old/localhotspot10 new file mode 100755 index 0000000..0822810 --- /dev/null +++ b/pixel3a/old/localhotspot10 @@ -0,0 +1,85 @@ +#!/bin/sh + +IFACE="wlan1" +SSID="vegetablack" +PSK="supermarioinreallife" +CHANNEL="11" +AP_IP="192.168.43.1" + +[ "$(id -u)" -ne 0 ] && exit 1 + +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 + +# Simple hostapd config +cat > /tmp/hostapd.conf </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)." + diff --git a/pixel3a/old/localhotspot11 b/pixel3a/old/localhotspot11 new file mode 100755 index 0000000..b360125 --- /dev/null +++ b/pixel3a/old/localhotspot11 @@ -0,0 +1,98 @@ +#!/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 | 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)." diff --git a/pixel3a/old/localhotspot2 b/pixel3a/old/localhotspot2 new file mode 100755 index 0000000..914953e --- /dev/null +++ b/pixel3a/old/localhotspot2 @@ -0,0 +1,107 @@ +#!/bin/sh + +# Local-only hotspot using the internal SoftAP interface (wlan1) +# SSID: vegeta black +# Password: supermarioinreallife + +IFACE="wlan1" +SSID="vegeta black" +PSK="supermarioinreallife" +CHANNEL="6" +AP_IP="192.168.43.1" +NET="192.168.43.0/24" +DHCP_RANGE="192.168.43.10,192.168.43.50,12h" + +[ "$(id -u)" -ne 0 ] && { echo "Need root"; exit 1; } + +echo "[*] Stopping Android Wi-Fi services (critical step)..." +# These commands release the radio so hostapd can take over +svc wifi disable 2>/dev/null +stop wpa_supplicant 2>/dev/null +killall wpa_supplicant hostapd dnsmasq 2>/dev/null +sleep 2 + +echo "[*] Preparing $IFACE..." +ip link set "$IFACE" down 2>/dev/null +ip addr flush dev "$IFACE" 2>/dev/null + +# Make sure it is in AP mode +iw dev "$IFACE" set type __ap 2>/dev/null || iw dev "$IFACE" set type ap 2>/dev/null +ip link set "$IFACE" up +sleep 1 + +# Disable reverse path filter +echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter +echo 0 > /proc/sys/net/ipv4/conf/"$IFACE"/rp_filter 2>/dev/null + +# hostapd config +cat > /tmp/hostapd-$IFACE.conf </dev/null + +# Firewall +iptables -I INPUT -i $IFACE -j ACCEPT +iptables -I OUTPUT -o $IFACE -j ACCEPT +iptables -I FORWARD -i $IFACE -j ACCEPT +iptables -I FORWARD -o $IFACE -j ACCEPT + +# DHCP +echo "[*] Starting dnsmasq..." +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 & + +sleep 2 + +echo +echo "=== Status ===" +iw dev $IFACE info +echo +ip -4 addr show $IFACE +echo +echo "SSID : $SSID" +echo "Password : $PSK" +echo "Gateway : $AP_IP" +echo +echo "Connect your PC and try: ping 192.168.43.1" diff --git a/pixel3a/old/localhotspot3 b/pixel3a/old/localhotspot3 new file mode 100755 index 0000000..eb95a48 --- /dev/null +++ b/pixel3a/old/localhotspot3 @@ -0,0 +1,79 @@ +#!/bin/sh + +# Local-only hotspot using Android's built-in SoftAP (wlan1) +# SSID & password are set in Android Settings → Hotspot +# This script only takes control of the interface afterwards + +IFACE="wlan1" +AP_IP="192.168.43.1" +NET="192.168.43.0/24" +DHCP_RANGE="192.168.43.10,192.168.43.50,12h" + +[ "$(id -u)" -ne 0 ] && { echo "Need root"; exit 1; } + +echo "[*] Waiting for Android hotspot interface ($IFACE)..." +# Give you time to turn the hotspot on +for i in $(seq 1 15); do + if ip link show "$IFACE" >/dev/null 2>&1; then + echo " Found $IFACE" + break + fi + sleep 1 +done + +if ! ip link show "$IFACE" >/dev/null 2>&1; then + echo "Interface $IFACE not found." + echo "Turn on the normal Android Wi-Fi Hotspot first, then run this script again." + exit 1 +fi + +echo "[*] Taking control of $IFACE..." + +# Kill any existing DHCP / hostapd from Android or previous runs +killall dnsmasq hostapd 2>/dev/null +sleep 1 + +# Disable reverse path filter +echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter +echo 0 > /proc/sys/net/ipv4/conf/"$IFACE"/rp_filter 2>/dev/null + +# Flush old addresses and routes +ip addr flush dev "$IFACE" 2>/dev/null +ip route flush dev "$IFACE" 2>/dev/null + +# Assign our fixed gateway IP +ip addr add "$AP_IP/24" broadcast 192.168.43.255 dev "$IFACE" +ip link set "$IFACE" up +ip route add "$NET" dev "$IFACE" src "$AP_IP" 2>/dev/null + +# Allow traffic +iptables -I INPUT -i "$IFACE" -j ACCEPT +iptables -I OUTPUT -o "$IFACE" -j ACCEPT +iptables -I FORWARD -i "$IFACE" -j ACCEPT +iptables -I FORWARD -o "$IFACE" -j ACCEPT + +# Start our own DHCP (local only – no internet) +echo "[*] Starting local DHCP server..." +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-dhcp & + +sleep 2 + +echo +echo "=== Local-only Hotspot ready ===" +echo "Interface : $IFACE" +echo "Gateway : $AP_IP" +echo "DHCP : 192.168.43.10 – 192.168.43.50" +echo +echo "SSID and password are whatever you set in Android Hotspot settings." +echo "Connect your PC and try: ping 192.168.43.1" +echo +ip -4 addr show "$IFACE" diff --git a/pixel3a/old/localhotspot4 b/pixel3a/old/localhotspot4 new file mode 100755 index 0000000..5097815 --- /dev/null +++ b/pixel3a/old/localhotspot4 @@ -0,0 +1,110 @@ +#!/bin/sh + +# Standalone local-only hotspot (hostapd + dnsmasq) +# SSID: vegeta black +# Password: supermarioinreallife + +IFACE="wlan1" +SSID="vegeta black" +PSK="supermarioinreallife" +CHANNEL="6" +AP_IP="192.168.43.1" +NET="192.168.43.0/24" +DHCP_RANGE="192.168.43.10,192.168.43.50,12h" + +[ "$(id -u)" -ne 0 ] && { echo "Need root"; exit 1; } + +echo "[*] Cleaning previous state..." +killall hostapd dnsmasq wpa_supplicant 2>/dev/null +svc wifi disable 2>/dev/null +sleep 2 + +# Fully reset the interface +ip link set "$IFACE" down 2>/dev/null +ip addr flush dev "$IFACE" 2>/dev/null +ip route flush dev "$IFACE" 2>/dev/null + +# Force AP mode +iw dev "$IFACE" set type __ap 2>/dev/null || iw dev "$IFACE" set type ap 2>/dev/null +sleep 1 +ip link set "$IFACE" up +sleep 1 + +# Disable reverse path filter +echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter +echo 0 > /proc/sys/net/ipv4/conf/"$IFACE"/rp_filter 2>/dev/null + +# hostapd config +cat > /tmp/hostapd-$IFACE.conf </dev/null + ip link set "$IFACE" up + sleep 2 + hostapd -B /tmp/hostapd-$IFACE.conf || { + echo "hostapd still failed." + echo "Run this and paste the output:" + echo " hostapd -d /tmp/hostapd-$IFACE.conf" + exit 1 + } +fi + +sleep 1 + +# Assign IP +ip addr add $AP_IP/24 broadcast 192.168.43.255 dev $IFACE +ip link set $IFACE up +ip route add $NET dev $IFACE src $AP_IP 2>/dev/null + +# Firewall +iptables -I INPUT -i $IFACE -j ACCEPT +iptables -I OUTPUT -o $IFACE -j ACCEPT +iptables -I FORWARD -i $IFACE -j ACCEPT +iptables -I FORWARD -o $IFACE -j ACCEPT + +# DHCP +echo "[*] Starting dnsmasq..." +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 & + +sleep 2 + +echo +echo "=== Standalone Hotspot Started ===" +echo "SSID : $SSID" +echo "Password : $PSK" +echo "Gateway : $AP_IP" +echo +iw dev $IFACE info 2>/dev/null | head -15 +echo +ip -4 addr show $IFACE +echo +echo "Connect your PC and try: ping 192.168.43.1" diff --git a/pixel3a/old/localhotspot5 b/pixel3a/old/localhotspot5 new file mode 100755 index 0000000..811b375 --- /dev/null +++ b/pixel3a/old/localhotspot5 @@ -0,0 +1,60 @@ +#!/bin/sh + +# Reliable local-only hotspot using Android SoftAP +# 1. Turn Android Hotspot ON first +# 2. Run this script + +IFACE="wlan1" +AP_IP="192.168.43.1" +NET="192.168.43.0/24" +DHCP_RANGE="192.168.43.10,192.168.43.50,12h" + +[ "$(id -u)" -ne 0 ] && { echo "Need root"; exit 1; } + +if ! ip link show "$IFACE" >/dev/null 2>&1; then + echo "Turn the Android Hotspot ON first, then run this script." + exit 1 +fi + +echo "[*] Taking control of Android SoftAP on $IFACE..." + +# Only kill DHCP, leave Android's hostapd running +killall dnsmasq 2>/dev/null +sleep 1 + +# Disable reverse path filter +echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter +echo 0 > /proc/sys/net/ipv4/conf/$IFACE/rp_filter 2>/dev/null + +# Add our gateway IP (keep whatever Android already has) +ip addr add $AP_IP/24 broadcast 192.168.43.255 dev $IFACE 2>/dev/null +ip link set $IFACE up +ip route add $NET dev $IFACE src $AP_IP 2>/dev/null + +# Allow traffic +iptables -C INPUT -i $IFACE -j ACCEPT 2>/dev/null || iptables -I INPUT -i $IFACE -j ACCEPT +iptables -C OUTPUT -o $IFACE -j ACCEPT 2>/dev/null || iptables -I OUTPUT -o $IFACE -j ACCEPT +iptables -C FORWARD -i $IFACE -j ACCEPT 2>/dev/null || iptables -I FORWARD -i $IFACE -j ACCEPT +iptables -C FORWARD -o $IFACE -j ACCEPT 2>/dev/null || iptables -I FORWARD -o $IFACE -j ACCEPT + +# Start our DHCP +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 & + +sleep 2 + +echo +echo "=== Local-only Hotspot Ready ===" +echo "SSID & Password = whatever you set in Android Hotspot settings" +echo "Gateway = $AP_IP" +echo +ip -4 addr show $IFACE +echo +echo "Connect your PC and ping 192.168.43.1" diff --git a/pixel3a/old/localhotspot6 b/pixel3a/old/localhotspot6 new file mode 100755 index 0000000..32a46ef --- /dev/null +++ b/pixel3a/old/localhotspot6 @@ -0,0 +1,123 @@ +#!/bin/sh + +# Aggressive standalone local-only hotspot +# Tries to fully release Android's control of the radio + +IFACE="wlan1" +SSID="vegeta black" +PSK="supermarioinreallife" +CHANNEL="6" +AP_IP="192.168.43.1" +NET="192.168.43.0/24" +DHCP_RANGE="192.168.43.10,192.168.43.50,12h" + +[ "$(id -u)" -ne 0 ] && { echo "Need root"; exit 1; } + +echo "[*] Aggressively stopping Android Wi-Fi stack..." + +# Stop as many Android Wi-Fi related services as possible +svc wifi disable 2>/dev/null +stop wpa_supplicant 2>/dev/null +stop wifi 2>/dev/null +killall wpa_supplicant hostapd dnsmasq wificond 2>/dev/null +sleep 2 + +# Extra force +setprop ctl.stop wpa_supplicant 2>/dev/null +setprop ctl.stop wifi 2>/dev/null +sleep 1 + +echo "[*] Fully resetting $IFACE..." +ip link set "$IFACE" down 2>/dev/null +ip addr flush dev "$IFACE" 2>/dev/null +ip route flush dev "$IFACE" 2>/dev/null + +# Delete and recreate the interface if possible +iw dev "$IFACE" del 2>/dev/null +sleep 1 + +# Try to create a clean 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" up 2>/dev/null +sleep 1 + +# Disable reverse path filter +echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter +echo 0 > /proc/sys/net/ipv4/conf/"$IFACE"/rp_filter 2>/dev/null + +# hostapd config +cat > /tmp/hostapd-$IFACE.conf </dev/null + ip link set "$IFACE" up + sleep 2 + hostapd -B /tmp/hostapd-$IFACE.conf || { + echo + echo "Standalone hostapd is not working reliably on this device." + echo "The internal Wi-Fi firmware is still holding management frames." + exit 1 + } +fi + +sleep 1 + +# Configure IP +ip addr add $AP_IP/24 broadcast 192.168.43.255 dev $IFACE +ip link set $IFACE up +ip route add $NET dev $IFACE src $AP_IP 2>/dev/null + +# Firewall +iptables -I INPUT -i $IFACE -j ACCEPT +iptables -I OUTPUT -o $IFACE -j ACCEPT +iptables -I FORWARD -i $IFACE -j ACCEPT +iptables -I FORWARD -o $IFACE -j ACCEPT + +# DHCP +echo "[*] Starting dnsmasq..." +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 & + +sleep 2 + +echo +echo "=== Standalone Hotspot ===" +echo "SSID : $SSID" +echo "Password : $PSK" +echo "Gateway : $AP_IP" +echo +iw dev $IFACE info 2>/dev/null | head -12 +echo +ip -4 addr show $IFACE diff --git a/pixel3a/old/localhotspot7 b/pixel3a/old/localhotspot7 new file mode 100755 index 0000000..276b0d3 --- /dev/null +++ b/pixel3a/old/localhotspot7 @@ -0,0 +1,55 @@ +#!/bin/sh + +IFACE="wlan1" +SSID="vegeta black" +PSK="supermarioinreallife" +CHANNEL="6" +AP_IP="192.168.43.1" +NET="192.168.43.0/24" +DHCP_RANGE="192.168.43.10,192.168.43.50,12h" + +[ "$(id -u)" -ne 0 ] && exit 1 + +killall hostapd dnsmasq 2>/dev/null +sleep 1 + +# Simple, highly compatible hostapd config +cat > /tmp/hostapd-$IFACE.conf </dev/null +sleep 3 + +# Delete the interface completely +iw dev $IFACE del 2>/dev/null +sleep 1 + +# Create a fresh AP interface +iw phy phy0 interface add $IFACE type __ap +sleep 1 + +ip link set $IFACE down +ip addr flush dev $IFACE +ip link set $IFACE up +sleep 1 + +# Very simple hostapd config +cat > /tmp/hostapd.conf </dev/null +killall hostapd dnsmasq wpa_supplicant wificond 2>/dev/null +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 + +# Simple hostapd config +cat > /tmp/hostapd.conf <