mirror of
https://github.com/EFForg/rayhunter.git
synced 2026-05-05 19:39:08 -07:00
* client mode added
* Prevent OTA daemons dmclient and upgrade from running and phoning home to Verizon
* Fix workflow
* WIFI changes to support moxee. May need to rebase as delivering refactoring under other PR.
* code changes for rust based wifi client mode docs next
* Doc changes & security fixes
* Added watchdog and recover if crash occurs for wifi.
* Remove changes which were from device UI work (seperate feature which snuck into this branch)
* Add missing wifi and firewall module declarations
* cleaning up the code a bit
* Gate wpa_suplicant in installer and workflow to avoid building binary every push
* fix to check diskspace
* Improved support for subnet colisions, and attempts to rejoin network.
* Add WiFi client support and S01iptables to T-Mobile and Wingtech installers
Both installers now deploy wpa_supplicant, wpa_cli, udhcpc-hook.sh, and
the S01iptables boot-time firewall script. Config generation uses the
shared install_config/install_wifi_creds helpers instead of manual string
replacement.
* Revert "Add WiFi client support and S01iptables to T-Mobile and Wingtech installers"
This reverts commit 944b369c4f.
* Fix build: ignore unused wifi_ssid/wifi_password fields in T-Mobile and Wingtech installers
* Moved to a wifi crate
* Add host route and arp_filter to prevent subnet collisions
* add wakelock so kernel doesn't shut down wifi on battery when wifi is enabled
* Move wifi to external wifi-station crate, remove wifi from installer, extract OTA blocking
* fixed outdated info, moved udhcpc hook to wifi-station crate.
* Update to new version of wifi-station
* Address PR review feedback: replace Docker wpa build, add iw, remove OTA, revert unrelated changes
- Replace Docker-based wpa_supplicant build with shell script (scripts/build-wpa-supplicant.sh)
- Add iw cross-compilation and deployment to Orbic installer
- Skip wifi tool install if binary already exists on device
- Remove OTA daemon blocker (extracted for separate PR)
- Revert unrelated UZ801 and T-Mobile installer changes
- Remove connection.rs test scaffolding
- Rewrite S01iptables init script to read config.toml directly
- Pin url crate to 2.5.4 to fix MSRV
* Fix build script: use bash for parameter substitution
The ${VAR//pattern/replacement} syntax is a bash extension that
doesn't work in dash (Ubuntu's /bin/sh).
* Fix iw build: export PKG_CONFIG_LIBDIR as env var
Passing PKG_CONFIG_LIBDIR as a make variable doesn't export it to
$(shell pkg-config ...) calls. Set it as an environment variable
so pkg-config finds the cross-compiled libnl.
* Point wifi-station to GitHub rev 97c579a
* add comment
* Update daemon/src/config.rs
Add decorators
Co-authored-by: Andrej Walilko <walilkoa@gmail.com>
* Update daemon/src/server.rs
add utopia doc support
Co-authored-by: Andrej Walilko <walilkoa@gmail.com>
* Update daemon/src/server.rs
add utopia doc support
Co-authored-by: Andrej Walilko <walilkoa@gmail.com>
* Update to wifi-station with utoipa doc strings
* add utoipa to wifi-station
* added WPA3 support
* fix firewall port detection, update wifi-station to c267d37
fix ntfy port_or_known_default, comment out ntfy_url in config
template, update wifi-station with resolv.conf bind mount
fallback, udhcpc_bin config, and module path fix for UZ801
* show wifi UI for tmobile and wingtech, add udhcpc_bin config
both devices have wifi hardware and backend support. wingtech
verified on hardware (QCA6174 via PCIe). uz801 excluded for now
due to driver scan limitations with hostapd active.
* install wifi tools from orbic-usb installer, fix DNS default to Quad9, bump wifi-station rev
* fix Modal scroll listener leak, correct file transfer timeout math, document firewall fail-open, clarify UZ801 wifi status
* build-dev.sh: build wifi tools so install-dev works for orbic-family devices
* update Cargo.lock for wifi-station e8ec5b4
* fix setup_timeout_server crypto provider install, apply rustfmt
* Update installer/src/connection.rs
Co-authored-by: Cooper Quintin <cooperq@users.noreply.github.com>
* Update installer/src/orbic.rs
Co-authored-by: Cooper Quintin <cooperq@users.noreply.github.com>
* apply rustfmt to AdbConnection::run_command
---------
Co-authored-by: Andrej Walilko <walilkoa@gmail.com>
Co-authored-by: Cooper Quintin <cooperq@users.noreply.github.com>
94 lines
2.6 KiB
Bash
Executable File
94 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Cross-compile wpa_supplicant, wpa_cli, and iw for ARMv7 (musl static).
|
|
# Output: tools/build-wpa-supplicant/out/{wpa_supplicant,wpa_cli,iw}
|
|
#
|
|
# Requires: arm-linux-musleabihf-gcc (brew install FiloSottile/musl-cross/musl-cross)
|
|
set -e
|
|
|
|
WPA_VERSION="2.11"
|
|
WPA_URL="https://w1.fi/releases/wpa_supplicant-${WPA_VERSION}.tar.gz"
|
|
LIBNL_VERSION="3.11.0"
|
|
LIBNL_URL="https://github.com/thom311/libnl/releases/download/libnl${LIBNL_VERSION//\./_}/libnl-${LIBNL_VERSION}.tar.gz"
|
|
IW_VERSION="6.9"
|
|
IW_URL="https://www.kernel.org/pub/software/network/iw/iw-${IW_VERSION}.tar.xz"
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
OUT_DIR="$SCRIPT_DIR/../tools/build-wpa-supplicant/out"
|
|
BUILD_DIR="/tmp/wpa-supplicant-build-$$"
|
|
|
|
CC="${CC:-arm-linux-musleabihf-gcc}"
|
|
STRIP="${STRIP:-arm-linux-musleabihf-strip}"
|
|
HOST="${HOST:-arm-linux-musleabihf}"
|
|
|
|
if ! command -v "$CC" >/dev/null 2>&1; then
|
|
echo "Error: $CC not found. Install with: brew install FiloSottile/musl-cross/musl-cross"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$BUILD_DIR" "$OUT_DIR"
|
|
SYSROOT="$BUILD_DIR/sysroot"
|
|
mkdir -p "$SYSROOT"
|
|
|
|
echo "Building libnl ${LIBNL_VERSION}..."
|
|
curl -Lf "$LIBNL_URL" | tar xz -C "$BUILD_DIR"
|
|
cd "$BUILD_DIR/libnl-${LIBNL_VERSION}"
|
|
./configure \
|
|
--host="$HOST" \
|
|
CC="$CC" \
|
|
--prefix="$SYSROOT" \
|
|
--enable-static \
|
|
--disable-shared \
|
|
--disable-cli \
|
|
--disable-debug \
|
|
> /dev/null 2>&1
|
|
make -j"$(nproc 2>/dev/null || sysctl -n hw.ncpu)" > /dev/null 2>&1
|
|
make install > /dev/null 2>&1
|
|
|
|
echo "Building wpa_supplicant ${WPA_VERSION}..."
|
|
cd "$BUILD_DIR"
|
|
curl -Lf "$WPA_URL" | tar xz
|
|
cd "wpa_supplicant-${WPA_VERSION}/wpa_supplicant"
|
|
|
|
cat > .config <<'WPACONF'
|
|
CONFIG_DRIVER_NL80211=y
|
|
CONFIG_LIBNL32=y
|
|
CONFIG_CRYPTO=internal
|
|
CONFIG_TLS=internal
|
|
CONFIG_INTERNAL_LIBTOMMATH=y
|
|
CONFIG_INTERNAL_LIBTOMMATH_FAST=y
|
|
CONFIG_CTRL_IFACE=y
|
|
CONFIG_BACKEND=file
|
|
CONFIG_NO_CONFIG_WRITE=y
|
|
CONFIG_NO_RANDOM_POOL=y
|
|
CONFIG_GETRANDOM=y
|
|
WPACONF
|
|
|
|
NL_CFLAGS="-I${SYSROOT}/include/libnl3"
|
|
NL_LIBS="-L${SYSROOT}/lib -lnl-genl-3 -lnl-3 -lpthread -lm"
|
|
|
|
make CC="$CC" \
|
|
EXTRA_CFLAGS="$NL_CFLAGS" \
|
|
LDFLAGS="-static" \
|
|
LIBS="$NL_LIBS" \
|
|
-j"$(nproc 2>/dev/null || sysctl -n hw.ncpu)"
|
|
|
|
echo "Stripping..."
|
|
$STRIP wpa_supplicant wpa_cli
|
|
cp wpa_supplicant wpa_cli "$OUT_DIR/"
|
|
|
|
echo "Building iw ${IW_VERSION}..."
|
|
cd "$BUILD_DIR"
|
|
curl -Lf "$IW_URL" | tar xJ
|
|
cd "iw-${IW_VERSION}"
|
|
PKG_CONFIG_LIBDIR="$SYSROOT/lib/pkgconfig" \
|
|
make CC="$CC" \
|
|
LDFLAGS="-static" \
|
|
-j"$(nproc 2>/dev/null || sysctl -n hw.ncpu)"
|
|
$STRIP iw
|
|
cp iw "$OUT_DIR/"
|
|
|
|
rm -rf "$BUILD_DIR"
|
|
|
|
echo "Done. Binaries in $OUT_DIR:"
|
|
ls -lh "$OUT_DIR"/{wpa_supplicant,wpa_cli,iw}
|