gitmyhub

nopeek-android

Kotlin ★ 17 updated 9d ago

Real-time Bluetooth scanner that detects nearby smart glasses and VR headsets — know before you're recorded

NoPeek is an Android app that scans for nearby smart glasses and VR headsets such as Meta Ray-Ban and Apple Vision Pro using Bluetooth and alerts you when one is detected, with no internet connection required.

KotlinAndroidBluetooth LEsetup: easycomplexity 2/5

NoPeek is an Android app that scans for nearby smart glasses and VR headsets using Bluetooth, and alerts you when it finds one. The motivation is that modern smart glasses like Meta Ray-Ban frames look identical to ordinary glasses but can record video and audio. This app attempts to detect them before a recording begins.

The detection works by listening for Bluetooth Low Energy signals that nearby devices broadcast. Every Bluetooth device includes a manufacturer identifier in that signal, and this identifier cannot be changed or randomized. NoPeek maintains a list of known identifiers for camera-capable wearables, including Meta Ray-Ban glasses, Oakley Meta glasses, Snap Spectacles, TCL RayNeo glasses, Meta Quest headsets, Apple Vision Pro, and several others. When the app sees one of those identifiers, it alerts you with a vibration and sound, and optionally a push notification if the app is running in the background.

The app uses a three-layer detection approach. The primary method is the manufacturer company ID embedded in the Bluetooth advertisement, which the README describes as immutable. A secondary check looks at the device name, which is only visible when a device is pairing or just powered on. A fallback check uses the MAC address prefix, though modern devices randomize their MAC addresses so this is treated as low-confidence supporting evidence. Apple devices receive special handling: since the Apple company ID is shared across all Apple products, the app requires both the company ID and the device name Vision Pro before flagging an Apple device, to avoid your phone triggering its own alert.

The detection range is roughly 10 to 15 meters outdoors and 3 to 10 meters indoors, based on the default signal strength threshold. That threshold is adjustable in the settings.

The app requires no internet connection. No data is sent anywhere. Detection history is stored locally on your phone only. The source code is open and the project is licensed under MIT. The README notes that detection is not guaranteed since some devices may not broadcast Bluetooth signals at all times.

Where it fits