What the app processes, where it goes, and how to get rid of it. Your data stays on your phone, with two deliberate exceptions: services we depend on that need it to work, and the accountability partner feature, which sends anything only if you choose to use it.
The following is read and computed on your device, and none of it is transmitted to us. Some of it is also copied into your own Google Drive backup, explained under the table. Data that leaves your device to us is in section 3.4.
| Data | Source | Why | Where it lives |
|---|---|---|---|
| Step count | Device step sensor or Health Connect | Convert steps into earned screen-time minutes | Room database and SharedPreferences on the device |
| Foreground app name | Accessibility Service | Block restricted apps when you have not earned enough minutes | In memory only, never stored |
| Your password | You set it in Settings | Lock the app’s own settings | Hashed with PBKDF2 and a per-install salt, never plaintext. The password itself never leaves the input field. |
| Trivia progress | Your gameplay | Track your cumulative grade | SharedPreferences |
| Setup time, last unlock, last settings change | Computed by the app | Enforce the cooldown on changing protected settings | SharedPreferences |
| Battery-optimisation status | Device | Keep the step-counting service alive | Read from the system, not stored |
| Accountability partner’s name and email | You type them, and they are optional | Ask them if they agree, and tell them if the app stops checking in | On your device and on our server, so the invitation can be delivered. See section 3.4. |
| Your chosen focus app | You pick one in Settings | Keep that one app reachable while the phone is locked | SharedPreferences |
| List of installed apps | QUERY_ALL_PACKAGES | Offer the focus-app list, and detect browsers so they cannot be chosen | Read on demand, never stored, never transmitted |
Uninstalling deletes all of the above from the device.
“On the device” above means we never send it to a server of ours. It does not mean it never leaves the handset. The app’s preferences file and its database are included in Android’s standard backup, so your streak, banked minutes, walking and usage history, trivia progress, settings, the cooldown timestamps and the PBKDF2 hash of your settings password are copied into a private folder in your Google Drive, and can be restored onto a new phone. We cannot read that folder.
Two things are deliberately excluded: the accountability check-in identifier, so that uninstalling genuinely goes quiet rather than resuming on a restored phone, and advertising identifiers.
Uninstalling removes the copy on the device but not the copy in your Drive. For that, use Settings → Google → Backup.
We embed three Google services, each governed by Google’s own practices rather than ours, and we run one server of our own.
READ_STEPS the app falls back to the device step sensor.If, and only if, you name an accountability partner, the app sends a daily “still running” check-in to our server so it can notice if the app stops running. That is the whole mechanism behind the partner feature: Android never tells an app it is being uninstalled, so the only way to notice is for the app to keep saying it is alive and for the server to spot the silence.
Your partner’s email address is sent to our server, because there is no way to email somebody without it. What happens to it:
The Walk, the optional competition, sends additional data when you take part. That is covered by its own in-app disclosure at the point you join.
No analytics, anywhere. We embed no analytics SDKs: no Firebase Analytics, no Crashlytics, no Facebook SDK, no Amplitude, no Mixpanel. The app reports no crash reports and no usage analytics to anyone.
| Permission | Why it is requested |
|---|---|
ACTIVITY_RECOGNITIONHIGH_SAMPLING_RATE_SENSORS | Read your step count to convert into screen-time minutes. |
health.READ_STEPS | Optional alternative step source via Health Connect. |
FOREGROUND_SERVICEFOREGROUND_SERVICE_HEALTHWAKE_LOCK | Keep step counting and app blocking running while the app is in the background. |
RECEIVE_BOOT_COMPLETED | Restart the protection service after a reboot. |
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | Ask Android not to kill the service to save battery. Optional, but the app may not run reliably without it. |
POST_NOTIFICATIONS | Show the ongoing service notification and earned-minute alerts. |
| Accessibility Service | One job, disclosed during onboarding before you enable it: detect which app is in the foreground so it can be blocked when you are out of earned minutes. It is configured with canRetrieveWindowContent="false", which makes it structurally incapable of reading any on-screen text, not merely choosing not to. It cannot read your messages, emails or anything you type, and does not record the screen. It never prevents you from uninstalling the app or switching the service off, and never blocks the Settings screens where you do either. |
SYSTEM_ALERT_WINDOW | Requested so the block screen can be brought to the front over the app you just opened. The block screen is an ordinary app screen, not a floating window drawn on top of other apps, and nothing is drawn over anything you do outside the app. |
QUERY_ALL_PACKAGES | Read which apps are installed, so the app can offer a list to choose your focus app from and recognise which are browsers so they are excluded. Read on demand and never leaves your device. |
INTERNETACCESS_NETWORK_STATE | Required by AdMob and Play Billing, and by the accountability check-in in section 3.4 if you have named a partner. |
VIBRATE | Haptic feedback in the app. |
If you inspect the app’s permission list you will also see entries we do not request ourselves: AD_ID and several ACCESS_ADSERVICES_* permissions, added automatically by Google’s AdMob library, and com.android.vending.BILLING, added by Play Billing. They exist because those libraries are in the app, and what they are used for is described in sections 3.1 and 3.2.
PACKAGE_USAGE_STATS was listed here until 28 August 2026. It was declared but never actually used by any part of the app, so it was removed rather than explained.
PAA Bootcamp is not directed at children under 13, or the equivalent minimum age in your jurisdiction. We do not knowingly collect personal information from children, and ad requests are tagged as family-safe.
If a parent or guardian believes their child under 13 has used the app, uninstalling removes everything on the device. If an accountability partner was named, that record sits on our server and should be deleted too: clear the partner in Settings before uninstalling, or email paa@am3rgroup.com and we will remove it.
Your data can sit in up to three places. Each is deleted differently, and deleting one does not delete the others.
Everything in section 2.
To delete it: Settings → Apps → PAA Bootcamp → Storage → Clear data, or uninstall the app. Uninstalling is never blocked or delayed by the app.
Only if Android backup is switched on. Holds your streak, banked minutes, walking and usage history, trivia progress and settings, so a new phone can restore them. It is not ours and we cannot read it.
To delete it: Settings → Google → Backup. Note that clearing app data and uninstalling remove the copy on the device but do not reach into your Drive.
This is the one case where we do receive something: your partner’s name and email, and the random check-in identifier in section 3.4. If you never named a partner, we hold nothing about you at all.
To delete it: clear your partner in Settings, which tells the server to delete the record outright rather than mark it inactive. Uninstalling also ends the check-ins.
We keep no other copy of anything, and we run no backups of our own.
No system is perfectly secure. If you find a security issue, please email paa@am3rgroup.com.
The app is the same everywhere. The third-party services we embed (AdMob, Play Billing, Health Connect) handle Google’s regional compliance themselves, including GDPR in the EU and UK and CCPA in California. The consent form for personalised versus non-personalised ads is shown through Google’s UMP SDK on first launch in regulated regions.
If we change this policy we will update the “Last updated” date at the top of this page and bump the app’s version. Material changes will be called out in the Play Store release notes. Continuing to use the app after a change constitutes acceptance.
Questions about this policy or about the data the app processes: paa@am3rgroup.com.