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

PermissionPlatformFeature servedWhat crosses the wireLawful basisIf revoked
READ_CALL_LOG and READ_PHONE_STATEAndroidPassive Call Shield — checks incoming caller-ID against a locally-cached scam-number database before your phone finishes ringingNothing during a call. Periodic background sync downloads the scam-number database delta (compressed, signed); no per-call telemetryGDPR Art. 6(1)(b) performance; Art. 6(1)(f) legitimate interest in telephony fraud protectionPassive Call Shield stops. Rest of the app remains functional. Dashboard explains which features stopped and why
READ_SMS and RECEIVE_SMSAndroidPassive 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 classificationURLs only. Never the SMS body, sender, or timestamp. URL sent over TLS to authenticated KnytX endpointGDPR Art. 6(1)(b) performance; Art. 6(1)(f) legitimate interest in phishing defensePassive Link Shield stops. Rest of the app remains functional
FOREGROUND_SERVICE and RECEIVE_BOOT_COMPLETEDAndroidKeeps 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 accessNothing as a consequence of this permissionSame as underlying featuresScreeners may be killed by the system after a few minutes of inactivity
POST_NOTIFICATIONSAndroidDelivers warning notifications (scam call, phishing SMS, family alert) and the weekly digest. Notifications rendered locally from local data plus authenticated KnytX server pushesNothing as a consequence of this permission (KnytX uses Firebase Cloud Messaging as transport — see Section 5)GDPR Art. 6(1)(b) performanceYou stop receiving in-app notifications. Everything remains visible in the app dashboard
CAMERA (Executive tier only)AndroidOne-time face enrollment for impersonation defense. Camera capture happens locally; you confirm the photo before any uploadReference photo uploaded over TLS to KnytX EU servers; facial embedding extracted, original photo deleted within seconds. See Biometric Data PolicyGDPR Art. 9 — explicit consent recorded on enrollment screenNo additional reference photos can be captured. Existing enrollments remain valid until you delete them
RECORD_AUDIO (Executive tier only)AndroidOne-time voice enrollment for voice-clone detection. Voice sample captured locally; you preview and confirm before uploadVoice sample uploaded over TLS to KnytX EU servers; voiceprint embedding extracted, original audio deleted within secondsGDPR Art. 9 — explicit consent recorded on enrollment screenNo 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 / CapabilityPlatformFeature servedWhat crosses the wireLawful basisIf revoked
CallKit Directory ExtensioniOSPassive 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 pathPeriodic directory sync (signed). No per-call telemetryGDPR Art. 6(1)(b) performance; Art. 6(1)(f) legitimate interestCaller-ID labelling and blocking stops
ILMessageFilterExtensioniOSPassive 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 accessURLs only, on demand, when the local cache cannot classify. Never the full SMS body, never sender, never timestampGDPR Art. 6(1)(b) performance; Art. 6(1)(f) legitimate interestSMS classification stops
Camera (NSCameraUsageDescription) and Microphone (NSMicrophoneUsageDescription)iOSExecutive plans only — biometric enrollment (face and voice). Same on-server processing model as AndroidReference photo or voice sample uploaded over TLS; embedding extracted, original deleted within secondsGDPR Art. 9 — explicit consentNo new biometric enrollments. Existing data remains until you delete it
Background App RefreshiOSKeeps the scam-number directory and findings dashboard in sync. iOS controls scheduling; the app does not run continuouslySame delta sync as AndroidGDPR Art. 6(1)(b) performanceDirectory 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:

  1. Disables only the features that depend on the revoked permission.
  2. Surfaces a banner explaining which features stopped, and what the user-facing consequence is.
  3. 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:

DataWhyVolume
URLs extracted from SMSPhishing classificationPer-URL, on demand
Account telemetry (login, sync events)Service operationPer-event
Reference photos (Executive enrollment)Biometric embedding extraction, then deletionOnce per enrollment
Voice samples (Executive enrollment)Voiceprint embedding extraction, then deletionOnce per enrollment
Sync requests for scam-number database, findings, weekly digestService operationPeriodic

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.