1. Overview
Ketoda ("we", "us", "our") is a focus and digital wellness app. We built it with a simple principle: your data stays on your device. We do not sell your personal information. We do not build advertising profiles. We do not share your data with marketers.
This policy explains what limited data we collect, why we collect it, and how you can control it.
2. Data We Collect
Ketoda stores the following locally on your device using Android's SharedPreferences:
- Your selected blocked apps (stored as package names, e.g. com.instagram.android)
- Workout session count and streak length
- Sleep schedule (bedtime and wake time you set)
- Social media time limit preference
- Whether onboarding has been completed
- Notification scheduling preferences
None of this is transmitted to our servers. It never leaves your device. Uninstalling Ketoda permanently deletes it.
We do not collect:
- Your name, email, or any account information (Ketoda has no accounts)
- Device identifiers, advertising IDs, or fingerprints
- Location data
- The content of any app you use or block
- Browsing history or app usage statistics beyond what is needed for blocking
3. Accessibility Service
Ketoda uses Android's Accessibility Service to detect when a blocked app comes to the foreground. This is the only mechanism Android provides for third-party apps to perform foreground app detection without requiring a rooted device.
What the Accessibility Service does NOT do:
- Read the content of any app's screen
- Record keystrokes, passwords, or text input
- Access photos, messages, or personal files
- Transmit any data off your device
The accessibility service declaration in our app explicitly sets android:canRetrieveWindowContent="false", which prevents any screen content access at the OS level. You can verify this in our open manifest.
You can disable the Accessibility Service at any time in Settings → Accessibility → Installed apps → Ketoda. Blocking will stop working, but no other app functionality is affected.
4. Crash Reporting (Firebase Crashlytics)
Ketoda uses Firebase Crashlytics, a free service by Google, to receive anonymous crash reports. This helps us fix bugs that would otherwise be invisible to us.
When the app crashes, Crashlytics may send:
- The stack trace of the crash (which line of code failed)
- Device model and Android version (e.g. Samsung Galaxy S24, Android 14)
- App version number
- A randomly generated, non-reversible installation ID
- Time of the crash
Crashlytics does not receive your blocked app list, your streak data, your name, or any personal content.
Crash reporting is governed by Google's Privacy Policy. You can opt out of crash reporting at any time in Ketoda → Settings → Crash Reporting. Opting out takes effect immediately.
5. Notifications
Ketoda schedules local notifications (workout reminders, streak alerts, sleep warnings) entirely on-device using Android's alarm system. These notifications are not routed through any external server or push notification service. No notification token or device identifier is sent to us.
You can disable all notifications in Settings → Apps → Ketoda → Notifications at any time.
Camera & Pose Detection
Ketoda uses your device camera to verify that you complete a physical exercise before unlocking blocked apps. This feature uses Google ML Kit Pose Detection, which runs entirely on-device.
What the camera does:
- Captures live video frames while you exercise
- Passes each frame to ML Kit on-device to detect body pose landmarks
- Counts repetitions or measures hold time based on joint angles
- Discards the frame immediately after analysis — nothing is stored
What the camera does NOT do:
- Record or save any video or photos
- Transmit any image data off your device
- Identify you or any other person
- Access the camera outside of an active workout session
- Share any data with third parties
You can deny camera permission at any time in Settings → Apps → Ketoda → Permissions → Camera. The app will continue to work normally — exercise verification will be skipped for devices without camera access.
6. Third-Party Services
Ketoda integrates the following third-party SDKs:
- Firebase Crashlytics (Google) — anonymous crash reporting. Privacy policy →
- Google Fonts — font files are downloaded once and cached locally. No personal data is sent. Privacy policy →
- RevenueCat — subscription management. Receives your subscription status (active/cancelled/trial) from Google Play or the App Store. No payment details are shared with RevenueCat or us. Privacy policy →
- Google ML Kit (Pose Detection) — runs entirely on-device. No data is sent to Google. Terms →
- Google Play Billing — if you subscribe, your payment is processed entirely by Google. We receive only a subscription status (active/cancelled). We never see your card details. Privacy policy →
We do not use analytics SDKs (no Amplitude, Mixpanel, Firebase Analytics, or similar). We do not use advertising SDKs.
7. Data Retention
All data Ketoda stores lives on your device and is retained until you uninstall the app or clear app data in Android settings. Crashlytics crash reports are retained by Google for 90 days per their standard policy.
8. Your Rights
Since Ketoda stores no personal data on our servers, most data rights (access, portability, deletion) are automatically satisfied by uninstalling the app. For Crashlytics data, you can:
- Opt out of crash reporting in-app (Settings → Crash Reporting → OFF)
- Request deletion of any crash reports associated with your installation ID by contacting us
If you are in the European Economic Area, United Kingdom, or California, you have additional rights under GDPR, UK GDPR, and CCPA respectively. Contact us to exercise any of these rights.
9. Children's Privacy
Ketoda is not directed at children under 13. We do not knowingly collect any information from children under 13. If you believe a child has used Ketoda and you have concerns, please contact us and we will address them promptly.
10. Contact
Questions about this policy or requests about your data:
Ketoda Privacy
Email: tedkemodah@gmail.com
We aim to respond to all privacy enquiries within 5 business days.
We may update this policy from time to time. Material changes will be notified in-app. Continued use after an update constitutes acceptance of the revised policy.