RWR: onlooker alert
Warns you when someone behind you looks at your screen (shoulder surfing)
revocx35 Security
Screenshots
Description
RWR watches through the front camera for people looking at your screen from behind (shoulder surfers). When it sees one, it:
- pops up a card over whatever app you are using with a snapshot of the onlooker (boxed in red, with "laser eyes" showing where they look),
- posts a notification,
- saves a photo or a short video clip (for example 10 s before to 10 s after) to your gallery, and optionally to your own Immich server.
It runs in the background and can be switched on and off from the Quick Settings panel.
Detection
- Head tracking: a face turned toward the screen counts as looking. Lightest on battery.
- Eye tracking: follows the irises and combines them with head pose, so it alerts only when the eyes point at the screen.
- Your own face is recognised and ignored, and faces too far away to read the screen don't count.
- A debug view shows live what the detector sees and why each face counts or not.
Private by design
- Detection runs on the phone, offline, with bundled open-source models (YuNet and MediaPipe Face Landmarker). No analytics, no ads, no accounts.
- Nothing leaves the phone unless you pair it with your own RWR server (Docker, open source, in the same repository). Then frames go only to your server, over TLS: detection runs there at full frame rate without draining your battery, and snapshots can be uploaded to Immich.
- The camera is always off while the screen is off. Android shows its camera indicator while RWR is watching.
Requires Android 10 or newer and a front camera. The pop-up needs the "Display over other apps" permission.
What’s new (1.5.0)
First F-Droid release (1.5.0).
- Face detection now uses the open-source YuNet detector (same as the RWR server) instead of Google ML Kit: about half the CPU, and good at small faces.
- MediaPipe's usage-statistics client can no longer send anything: its Google telemetry transport is replaced by a do-nothing stand-in.
- Fewer false alerts: far-away faces never count, every candidate face is verified, an onlooker must stay half a second.
Versions
Permissions
What the app asks the system for. Android only grants sensitive access after you confirm it.
- CameraTake photos and videos.
- Foreground serviceKeep running in the background, visible in the status bar.
- FOREGROUND_SERVICE_CAMERA
- NotificationsShow notifications.
- Display over other appsDraw content on top of other apps.
- Internet accessSend and receive data over the internet.
- rwr.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Comments