Privacy Policy

Obstat

Effective date · 18 September 2026

In one line: everything you do in the app stays on your device. Obstat has no account and no servers of its own; the only time it uses the network is to process a paid emergency bypass purchase, through Google Play and RevenueCat.

Obstat is a focus app that blocks the apps you choose until you complete a short challenge. This policy explains exactly what the app accesses and how it handles that information.

At a glance

Permissions, and why Obstat uses them

Each permission is requested only for the feature that needs it, and — apart from the purchase processing described under Internet below — everything it produces is used and kept on your device.

Accessibility service (default monitoring mode)

To block a protected app the moment it opens, Obstat by default uses an Android accessibility service. It reads only the package identity (for example, com.instagram.android) of the app currently in the foreground, and it is configured so that it cannot retrieve window content at all. That identity is checked against the apps you chose to protect; identities that are not on your list are discarded immediately and never stored. App content, messages, passwords, and on-screen text are never read.

Some banking and security apps refuse to run while any accessibility service is enabled on the phone. For that case Obstat offers a second monitoring mode that uses no accessibility service at all; you choose it in Obstat's Settings, after a separate disclosure. Only one mode is in force at a time, and in the usage access mode Obstat keeps its accessibility service switched off.

Usage access mode (optional, no accessibility service)

If you switch to usage access mode, Obstat learns which app is in front from Android's app-usage events instead: about once a second while the screen is on, it asks Android which apps have recently come to the foreground. This read is filtered on your device to the apps you chose to protect; every other app's identity is discarded before anything is recorded, and nothing about what you do inside any app is read. Blocking can take up to a second or two longer than in the accessibility mode.

This mode needs two Android settings that you grant in Android Settings: Usage access (the read just described) and Display over other apps, which lets Obstat draw its challenge as a window over the protected app. Obstat draws only its own challenge, only over the apps you protect, and never over anything else. While this mode runs, Android requires an ongoing notification; it says only that protection is on and never names an app.

Camera

If you choose a push-up challenge, the camera is used only while that challenge or its readiness screen is on screen, and only to count your repetitions on the device. No image, video, or camera frame — and no body landmark derived from them — is ever saved, uploaded, or shared. The camera is released as soon as the challenge screen closes, and camera screens block screenshots and screen recording.

Usage access

If you create a rule based on daily app usage — or if you choose the usage access monitoring mode above — Obstat reads Android's app-usage events to learn how long your protected apps have been in the foreground, and (in that mode) which one is in front now. These events are filtered on your device down to only the apps you chose to protect; any other app's identity is discarded before anything is recorded. It stores a per-app daily total of foreground time, together with the rule and calendar day it belongs to; the identity of the app currently in front is held only in memory.

Display over other apps

Requested only if you choose the usage access monitoring mode, and used for one thing: drawing Obstat's challenge as a window over a protected app when its rule blocks it. Obstat never draws over other apps for any other reason and never reads anything through this permission.

Physical activity / step counter

If you choose a movement challenge, Obstat reads your device's step counter while the challenge is active, to count steps toward your goal. It uses no location data, and it senses nothing outside a running challenge. It stores the challenge's goal and your verified progress toward it — enough to resume and confirm the challenge — and never a raw motion or location trail.

Device authentication (biometric or screen lock)

The free emergency bypass — the first one each day — is protected by your device's own authentication. Android performs the check and returns only success or failure. Obstat never accesses, receives, or stores any biometric data such as a fingerprint or face image. (A paid bypass uses the Google Play purchase flow instead and involves no biometric data either.)

Notifications and foreground service

During a movement challenge, Obstat shows an ongoing notification with your progress and Pause/Stop controls, and runs a foreground service so counting can continue while the screen is off. The notification shows only your step count versus your goal.

In the usage access monitoring mode, Obstat runs a second foreground service that performs the once-a-second usage check described above, with a quiet ongoing notification that says only that protection is on. That service starts when you open Obstat, after your phone restarts, and after Obstat is updated, and it stops when you switch back to the accessibility mode or delete all local data. It runs only in that mode.

Internet

Obstat uses the Internet permission for exactly one feature: processing paid emergency bypass purchases — fetching the current price and validating the purchase receipt — through Google Play. No other feature opens a network connection, and nothing else the app knows about you is ever transmitted. See Network use below for exactly who receives what.

The list of apps on your device

To let you choose which apps to protect, Obstat asks Android for the list of apps that have a launcher icon, and reads each one's package name, display name, and a technical marker of when it was installed. Safety-critical apps — such as the system launcher, Settings, the dialer, and emergency apps — are filtered out and never shown. This list is read only while you are building or reviewing a rule; it is never uploaded, sold, or used for advertising. Obstat does not request the broad "query all packages" permission — it uses Android's scoped launcher visibility. Only the apps you actually select are kept (see below).

What is stored on your device

Obstat stores the following only in its own private storage on your phone:

How long it is kept

None of this data is included in Android cloud backup or device-to-device transfer — it is explicitly excluded from both.

What Obstat never does

Network use: purchase processing only

Obstat's only use of the network is processing paid emergency bypass purchases — fetching the current price and validating the purchase receipt. Nothing else the app handles — your rules, your app list, usage history, activity, camera frames, or anything read by the accessibility service or the usage access check — is ever transmitted.

Exactly two parties receive purchase-related data:

The app still contains no analytics, advertising, or telemetry: the billing library's own telemetry pipeline is excluded from the app at build time, in the same way as MediaPipe's. A build-time check fails the release if the app's merged manifest ever declares a permission outside a reviewed allowlist, or if any analytics or advertising transport component reappears. The app is built with third-party open-source libraries (including Google's MediaPipe pose model, which runs entirely on your device); apart from Google Play and RevenueCat as described here, none of them receive your information. It also includes the Source Sans 3 font under the SIL Open Font License.

Your control over your data

Data deletion

Obstat (published by MidnightDeployers) gives you two ways to delete your data.

On-device data — delete it yourself, instantly. In the app, go to Settings → Delete all local data. This erases everything Obstat stores on your device: your rules, protected apps, challenge attempts, unlock grants, usage totals, activity history, bypass records, onboarding and mode consents, monitoring mode, and preferences. It also turns off whichever monitoring service was running. Uninstalling Obstat removes the same data. This data never leaves your device, so there is nothing else to request.

Purchase records — request deletion by email. If you bought a paid bypass, a record of it exists with Google Play and RevenueCat (see Network use above). To have it deleted:

  1. Email midnightdeployers@gmail.com from the address associated with your purchase, and include the Google Play order number(s) you want removed.
  2. We confirm your request and delete the associated records from RevenueCat.
  3. You can also review or manage your purchases at any time in your Google Play account.

What is kept: Google Play retains the transaction records it is legally required to keep (for tax and accounting), under Google's own retention policies; MidnightDeployers cannot delete those. Everything else is deleted on request.

Children's privacy

Obstat is a general-purpose focus tool and is not directed at children. It collects no personal information; the only data it transmits is the anonymous purchase processing described above, and payments themselves go through Google Play's own purchase flow.

Changes to this policy

If this policy changes, the effective date above will be updated, and the summary shown inside the app will be updated to match.