Tetherand

Threat detection

The Threat tab runs a small set of on-device detectors continuously and surfaces their findings as alerts in a feed. Every detector is deterministic — it follows a rule, not a model — so its behaviour is auditable and reproducible.

What's monitored

The detection pipeline checks five environment surfaces in parallel:

  1. Cellular — the neighbour-cell list, broadcast SIBs, paging patterns, RAT downgrades, and TAC changes without corresponding motion. This is where IMSI catchers, paging-storm interception, and Stingray-style downgrade attacks show up.
  2. Wi-Fi — beacon-frame fingerprints, deauth bursts, and SSID/BSSID drift. Catches evil-twin access points and Pineapple-style interception rigs.
  3. Bluetooth Low Energy — proximity tracker fingerprints (Tile, AirTag, Galaxy SmartTag, Chipolo, etc.) within scan range.
  4. App audit — permission drift on installed packages compared to the baseline taken at threat-tab open.
  5. Geographic baseline — every cellular observation is grouped by a six-character geohash. Anything that doesn't match the baseline for that geohash gets surfaced; the baseline grows automatically as you spend time in each area.

The Threat tab

Five sections, top to bottom:

Reading an alert

Each alert carries:

Severity is purely a sum of rule-confidence weights. None of the detectors directly trigger a destructive action — the panic button is always user-initiated.

Heuristics

HeuristicLooks for
BTS AlgorithmImplausible cell-broadcast values (LAC/CID/MCC/MNC outside the carrier's range, or duplicate cells from different operators)
RAT downgradeLTE → UMTS → GSM forced downgrades
TAC change without motionTracking-area updates without a corresponding accelerometer-based location shift
EARFCN allocationCells operating on out-of-band ARFCN values
Reattach stormMultiple network-rejection / reattach cycles in a short window
Evil-twin Wi-FiSSIDs that match a known good one but with different BSSID and weaker security
BLE trackerManufacturer-data patterns matching known commercial trackers
App permission diffPermissions appearing on installed packages after baseline

Per-location baseline

Tetherand does not ship a global cell-tower database — that would need ongoing updates and reveal which DBs you mirror. Instead, the first time the phone visits a given geohash, the cells it sees there become the baseline for that hash. Subsequent visits that introduce new cells, especially ones with implausible parameters, fire alerts.

The baseline lives in the on-device Room database, encrypted at rest. It is never transmitted.

Panic button

The bright-red PANIC button at the bottom of the Threat tab does three things atomically:

  1. Stops the privacy chain.
  2. Disconnects the Wi-Fi adapter.
  3. Drops the cellular radio into airplane mode.

It does not wipe data. For that, see the Burn button in Hardened Mode.

Detection tiers

The default Tier 0 runs on stock Android with no extra hardware. The optional tiers add fidelity:

TierWhat it addsRequires
Tier 0NetMonster reflection + AIMSICD/SnoopSnitch/Crocodile-Hunter heuristicsNothing extra
Tier 1SDR-driven LTE control-channel decode (SIB/MIB parsing, paging-storm detection at the air interface)RTL-SDR or HackRF One plugged in via USB-OTG
Tier 2MediaTek modem diagnostic readers (/proc/ccci_md1_*, mdlog parser, AT-command channel)Root

Each tier degrades cleanly to the next-lower when its requirement is absent. Tier 1 surfaces "No SDR detected" with a $30 RTL-SDR shopping link; Tier 2 surfaces "Dormant — device is not rooted".