Files
Kordant/docs/android-policy-compliance.md

8.7 KiB

Android Target API Level & Policy Compliance

1. Target API Level Verification

Setting Value Status
targetSdk 36 (Android 16)
compileSdk release(36) { minorApiLevel = 1 }
minSdk 26 (Android 8.0)
AGP Version 9.1.1

The app targets API level 36 which is the latest available. The compileSdk uses the modern AGP 9.x declarative API with release(36) syntax.

2. Deprecated API Usage Audit

Fixed Issues

File Issue Resolution
SecurityChecker.kt PackageManager.getInstallerPackageName() deprecated in API 33 Replaced with getInstallSourceInfo() on API 33+ with deprecation fallback
SecurityChecker.kt PackageManager.GET_SIGNATURES deprecated in API 28 Already guarded with SDK version check + @Suppress("DEPRECATION")
SecurityChecker.kt PackageManager.getInstalledPackages(0) deprecated in API 33 Already using PackageInfoFlags.of(0) on API 33+ with deprecation fallback
SecurityChecker.kt packageInfo.signatures deprecated in API 28 Already guarded with SDK version check + @Suppress("DEPRECATION"); type mismatch fixed

Already Using Modern APIs

API Modern Alternative Status
BiometricPrompt Already used instead of deprecated FingerprintManager
WorkManager Already used instead of direct JobScheduler
NotificationChannel Already configured via NotificationChannelManager
FileProvider Already used (referenced in manifest/data_extraction_rules)
EncryptedSharedPreferences Already used via SecureStorageManager
NotificationCompat Already used for backward-compatible notifications
PendingIntent.FLAG_IMMUTABLE Already used in all PendingIntent creation

3. Google Play Policy Compliance Checklist

3.1 Deceptive Behavior

  • No impersonation of other apps or brands
  • No misleading app descriptions or titles
  • No fake reviews or rating manipulation
  • No deceptive claims about functionality
  • Accurate app categorization (Security/Privacy)

3.2 Malware & Device Abuse

  • No malware, viruses, or trojans
  • No unauthorized data exfiltration
  • No hidden functionality
  • No code obfuscation hiding malicious behavior
  • R8/ProGuard used for legitimate optimization only
  • Certificate pinning implemented via network_security_config.xml

3.3 Permissions

  • All permissions justified with in-app rationale dialogs
  • Minimum permission principle followed
  • POST_NOTIFICATIONS requested with rationale (Android 13+)
  • READ_PHONE_STATE justified for call screening
  • ANSWER_PHONE_CALLS justified for spam blocking
  • RECORD_AUDIO justified for VoicePrint enrollment
  • BIND_CALL_SCREENING_SERVICE used appropriately
  • USE_FINGERPRINT explicitly removed (using USE_BIOMETRIC)
  • Foreground service permission justified for call screening

3.4 Advertising & Monetization

  • No disruptive or deceptive ads (app does not use ads)
  • No forced ads interrupting core functionality
  • No fake ad buttons or misleading ad placements
  • Subscription terms are clear (subscription model planned)

3.5 User Data & Privacy

  • allowBackup=false — sensitive data excluded from backup
  • data_extraction_rules.xml configured for Android 12+
  • Encrypted storage for all sensitive data
  • Network security config with certificate pinning
  • Proper notification channels for categorized alerts
  • Data safety form information documented (see Section 4)

3.6 Intellectual Property

  • No copyrighted content without authorization
  • No trademark infringement
  • Open-source libraries used under compatible licenses
  • No unauthorized use of third-party APIs

3.7 Restricted Content

  • No hate speech or harassment
  • No dangerous products or services
  • No illegal activities
  • No sexually explicit content
  • App provides legitimate security/privacy services

4. Data Safety Form Information

Data Collected & Shared

Data Type Collected Shared Purpose
Email Yes No Account authentication, notifications
Name Yes No User profile, personalization
Phone Number Yes No Call screening, account recovery
Device ID Yes No FCM token, analytics, call screening
Location No N/A Not collected
Photos/Videos No N/A Not collected
Audio Yes (opt-in) No VoicePrint enrollment and verification
Contacts No N/A Not collected
Call Log Yes No Call screening — spam detection
SMS No N/A Not collected
App Activity Yes No Crash reporting (Firebase Crashlytics), usage optimization
Web History No N/A Not collected
Health Info No N/A Not collected
Financial Info Yes (if subscribed) No Subscription management via in-app purchases
Diagnostics Yes (opt-in) No Crash reports, ANR tracking

Security Practices

  • Data encrypted in transit (HTTPS + certificate pinning)
  • Data encrypted at rest (EncryptedSharedPreferences, AES-256)
  • No data sharing with third parties
  • User data deletion available (GDPR right to erasure)
  • Account deletion supported

5. Android Version Compatibility

Android Version API Level Testing Status
Android 8.0 26 minSdk — baseline
Android 8.1 27
Android 9.0 28
Android 10 29 Call screening tested
Android 11 30
Android 12 31
Android 12L 32 Tablet layout tested
Android 13 33 Notification permission tested
Android 14 34
Android 15 35
Android 16 36 Target SDK

6. Pre-Launch Report Checklist

6.1 Crashes & ANRs

  • Run Firebase Test Lab on Pixel, Samsung, Xiaomi
  • Verify no crashes across all target devices
  • Validate cold start under 1.5s on Pixel 6
  • Check pagination doesn't cause ANR on large datasets

6.2 Accessibility

  • TalkBack labels on all interactive elements (via a11y_* strings)
  • Content descriptions for icons and images
  • Sufficient color contrast ratios
  • Touch targets at least 48dp

6.3 Security

  • No cleartext HTTP traffic (HTTPS enforcement)
  • Certificate pinning active
  • No WebView vulnerabilities
  • No insecure storage of sensitive data
  • Root detection mechanisms in place

6.4 Performance

  • Lazy loading / pagination for all lists
  • Coil image cache with 100MB disk limit
  • WorkManager for background sync (battery optimized)
  • Splash screen for cold start optimization

7. Restricted Content Verification

  • App does not contain or promote hate speech
  • App does not contain or promote dangerous products
  • App does not facilitate illegal activities
  • App does not contain sexually explicit content
  • App provides legitimate security monitoring services
  • App complies with relevant regulations

8. Monetization Compliance

  • In-app purchases configured via Google Play Billing (if applicable)
  • No deceptive pricing or forced payments
  • Basic functionality available without payment
  • Subscription terms are clear and fair
  • Cancelation process is transparent

9. Security Best Practices

Practice Status Notes
R8/ProGuard shrinking & obfuscation Enabled for release builds
Certificate pinning network_security_config.xml
Root detection Multi-method detection
Encrypted storage EncryptedSharedPreferences
Biometric auth BiometricPrompt API
Network security HTTPS + certificate pinning
Foreground service Call screening service
Notification channels 6 channels configured
Deep link verification android:autoVerify="true"
Code shrinking R8 enabled
Resource shrinking isShrinkResources = true
Baseline profiles Baseline Profile Generator

10. Known Issues for Resolution

Issue Priority Impact
Paparazzi screenshot test plugin version mismatch Low Screenshot tests disabled until compatible version available
Resource configuration API deprecation Low Migrated to androidResources.localeFilters
Source set srcDirs API deprecation Low Migrated to directories API
Pre-existing Kotlin compilation errors in various files High Need to resolve before Play Store submission