← Back
OffGridPete

OffGridPete/Fieldwatch

Receive-only Wi-Fi and Bluetooth LE observer for Android. MIT.

View on GitHub ↗
Stars
1.1K
Forks
123
Watchers
1.1K
Open issues
6
Contributors
1
Language
Kotlin
License
MIT License
Default branch
main
Created Sep 15, 2026Updated Oct 1, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

Fieldwatch

I built Fieldwatch as a personal tool to look at what Wi-Fi access points and Bluetooth LE ads my phone was able to pick up, so that I could better understand what devices were being used around me. It’s passive, it only listens, there’s no dongle, no account, and no backend server. I wanted something that would work offline in the field.

My goals were to have a modern interface that was easy to use, flexible in how information was displayed so I could customize a view based on what I was trying to do, a filtering engine so I do not have to look at everything, an extensible signature library so I can identify as many radio sources as possible and add new ones on the fly, as well as create reports of what was seen.

I have been using it and iterating on it for a while now, and it has been useful enough that I thought I would share it.

This is a hobby — something I do for fun in my spare time. There is no Fieldwatch backend. There are no ads. Everything lives on the phone. Source and sideload files are in this repository (dist/ for the APK, instruction card, and manual).

It was Spectre through 1.2.14. I later learned that name was already in use by another app, so I renamed this one Fieldwatch to keep the two from being mixed up. Same field tool, new application id (app.fieldwatch), MIT License. Installing Fieldwatch does not replace Spectre on a phone; it is a separate app.

If you spot an error, something stupid, or have a feature idea — in the app or the documentation — please open an issue on this repository. This is how we make it better. I hope you find it as useful as I have. I look forward to hearing how it goes.

Just want to install it? Download Fieldwatch.apk. Instruction card and manual: instruction.txt, Fieldwatch_User_Manual.pdf. What’s new is the changelog for each build. Leave the APK named Fieldwatch.apk. GitHub may say the file is too big to preview — that is their viewer; use Download.

Safety & disclaimer

This is a hobby project, provided as-is under the MIT License. A few things to know before you do:

  • Use at your own risk. Using Fieldwatch is your responsibility. To the maximum extent permitted by law, Off Grid Pete LLC is not liable for indirect, incidental, special, consequential, or punitive damages arising from its use.
  • There is no guarantee that trackers, cameras, tags, access points, or any other device will be found, named, or reported. Radios that are off, cellular-only, asleep, randomized, quiet, or outside what this handset’s OS exposes will not appear. Each phone has its own radios, firmware, scan quotas, and OEM battery policies. Software cannot address those limits.
  • Pattern matches, GPS co-travel (“Moving with you” / “possible tail”), Debrief language, and AI Export output are hypotheses — not identity, not a legal finding, and not a complete RF capture. You are solely responsible for how you use this app and this document, and for complying with local law. By using the software or this manual you accept these terms and the MIT License.
  • Location data, if tagging is on, is this phone at hear-time — not the other radio. There is no Fieldwatch server. Stamps stay on the handset until you share them. Logs keep full coordinates even when Privacy mode masks the screen and sit reports. Debrief, Share log, AI Export (sit or one radio), and radio-detail Share as text can take that path off the phone. Online place names use the system geocoder (often the OEM / Google network), not a Fieldwatch cloud. How you store, share, or publish those files is your responsibility.

Put it on a phone

On a phone, the install files are in dist/, not the root of the repo:

  • Fieldwatch.apk
  • instruction.txt
  • Fieldwatch_User_Manual.pdf

Do not rename the APK. Open Fieldwatch.apk from Files (or My Files). Allow install from that app if Android asks.

File What it is
dist/Fieldwatch.apk Sideload APK
dist/fieldwatch-signatures.json Stock catalog for 1.1.11 GitHub update (catalog 77)
dist/fieldwatch-signatures-v2.json Stock catalog for 1.1.12+ GitHub update
dist/instruction.txt Permissions, first launch
dist/Fieldwatch_User_Manual.pdf User manual
CHANGELOG.md What’s new in each build
LICENSE MIT License
NOTICE Third-party attribution

Android 10+. Allow install from the app you used to open the APK. Play Protect may warn that it is not from Play — expected. Full steps are in instruction.txt.

adb install -r dist/Fieldwatch.apk

Upgrading from 1.0.4 or earlier — Fieldwatch now has a real publisher certificate (one-time reinstall)

This release is a little more professional about how the APK is signed. Android attaches a certificate to every app so the phone can tell “this update is from the same publisher as the app I already have.” Through 1.0.4, Fieldwatch used the generic Android developer certificate that the build tools ship with. That is normal while you are iterating, but people who scan a sideload APK (and some scanners) flag it: a public build should not look like a debug leftover. 1.0.5 is signed with an Off Grid Pete LLC certificate instead. Same hobby app; the file now has a publisher name scanners can check. The fingerprint is in instruction.txt if you want to compare.

The catch is one-time. The phone treats a new certificate as a different publisher, so it will not install 1.0.5 on top of 1.0.4 or earlier. You uninstall the old Fieldwatch, then install this APK. After that, later versions use the same certificate, so ordinary updates work again. You will not have to uninstall for 1.1.17.

Uninstall wipes what is on the phone. If you added signatures, changed Settings, named radios, or saved filter presets, do this first: Settings → Export signatures and Export settings. Share or save those two files somewhere you can get them after. They are not the log and not GPS. Then uninstall (long-press the Fieldwatch icon, or adb uninstall app.fieldwatch), install 1.0.5, open it, tap through the disclaimer, and use Import signatures and Import settings. If you never customized, skip the export and just uninstall, then install.

What Fieldwatch is not

  • Not Wi-Fi clients, probe-only stations, or 802.11 monitor mode
  • Not Bluetooth Classic inquiry (HC-05 / HC-06 will not appear)
  • Not cellular
  • Not direction finding

Copyright and license

Copyright (c) 2026 Off Grid Pete LLC.

Fieldwatch source is licensed under the MIT License. AndroidX, Kotlin, and related libraries remain Apache-2.0. IEEE and Bluetooth SIG assigned-number tables in radiodb.bin are subject to those organizations’ terms. See NOTICE.