mirror of
https://github.com/EFForg/rayhunter.git
synced 2026-04-28 00:20:00 -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>
107 lines
2.9 KiB
Bash
Executable File
107 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Build Rayhunter from source for development.
|
|
# Prerequisites: Rust (rustup) and Node.js (npm).
|
|
#
|
|
# Usage: ./scripts/build-dev.sh [build|frontend|check]
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
|
|
cd "$PROJECT_DIR"
|
|
|
|
check_dependencies() {
|
|
local missing=0
|
|
|
|
if ! command -v cargo &> /dev/null; then
|
|
echo "Error: cargo not found. Install Rust via https://www.rust-lang.org/tools/install"
|
|
missing=1
|
|
fi
|
|
|
|
if ! command -v npm &> /dev/null; then
|
|
echo "Error: npm not found. Install Node.js via https://docs.npmjs.com/downloading-and-installing-node-js-and-npm"
|
|
missing=1
|
|
fi
|
|
|
|
if [ "$missing" -eq 1 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
# Ensure the ARM cross-compilation target is installed
|
|
if ! rustup target list --installed | grep -q "armv7-unknown-linux-musleabihf"; then
|
|
echo "Installing ARM target (armv7-unknown-linux-musleabihf)..."
|
|
rustup target add armv7-unknown-linux-musleabihf
|
|
fi
|
|
}
|
|
|
|
build_frontend() {
|
|
echo "Building web frontend..."
|
|
pushd daemon/web > /dev/null
|
|
npm install
|
|
npm run build
|
|
popd > /dev/null
|
|
}
|
|
|
|
build_wifi_tools() {
|
|
if [ -f "tools/build-wpa-supplicant/out/wpa_supplicant" ] \
|
|
&& [ -f "tools/build-wpa-supplicant/out/wpa_cli" ] \
|
|
&& [ -f "tools/build-wpa-supplicant/out/iw" ]; then
|
|
echo "WiFi tools already built, skipping."
|
|
return
|
|
fi
|
|
|
|
if ! command -v arm-linux-musleabihf-gcc &> /dev/null; then
|
|
echo "Error: arm-linux-musleabihf-gcc not found."
|
|
echo "Install with: brew install FiloSottile/musl-cross/musl-cross"
|
|
echo "(Required because the installer bundles wpa_supplicant, wpa_cli, and iw for orbic-family devices.)"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Building WiFi tools..."
|
|
./scripts/build-wpa-supplicant.sh
|
|
}
|
|
|
|
build_daemon() {
|
|
echo "Building daemon..."
|
|
cargo build-daemon-firmware-devel
|
|
|
|
echo "Building rootshell..."
|
|
cargo build-rootshell-firmware-devel
|
|
}
|
|
|
|
COMMAND="${1:-build}"
|
|
|
|
case "$COMMAND" in
|
|
build)
|
|
check_dependencies
|
|
build_frontend
|
|
build_wifi_tools
|
|
build_daemon
|
|
echo ""
|
|
echo "Build complete! To install to a device, run:"
|
|
echo " ./scripts/install-dev.sh <device>"
|
|
echo ""
|
|
echo "Replace <device> with your device type (e.g. orbic, tplink)."
|
|
;;
|
|
frontend)
|
|
build_frontend
|
|
;;
|
|
check)
|
|
check_dependencies
|
|
;;
|
|
help|--help|-h)
|
|
echo "Usage: $0 [command]"
|
|
echo ""
|
|
echo "Commands:"
|
|
echo " build Build frontend, daemon, and rootshell (default)"
|
|
echo " frontend Build only the web frontend"
|
|
echo " check Check dependencies only"
|
|
;;
|
|
*)
|
|
echo "Unknown command: $COMMAND"
|
|
echo "Run '$0 help' for usage."
|
|
exit 1
|
|
;;
|
|
esac
|