The Dialer Built for
Pure Trust & Privacy
Tired of stock dialers that gather your calling statistics and send your personal contacts list to remote cloud servers? Secure Dialer processes absolutely everything locally. Zero internet permissions mean zero tracking, zero ads, and zero data leaks. Guaranteed.
The Anti-Telemetry Calling Philosophy
Most dialers monetize your communication patterns and upload your address book. We believe privacy isn't a premium configuration setting—it must be the foundation of the architecture.
Absence of Internet Permission
Secure Dialer physically excludes the Android INTERNET permission in its manifest. It has no physical way to connect to a server, retrieve tracking code, or upload metadata.
AES-256 SQLCipher Database
Settings, private call logs, custom templates, and speed dials are encrypted inside a local Room SQLCipher database. The database key is secured natively within the device's hardware-backed Android Keystore enclave.
100% Auditable Open Source
No closed binary blobs or obfuscated background modules. Our entire codebase is licensed under the GPLv3, open for public audits, and compiles cleanly in secondary sandboxed environments like GrapheneOS.
How Secure Dialer Compares
A rigorous architectural comparison between Secure Dialer, proprietary stock dialers, and commercial caller ID applications.
| Feature & Security Vector |
★ Recommended
Secure Dialer
100% offline foss
|
Google / Samsung
Stock OEM Dialers
|
Commercial Caller ID
Cloud Directory Apps
|
Other FOSS
Community Dialers
|
|---|---|---|---|---|
|
100% Free & Open Source
Verifiable, auditable, and reproducible code
|
GPLv3 License | Closed Source | Closed Source | Yes |
|
Zero Internet Permission
OS physically prevents opening any network sockets
|
100% Offline | Cloud Telemetry | Uploads Contacts | Yes |
|
Local Offline Spam Screening
Evaluates numbers in <5ms without contacting external servers
|
CallScreeningService | Requires Cloud Sync | Uploads & Crowdsourced | Basic List Only |
|
On-Device Database Encryption
Protects contacts, logs, and private notes from forensic extraction
|
SQLCipher AES-256 | Plaintext SQLite | Stored on Cloud | Plaintext SQLite |
|
Hardware KeyStore Protection
Master database key derived and held inside hardware security module
|
KeyStore StrongBox | No | No | No |
|
Outgoing Caller ID (CLIR) Masking
One-tap withholding toggle with carrier presets & 911 emergency bypass
|
Carrier Codes + 911 Safe | Deep SIM Menu Only | Cloud-dependent | Limited |
|
Biometric Vault & Screen Shield
Fingerprint authentication and FLAG_SECURE recents screenshot blocker
|
Biometric + Anti-Snoop | No | No | No |
|
Local Call Recording Engine
4-tier audio pipeline, sweet-spot tuning, and in-app variable scrubber
|
4-Tier Fallback + Scrubber | Restricted / Locked | Paid Subscriptions / Ads | Basic Single Source |
|
Multi-Party Conference & Waiting
Multi-line call merging, swapping, and discrete call waiting alerts
|
Native Call.conference() | Yes | Yes | Limited |
|
WhatsApp Multi-Account & Actions
Auto-detects WhatsApp & Business with 1-tap launching and account chooser
|
Auto-Detect + Multi-App | No | Cloud Upload Required | Basic Link |
|
Android Compatibility
Stock ROMs, de-Googled GrapheneOS, LineageOS, & OEM skins
|
API 24 to 36 (Android 7–16) | OEM Locked Only | Heavy Resource Drain | Varies by Build |
Elegantly Responsive Design
Designed purely with Jetpack Compose following modern Material 3 guidelines. Enjoy custom shapes, dynamic typography, adaptive grid alignments, and absolute clarity.
Tactile Smart Dialpad
Your primary hub for quick dialing, speed dials, and smart local directory matching. Real tactile response paired with hardware privacy guarantees.
Smart T9 Contact Search
Type numbers corresponding to names to search instantly. Highly responsive local algorithm matches contacts without remote database lookups.
Tactile Haptics & DTMF
Provides satisfying feedback vibration with real DTMF tone generation for easy navigation of corporate automated menu directories.
Speed Dial Indices
Assign keys 1 through 9 to trigger immediate calls to your most important contacts without navigating deep directories.
Features Packed Into A FOSS Footprint
Designed with high functionality to replace all features of stock dialers while incorporating offline-first security utilities.
Offline Spam Blocklist & CNAP
Silences telemarketers and fraud numbers using Android's native CallScreeningService. Displays carrier CNAP names, and imports or exports community blocklists via CSV completely offline.
Outgoing Caller ID (CLIR)
Withhold your phone number so recipients see Private/Unknown. Includes carrier presets (#31#, *67, UK, Japan), system SIM settings shortcut, and strict emergency bypass protection.
Call Recording & Biometric Vault
Record calls locally with 4-tier audio fallback and sweet-spot auto-tuning. Includes in-app variable scrubber (0.5x-2.0x), self-healing orphan disk recovery, and biometric fingerprint protection.
Biometric App Lock & Window Shield
Secure app entry with native BiometricPrompt keyguard. Built with FLAG_SECURE to block screenshots and recents-overview snoopers.
Conference & Call Waiting
Merge multiple ongoing calls into an active conference line (Call.conference()), swap lines smoothly, and manage incoming call waiting alerts without dropping connections.
Dynamic Island & Floating Pill
Multitask effortlessly with a compact floating status pill that displays active call duration and provides quick speakerphone toggles when navigating outside the active call.
Fake Call Escape Simulator
Set custom delayed multi-call sequences with personalized caller names and numbers. Answering simulates an active call with timer counters to help discreetly exit uncomfortable meetings.
Dual-SIM & Speed Dial
Seamless SIM selection prompts on outgoing calls with customizable primary carrier lines. T9 speed dial maps indices `1` through `9` to dial your key contacts immediately.
AMOLED True Black & Ergonomics
True `#000000` AMOLED dark theme for maximum OLED battery savings, customizable avatar shapes, pocket proximity touch protection, and flip-to-silence ringer gestures.
Private In-Call Notes & History
Attach encrypted notes directly to contacts or specific calls. Search private notes seamlessly through call logs, track duration analytics, and schedule callback reminders without cloud leaks.
Pocket Protection & Sensor Gestures
Hardware proximity sensor powers immediate display-off near your ear (WAKE_LOCK) to eliminate accidental touches. Flip device face-down to instantly silence incoming ringers during meetings.
10 Offline Community Localizations
Complete interface coverage in English, Polish, German, Spanish, French, Hindi, Japanese, Portuguese, Arabic, and Chinese. Full RTL & LTR layout support with zero cloud translation dependencies.
Standard System Permissions Explained Honestly
A dialer app requires permissions to perform system calls. We explain exactly what we request, why we need it, and how your data remains completely insulated.
Populate Address Book
Why: Powers predictive T9 dialpad search and contacts tab.
Security Guarantee: Read completely in local process memory; never synchronized or written to outside servers.
Create & Edit Contacts
Why: Adds, edits, or deletes contacts within the app.
Security Guarantee: Modifies your local address book on your device only.
Trigger System Calls
Why: Connects phone calls when tapping numbers or speed dials.
Security Guarantee: Passes calls directly to your device SIM carrier baseband.
Display Recent Entries
Why: Displays incoming, outgoing, and missed call logs.
Security Guarantee: Kept strictly on-device in sandboxed database.
Clear & Clean History
Why: Clears call logs or removes specific entries per contact.
Security Guarantee: Modifies local logs on your physical device only.
In-Call Audio Recording
Why: Captures audio for user-initiated call recordings.
Security Guarantee: Microphone accessed locally only during active recordings; never streamed or shared.
Dynamic Audio Routing
Why: Routes call audio between earpiece, speakerphone, and Bluetooth.
Security Guarantee: Native AOSP telephony audio routing only.
High-Priority Call Alerts
Why: Wakes the screen and displays incoming call alerts over lockscreen.
Security Guarantee: Ensures incoming calls ring cleanly and visibly.
Ongoing Call Status
Why: Shows ongoing call controls and missed call badges in status bar.
Security Guarantee: Local system notifications only.
Floating In-Call Pill
Why: Renders the minimized Dynamic Island overlay status pill while multitasking.
Security Guarantee: Displays call timer and speaker toggles; never captures screen contents.
Ear-Proximity Screen Off
Why: Powers the proximity sensor to turn screen off near your ear.
Security Guarantee: Hardware proximity trigger only; prevents accidental face touches.
Direct Lockscreen Answer
Why: Enables answering incoming calls directly over the lockscreen.
Security Guarantee: Answers calls without unlocking the keyguard or exposing phone data.
Strict Least-Privilege SMS Architecture
Secure Dialer intentionally avoids requesting the high-risk SEND_SMS permission. Quick decline text responses are dispatched via Android’s standard system messaging app chooser, ensuring zero SMS interception, background message harvesting, or billing risks.
Important Guidelines & Disclaimers
Essential legal, cryptographic, and emergency information regarding Secure Dialer's native features.
1. Call Recording Legal Compliance
Telephony recording laws vary significantly worldwide (including one-party vs. two-party / all-party consent laws in jurisdictions like California or Germany). You are solely responsible for ensuring you comply with all local statutes and disclosure requirements before initiating call recordings.
2. Emergency Calling Priority (911 / 112 / 999)
Emergency services calls are afforded absolute priority by the Android Telecom subsystem. Secure Dialer automatically strips any Caller ID withholding prefixes (CLIR) on emergency calls and passes them unmodified to the baseband radio to guarantee that location and subscriber telemetry reach first responders without delay.
3. Zero-Knowledge Cryptographic Recovery
Local database encryption (SQLCipher AES-256) and encrypted .enc configuration archives utilize industry-standard cryptographic algorithms without backdoors or recovery escrow. If you assign and subsequently forget an encryption password, the data cannot be decrypted or recovered.
4. Carrier CLIR Network Limitations
While Secure Dialer prepends standard 3GPP carrier MMI prefixes (#31#, *67, etc.) to suppress outgoing caller ID, your specific mobile operator or roaming agreement may enforce account-level rules governing whether private numbers are permitted on the cellular network.
Independent Source Compilation
Build your own secure, signed APK using standard open source tools. Ensure absolute integrity.
# 1. Clone the repository
git clone https://github.com/Secure-Phone-apps/Secure-Dialer.git
cd Secure-Dialer
# 2. Run the complete automated test suite
gradle :app:testDebugUnitTest
# 3. Assemble debug APK
gradle :app:assembleDebug
# 4. Compiled APK binary location:
app/build/outputs/apk/debug/app-debug.apk
Frequently Asked Questions
Everything you need to know about Secure Dialer's privacy controls, storage, and build setup.
android.permission.INTERNET permission is not even listed in its AndroidManifest.xml). Your contact list, call metrics, and dialer preferences reside physical on your device, completely sandboxed from any remote servers.
DatabaseKeyManager. This master key is generated with cryptographically strong SecureRandom and protected using hardware-backed Android KeyStore (using AES in GCM mode with no padding). Even on rooted devices, your private dialer database is safeguarded against unauthorized extractions.
InCallService (via MyInCallService.kt) and CallManager to fully display incoming/outgoing calling overlays, control speakers, toggle microphones, and process dialing signals locally.
- System Contacts: Syncs directly with your Android OS standard contact book (requires standard permissions).
- Local-First Contacts: Stored solely inside our app's encrypted SQLite sandbox. They are completely separated from Android's system contact pool. This guarantees that other applications on your device—even those with full system contact permissions—cannot read or harvest these private entries.
DialerRepositorySystemSync.kt) instantly maps characters into matching keypad numbers (e.g. tapping "564" resolves to "JOH", showing matching names immediately) to find contacts in fractions of a millisecond.
READ_CONTACTS to resolve names, READ_CALL_LOG to show your recent calling records, and WRITE_CALL_LOG to let you delete elements. Because our app does not possess network permissions, we guarantee this data cannot be leaked.
BackupRestoreManager). This engine compiles your blocklist, configurations, and speed-dials into an encrypted payload using **PBKDF2 derivation** and **AES-GCM encryption** keys generated from your custom password. You can export this backup string as a text file and restore it securely on another device.
#31#, *67, etc.) onto dialed numbers so recipients see Private/Unknown. Crucially, the app includes an automated emergency bypass: whenever you dial an emergency number (like 911, 112, or 999), all number-withholding prefixes are immediately stripped to guarantee that location and subscriber telemetry reach first responders without delay.
BiometricPrompt keyguard protection to lock the app upon exit. In production release builds, it applies the FLAG_SECURE window attribute, which prevents external screen capture tools, spy apps, or the Android Recents overview task-switcher from creating visual preview thumbnails of your private contacts or call records.
SEND_SMS is a high-risk dangerous permission that malicious apps often abuse to send background texts or bill premium numbers. To follow strict least-privilege security principles, Secure Dialer passes quick response templates through Android’s native system messaging app chooser, ensuring that you always maintain explicit control over outgoing SMS messages.