A radio frequency scanner app for Android with recon and offensive capabilities.
- Homepage:github.com/thomasbuilds/Spectre
- GitHub:github.com/thomasbuilds/Spectre
- Android App:play.google.com/.../dev.thomasbuilds.spectre
- Web info:web-check.xyz/check/github.com
Spectre Source Code
Author
Description
Radio frequency scanner with recon and offensive capabilities
Homepage
Repository
- LicenseGPL-3.0
- Created23 May 26
- Primary languageKotlin
- Size1,350 KB
- Stars131
- Forks9
- Watchers131
Top Contributors
@thomasbuilds (114)
@dependabot[bot] (13)
@g-maxxx (3)
Recent Commits
Thomas(30 Jul 26)
Release 0.1.3
dependabot[bot](30 Jul 26)
Bump kotlin to 2.4.10
Thomas(30 Jul 26)
Add a GitHub Sponsor button pointing to DONATE.md
dependabot[bot](28 Jul 26)
Bump spotless to 8.9.0
dependabot[bot](23 Jul 26)
Bump agp to 9.3.1
Thomas(23 Jul 26)
Add F-Droid changelog for 0.1.3
Thomas(23 Jul 26)
Document filter/sort, dual-SIM, and range rate in README.md
g-maxxx(23 Jul 26)
Update full_description.txt
g-maxxx(23 Jul 26)
Add trailing newline to short_description.txt
Thomas(23 Jul 26)
Fix notification for app exit on Android 12
Thomas(19 Jul 26)
Filter untracked GNSS satellites and mark unknown geometry
dependabot[bot](15 Jul 26)
Bump agp to 9.3.0
Thomas(14 Jul 26)
Fix formatting and clean up CellularScanner
Thomas(14 Jul 26)
Filter modem-fabricated cells and harden serving-cell parsing Verified against a Pixel 9 (Tensor) modem, which pads and corrupts CellInfo in several ways: - Drop unregistered WCDMA neighbors pinned at the reporting floor (Ec/No -24 or RSCP below demod sensitivity); the modem reports its whole configured neighbor set as unmeasured floor entries - Drop zero-identity placeholder cells (NR and WCDMA) emitted during NSA/RAT transitions: all-zero identity on a 0 Hz carrier with a clamped signal value - Skip unregistered cells whose measurement is older than the display TTL, so registry replays can't resurrect aged-out towers - Read the LTE serving cell's strength from SignalStrength when CellInfo omits RSRP, instead of dropping the serving tower - Remove a redundant UNAVAILABLE check in sanitizeCellId
Thomas(14 Jul 26)
Update installation section of README.md
Thomas(13 Jul 26)
Add F-Droid in README.md
Thomas(11 Jul 26)
Remove foojay JDK auto-download machinery
Thomas(11 Jul 26)
Release 0.1.2
Thomas(11 Jul 26)
Silence unused-expression warnings in empty when branches
Thomas(09 Jul 26)
Add F-Droid changelog for 0.1.2
Thomas(09 Jul 26)
Fix ktlint formatting in WifiCapabilities
Thomas(09 Jul 26)
Move the skeleton shimmer to the draw phase Reading the infinite transition's alpha during composition recomposed every warming card's scope at the animation rate. SkeletonBar now takes the State and reads it inside graphicsLayer, so the shimmer only invalidates the layer.
Thomas(09 Jul 26)
Harden Wi-Fi scanning and fix capability parsing Run the heartbeat and registration seed on the scan-callback executor so every apCache mutation is single-writer, which closes a lost-update race where the stale write-back could revert a concurrent scan's fresh data. Synchronize stop() with maybeRegister() in both the Wi-Fi and GNSS scanners so an in-flight registration can't complete after teardown, and guard the scan loop with the stopped flag. Parse security per capability bracket group and key the WPA2 badge on the group's PSK/EAP AKMs: the WPA2/RSN prefix alone also fronts WPA3-only (SAE) and OWE groups, which showed a phantom WPA2 label. Map 320 MHz channel width, move the 6 GHz band boundary to 5925 MHz with channel 2 at 5935, and clamp negative FTM distances from measurement noise.
Thomas(09 Jul 26)
Harden Bluetooth scanning and GATT inspection Require fine location in the scanner's permission check (BLUETOOTH_SCAN is declared without neverForLocation, so scans need it anyway), key the signal cache on advertisement content so payload rotations at steady RSSI refresh the details, and run all scheduled work on one serial lane so publishNow is single-writer. Match GATT read responses to the queued characteristic instance before disarming the read timeout: a late response for an already-timed-out read could strip the in-flight read's safety net and hang the inspection, and same-UUID characteristics now keep distinct values. Clear a pending write when a new inspection supersedes it, gate advertising support on the advertiser's existence rather than the multi-advertisement feature, decode Tx Power Level, and trim the NUL padding devices put in fixed-size string characteristics.
Thomas(09 Jul 26)
Fix cellular band mapping, neighbor identity, and monitor lifecycle Map UARFCN to frequency through a per-band offset table (TS 25.101) instead of N/5, which displayed UMTS-900 near 600 MHz; LTE, WCDMA, and GSM now share one band-table mechanism. Key cells that lack a cell id by PCI/PSC/BSIC and channel so distinct neighbors no longer overwrite each other in the cache or drop out of the exposure sum. Sync subscriptions on every heartbeat so a partial registration or a data-SIM move heals within a tick and the DisplayInfo listener follows the data SIM, and guard the subscription listener with the stopped flag. Expire towers in publishNow rather than on ingest so they age out even when the radio goes silent, with a conditional remove that spares a concurrently refreshed cell, and reject LTE RSSI readings below RSRP.
dependabot[bot](08 Jul 26)
Bump kotlin to 2.4.0
Thomas(08 Jul 26)
Use the linked CodeQL bundle for Kotlin 2.4.0 support
Thomas(07 Jul 26)
Harden scanner lifecycle and simplify readiness tracking Guard every scanner's register/scan path with a stopped flag so an in-flight heartbeat tick cannot re-engage a radio after stop(). Cache the GNSS measurement capability instead of a binder call per status epoch, seed the phone position from the last known fused fix so satellite geometry renders immediately, label below-horizon satellites instead of dropping the row, and use the geosynchronous mean altitude for QZSS. ReadinessTracker loses its staleness window: once a source has delivered data, an empty result now reads as "nothing there" rather than reverting to the warming-up skeleton.
Thomas(07 Jul 26)
Fix scanner recovery after a late permission grant A permission granted while the service runs never re-invokes start(), so the GNSS and Wi-Fi callbacks stayed unregistered until process death. The heartbeat now retries registration. Also gate published satellites on status callback recency, a silent GNSS chip would otherwise keep its last delivery on screen as live data forever.
Thomas(07 Jul 26)
Simplify GNSS scanner code Replace the nested band-name when with a declarative frequency table and compress the scanner's collection, formatting, and registration code. No behavior change.
Spectre Android App
APK Info
- AppSpectre
- Creation Date14 Jul 26
- Last Updated14 Jul 26
- Current Version0.1.2
- Privacy ReportView on Exodus →
Trackers
No trackers found
Permissions
- Access Coarse Location
- Access Fine Location
- Access Local Network
- Access Network State
- Access Wifi State
- Bluetooth Advertise
- Bluetooth Connect
- Bluetooth Scan
- Change Wifi State
- Foreground Service
- Foreground Service Location
- Foreground Service Special Use
- Internet
- Post Notifications
- Read Phone State
- Dynamic Receiver Not Exported Permission
Spectre Reviews
More Mobile Apps
Lets you use CloudFlares fast and secure 1.1.1.1 DNS, with DNS over HTTPS, and also has the option to enable CloudFlares WARP+ VPN.
Android Firewall+ (AFWall+) is an advanced iptables editor (GUI) for rooted Android devices, which provides very fine-grained control over which Android apps are allowed to access the network. Get from F-Droid
This application blocks ads and trackers, doesn't require root and works for all the apps on your Android phone. Check out how it works here.
Gives you the ability to grant permissions temporarily, so that you could for example use the camera to take a profile picture, but when you close the given app, those permissions will be revoked.
Prevent background processes gaining unauthorized access to your devices camera. Better still, use a webcam sticker.
Not Open SourceSimple tool, that compares SHA-1 fingerprints of the the SSL certificates seen from your device, and the certificate seen from an external network. If they do not match, this may indicate a man-in-the-middle modifying requests.
Encrypts files and folders client-side, before uploading them to cloud storage (such as Google Drive, One Drive or Dropbox), meaning none of your personal documents leave your device in plain text.
Shows which trackers, each of your installed apps is using, so that you can better understand how your data is being collected. Uses data from the Exodus database of scanned APKs.
F-Droid is an installable catalogue of FOSS applications for Android. The client enables you to browse, install, and keep track of updates on your device.
A network scanner to help you monitor and secure your WiFi network. The app is totally free, but to use the advanced controls, you will need a Fing Box.
Auto-disable Bluetooth, then it is not being used. Saves battery, and prevent some security risks. Get from F-Droid
An actively-maintained fork of the Island project with additional enhancements
A sandbox environment, allowing you to clone selected apps and run them in an isolated box, preventing it from accessing your personal data, or device information.
A firewall app for Android, which does not require root. NetGuard provides simple and advanced ways to block access to the internet, where applications and addresses can individually be allowed or denied access to your Wi-Fi and/or mobile connection.
System-wide Tor proxy, which encrypts your connection through multiple nodes. You can also use it alongside Tor Browser to access .onion sites.
An open-source ad-blocker and firewall app for Android 6+ (does not require root).
Prevent background processes taking unauthorized screenshots, which could expose sensitive data.
Not Open SourceTriggers actions, when certain security conditions are met, such as multiple failed login attempts or monitor settings changed. It does require Tasker, and needs to be set up with ADB, device does not need to be rooted.
Makes it possible to entirely freeze all background activities on a per-app basis. Intended purpose is to speed up your phone, and prolong battery life, but this app is also a great utility to stop certain apps from collecting data and tracking your actions while running in the background. See on F-Droid
Monitor and control hidden data collection in mobile apps about user behavior/ tracking. Get from F-Droid
About the Data: Spectre
Change History
- Added #652
Edit Spectre Data
You can edit Spectre's entry in this section of awesome-privacy.yml by submitting a PR to our GitHub repo.
Note that some of the information shown above has been aggregated from external
sources, a list of these can be found data documentation.
Origin Data
Modify Data
API
You can access Spectre's data programmatically via our API. Simply make a GET request to:
https://api.awesome-privacy.xyz/v1/services/spectreThe REST API is free, no-auth and CORS-enabled. To learn more, view the API Docs or read the API Usage Guide.
Share Spectre
Help your friends compare Mobile Apps, and pick privacy-respecting software and services.
Share Spectre and Awesome Privacy with your network!