Commit Graph

3 Commits

Author SHA1 Message Date
sssnake
338e782cb5 Add location-tagged tower survey log + full-state persistence
- Persist the entire CellGuardState (serving, neighbors, PLMN, frames,
  alerts) to disk and reload on start; carry forward last-known values so
  no field blanks on a transient poll miss and the app never opens empty.
- Log every observed tower with GPS position, timestamp and signal to a
  framework-SQLite database (SurveyDb), clustering sightings into 2.5-mile
  areas; travelling past 2.5 mi starts a new area. Framework LocationManager
  only (no Google Play Services); GPS speed drives a 'traveling' indicator.
- New SURVEY LOG tab lists areas and the towers seen in each. Declare the
  location foreground-service type, claimed only when the permission is held.
2026-07-12 11:34:51 -07:00
sssnake
340df5a05c Fix notification spam, stale frame count, and neighbor flicker
- Post the ongoing status on a fresh LOW channel (cellguard_status_v2) and
  delete the legacy channel, whose importance was stuck at HIGH (a channel's
  importance is immutable after creation) and heads-up'd on every 4s poll.
- Read the live capture total from the /proc/cgcap/frames header instead of
  the detector's snapshot, which could lag behind.
- Accumulate neighbor towers across polls with a 120s TTL instead of
  publishing the raw per-poll getAllCellInfo list, which blinked empty
  whenever a scan returned only the serving cell.
2026-07-12 11:10:20 -07:00
sssnake
38719683c7 CellGuard app: on-device IMSI-catcher detection (Kotlin/Compose)
- foreground DetectorService: cgcap capture + on-device decode
- framework CellInfo source: real serving+neighbor towers, signal, carrier name
- FrameDecoder: 0x070F cell-info SIT decode
- block-2G/3G + detection toggles via cgctl; libsu root bridge
- silent status notification + edge-triggered alerts
2026-07-12 09:21:54 -07:00