Skip to content

Releases: Mavic-Pro/ultrasniff

UltraSniff SIGINT v2.4

Choose a tag to compare

@Mavic-Pro Mavic-Pro released this 17 Aug 18:36

versionCode: 16

Maintenance re-release of v2.4 (versionName unchanged, versionCode 16 so devices on the first v2.4 build auto-update).

Fixes in vc16

  • Live family classifier no longer misfiles device ultrasonic self-noise (the ~20–21 kHz hardware hiss on some phones) as "Shopkick-like": broadband energy is now rejected before the center/span family rules.
  • Live detections announce "analysing…" on capture and only write a family/tracker entry once the classifier is actually conclusive, instead of committing a coarse guess. All 11 bundled real-world samples still classify correctly offline.

New in v2.4

  • Fidzup / SpotInStore decoder — the second commercial ultrasonic tracker with a recoverable payload (after SilverPush): 19 kHz OOK, 6-bit preamble + 18-bit id + 8-bit CRC, so the beacon id is decoded, not just detected.
  • Full vendor keyword taxonomy — SilverPush, Fidzup, Shopkick, Lisnr, Signal360 (Sonic Notify), Sonarax, CopSonic, Trillbit, ToneTag, Cue Audio and more are flagged by name in a recovered payload. Passive ACR systems (Alphonso, Samba TV, ACRCloud, Inscape, Nielsen) are catalogued but explicitly marked as listeners that emit nothing — a spectrum scanner never sees them.
  • Ultrasonic jammer — a defensive firewall that floods a chosen 18–22 kHz band with a hopping noise comb so a nearby tracking beacon can't be demodulated.
  • Active-TX monitor — shows what this phone is emitting: the active playback streams and, best-effort, the app behind them.

APKs

  • app-arm64-v8a-release.apk — most phones (recommended)
  • app-armeabi-v7a-release.apk — older 32-bit devices
  • app-x86_64-release.apk — emulators / x86 tablets
  • app-universal-release.apk — all ABIs in one (larger)

UltraSniff SIGINT v2.3

Choose a tag to compare

@Mavic-Pro Mavic-Pro released this 17 Aug 15:09

UltraSniff SIGINT v2.3 (versionCode 14)

Live-path family identification

  • When the sequential/hopping detector fires — or a comb fires with no signature
    match — the background service now snapshots the raw audio ring and runs the
    ultrasonic family classifier off-thread. Live detections are labelled
    SilverPush / Lisnr–Signal360 / Shopkick / Google Nearby / Prontoly with a
    confidence, instead of the generic "Chirp/DirectTone-like" / "Unknown-ultrasonic"
    note. SilverPush payloads are decoded inline and confident matches raise the
    tracker alarm.

Verified on-device (NX809J, Android 16) with the real-world sample pack: every
live detection carried a family label — none fell back to the generic hopper note.

APKs: per-ABI (arm64-v8a, armeabi-v7a, x86_64) plus a universal APK, release-signed.
realworld-samples.zip: reference ultrasonic recordings used by the analysis tools.

UltraSniff SIGINT v2.2

Choose a tag to compare

@Mavic-Pro Mavic-Pro released this 17 Aug 13:16

UltraSniff SIGINT v2.2

New

  • SilverPush beacon decoder — the ad-tracking family whose wire format is public (18–19.95 kHz on a 75 Hz grid) is now actually decoded, not just detected: offline analysis recovers the beacon id from a captured ad (validated on real GEICO/Hungama TV-ad beacons).
  • Ultrasonic family classifier — offline analysis now names the emitter family from its spectral signature: Lisnr / Signal360, Shopkick, Google Nearby, Prontoly, or SilverPush. These proprietary systems can't have their payloads decoded (Lisnr is AES-256 encrypted, Nearby spreads under a private DSSS code, the rest are closed), so this identifies what the signal is — honestly short of a payload it can't recover.
  • Shopkick now caught live — the real-time comb detector's band was extended to 22 kHz with a dense-comb path, so Shopkick's in-store presence beacon (a tight comb sitting at ~20–21.6 kHz, above the old ceiling) is flagged live. Broadband hardware noise stays rejected.

Install — pick the APK for your CPU (arm64-v8a for most modern phones) or the universal build. Requires Android 8.0 (API 26)+. All variants share one signing key, so this installs cleanly over v2.1 without losing data.

versionCode: 13

UltraSniff SIGINT v2.1

Choose a tag to compare

@Mavic-Pro Mavic-Pro released this 17 Aug 07:24

UltraSniff SIGINT v2.1

New

  • Sequential / frequency-hopping detector — catches single-tone-at-a-time beacons (Chirp / DirectTone-style) the comb detector misses.
  • Emitter fingerprint + cross-session correlation — the same beacon seen in different places/times lines up under one id. Recurring unknowns are auto-learned into named signatures (export/import).
  • Symbol recovery — OOK / Manchester demodulation on undecoded captures, linked to the source recording.
  • Sharper DSP — 50% FFT overlap, windowed Goertzel, parabolic peak interpolation, anti-aliased resampling, CFAR unknown-signal hunter.
  • Analysis — CyberChef-style auto-solver (searches decode chains); Luhn-checked IMEI; real protobuf detection.
  • Storage v2 — raw payload + SHA-256, emitter fingerprint, GPS fix quality, capture links, and a continuous GPS breadcrumb. GeoJSON + WiGLE-style CSV export with UTC timestamps. Retention purge, GPS-precision rounding (down to off), and a real wipe that clears the geo log too.
  • Platform — live detector reconfigure (no Rx restart), waterfall controls (brightness / freeze / tunable band), renewable wakelock, and self-update straight from this release page.

Install — pick the APK for your CPU (arm64-v8a for most modern phones) or the universal build. Requires Android 8.0 (API 26)+. All variants share one signing key, so this installs cleanly over v2.0 without losing data.

versionCode: 12

UltraSniff SIGINT v2.0

Choose a tag to compare

@Mavic-Pro Mavic-Pro released this 17 Aug 02:36

Maintenance update: UI is now fully English, captures can be deleted individually (plus a Clear database + captures action in Settings), and decode/analyze actions give immediate feedback (toast + auto-scroll to the result). Same features as v1.9 otherwise. Pick your APK below; universal works everywhere. Installs over an existing install without wiping data.