Mobile App Permissions — What We Use & Why
Every sensitive permission the KnytX mobile apps request, the feature it supports, what stays on-device, and how to revoke access.
- Yes, we ask for sensitive permissions. Scam call screening needs access to incoming calls. SMS phishing detection needs access to incoming SMS. We are honest about this.
- SMS bodies and call audio stay on your device. The screening logic runs locally. Only metadata that is genuinely needed (an extracted URL, a phone number for caller-ID lookup) ever crosses the wire — and where possible it crosses as a hash.
- Camera and microphone are Executive-only. They are used for one-time biometric enrollment, with consent, and you can revoke at any time. See the Biometric Data Policy.
- You can revoke any permission at any time. The app degrades gracefully — features that require the permission stop working, and we tell you in plain English what stopped.
- The mobile code will be open source (GPLv3). Published at github.com/knytx at launch (planned — not yet public; see our open-source roadmap). Verify what the code actually does.
Effective: 22 May 2026. This page satisfies the disclosure obligations under the Google Play Sensitive App Permissions policy, the Apple App Review Guidelines §5.1.1 (Data Collection and Storage), and GDPR Article 13 transparency requirements.
1. Why a mobile app asks for so much
The KnytX mobile app is a passive shield. It exists so you do not have to think about scam calls, phishing SMS, or impersonation alerts; it taps you on the shoulder when something needs your attention and stays out of your way the rest of the time.
To do that, it needs access to the channels through which threats actually arrive. Those channels — your incoming calls, your incoming SMS — are some of the most sensitive surfaces on your device. Both Google Play (Sensitive App Permissions policy) and Apple App Store (Guideline §5.1.1) set rules for apps that request such permissions. The app must disclose the exact use, route the most sensitive processing on-device where feasible, and offer a permission-revocation path that does not break the app’s basic value.
This page is the disclosure they require, and the disclosure you deserve.
2. Android permissions
| Permission | Platform | Feature served | What crosses the wire | Lawful basis | If revoked |
|---|---|---|---|---|---|
READ_CALL_LOG and READ_PHONE_STATE | Android | Passive Call Shield — checks incoming caller-ID against a locally-cached scam-number database before your phone finishes ringing | Nothing during a call. Periodic background sync downloads the scam-number database delta (compressed, signed); no per-call telemetry | GDPR Art. 6(1)(b) performance; Art. 6(1)(f) legitimate interest in telephony fraud protection | Passive Call Shield stops. Rest of the app remains functional. Dashboard explains which features stopped and why |
READ_SMS and RECEIVE_SMS | Android | Passive Link Shield — reads incoming SMS bodies, extracts URLs, checks against phishing-classification API, posts warning if URL is malicious. SMS body parsed locally; only extracted URL sent for classification | URLs only. Never the SMS body, sender, or timestamp. URL sent over TLS to authenticated KnytX endpoint | GDPR Art. 6(1)(b) performance; Art. 6(1)(f) legitimate interest in phishing defense | Passive Link Shield stops. Rest of the app remains functional |
FOREGROUND_SERVICE and RECEIVE_BOOT_COMPLETED | Android | Keeps call and SMS screeners running across reboots — Google Play and modern Android background-execution limits would otherwise prevent privacy-protection apps from working reliably. On-device only; does not grant new data access | Nothing as a consequence of this permission | Same as underlying features | Screeners may be killed by the system after a few minutes of inactivity |
POST_NOTIFICATIONS | Android | Delivers warning notifications (scam call, phishing SMS, family alert) and the weekly digest. Notifications rendered locally from local data plus authenticated KnytX server pushes | Nothing as a consequence of this permission (KnytX uses Firebase Cloud Messaging as transport — see Section 5) | GDPR Art. 6(1)(b) performance | You stop receiving in-app notifications. Everything remains visible in the app dashboard |
CAMERA (Executive tier only) | Android | One-time face enrollment for impersonation defense. Camera capture happens locally; you confirm the photo before any upload | Reference photo uploaded over TLS to KnytX EU servers; facial embedding extracted, original photo deleted within seconds. See Biometric Data Policy | GDPR Art. 9 — explicit consent recorded on enrollment screen | No additional reference photos can be captured. Existing enrollments remain valid until you delete them |
RECORD_AUDIO (Executive tier only) | Android | One-time voice enrollment for voice-clone detection. Voice sample captured locally; you preview and confirm before upload | Voice sample uploaded over TLS to KnytX EU servers; voiceprint embedding extracted, original audio deleted within seconds | GDPR Art. 9 — explicit consent recorded on enrollment screen | No new voice enrollments. Existing voiceprints remain until you explicitly delete them |
Permissions we deliberately do not request
ACCESS_FINE_LOCATION/ACCESS_COARSE_LOCATION— KnytX does not track your location.READ_CONTACTS— KnytX does not read your address book. The scam-number check is anonymous.READ_EXTERNAL_STORAGE(modern equivalents) beyond the minimum needed for the camera/voice flows.- Any advertising-ID or attribution permission. We do not run ad tech.
3. iOS capabilities and extensions
iOS is structured around capabilities and app extensions rather than a single permissions list. Each extension runs in a sandbox; the iOS app cannot read SMS or call audio directly, only through the extension surfaces below.
| Permission / Capability | Platform | Feature served | What crosses the wire | Lawful basis | If revoked |
|---|---|---|---|---|---|
| CallKit Directory Extension | iOS | Passive Call Shield — publishes a scam-number directory to iOS, which labels or blocks matching incoming calls. Per-call check is iOS’s native CallKit lookup; no KnytX server in the call path | Periodic directory sync (signed). No per-call telemetry | GDPR Art. 6(1)(b) performance; Art. 6(1)(f) legitimate interest | Caller-ID labelling and blocking stops |
ILMessageFilterExtension | iOS | Passive Link Shield — Apple’s IdentityLookup framework routes incoming SMS through the extension, classifying them as Promotional, Transactional, Junk, or unfiltered. Extension runs in an iOS sandbox with limited network access | URLs only, on demand, when the local cache cannot classify. Never the full SMS body, never sender, never timestamp | GDPR Art. 6(1)(b) performance; Art. 6(1)(f) legitimate interest | SMS classification stops |
Camera (NSCameraUsageDescription) and Microphone (NSMicrophoneUsageDescription) | iOS | Executive plans only — biometric enrollment (face and voice). Same on-server processing model as Android | Reference photo or voice sample uploaded over TLS; embedding extracted, original deleted within seconds | GDPR Art. 9 — explicit consent | No new biometric enrollments. Existing data remains until you delete it |
| Background App Refresh | iOS | Keeps the scam-number directory and findings dashboard in sync. iOS controls scheduling; the app does not run continuously | Same delta sync as Android | GDPR Art. 6(1)(b) performance | Directory and dashboard may fall out of sync until next manual open |
4. Revoking access
You can revoke any permission at any time:
- Android: Settings → Apps → KnytX → Permissions.
- iOS: Settings → KnytX → individual capability toggles.
The app detects revocation on next launch and:
- Disables only the features that depend on the revoked permission.
- Surfaces a banner explaining which features stopped, and what the user-facing consequence is.
- Does not nag, dark-pattern, or otherwise re-prompt outside the on-screen banner.
Revoking the OS permission does not by itself destroy data we already hold. To destroy it, use the “Delete biometric data” control in the in-app account settings. That explicit deletion is what removes it, per the Biometric Data Policy.
5. Third-party platform services
- Firebase Cloud Messaging (Android push notifications). Operated by Google. Used solely as the transport for push notifications. The notification payload sent through FCM is the minimum needed — a category and a non-personal payload identifier. The actual notification content is fetched from KnytX servers when the app processes the push.
- Apple Push Notification service (iOS). Operated by Apple. Same transport role.
Neither FCM nor APNs receives the content of your calls, SMS, or any biometric data.
6. Data sent to KnytX servers, summarised
Across every permission above, the data that actually crosses the wire to KnytX servers from the mobile apps is:
| Data | Why | Volume |
|---|---|---|
| URLs extracted from SMS | Phishing classification | Per-URL, on demand |
| Account telemetry (login, sync events) | Service operation | Per-event |
| Reference photos (Executive enrollment) | Biometric embedding extraction, then deletion | Once per enrollment |
| Voice samples (Executive enrollment) | Voiceprint embedding extraction, then deletion | Once per enrollment |
| Sync requests for scam-number database, findings, weekly digest | Service operation | Periodic |
That is the complete list. The repos at github.com/knytx (publishes at launch) will include the network-layer module, so you can verify every endpoint the app talks to.
7. Children
KnytX mobile apps are not intended for users under 16 (EU) or under 18 (India). The Family plan supports family members who are minors only with parental consent; biometric enrollment is blocked for minors regardless of consent.
8. Updates and questions
Material changes to the permissions list are communicated by in-app notice and a release-note entry on the GitHub repos (publishes at launch). Once published, the repos will be the canonical record of what the app does. Until then, this page tracks them.
Permission-related questions: legal@knytx.com, subject line “Mobile Permissions”. Security-related issues: security@knytx.com.