Secure Dialer
100% Offline & Open-Source Dialer

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.

0%
Network Calls
FOSS
GPLv3 Licensed
Local
AES-256 Storage
Secure Dialer Application Interface - Branded application hero banner with dynamic Material 3 custom interface
Built For Transparency

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.

Interface Showcase

Elegantly Responsive Design

Designed purely with Jetpack Compose following modern Material 3 guidelines. Enjoy custom shapes, dynamic typography, adaptive grid alignments, and absolute clarity.

Secure Dialer Feature Mockup
SCREEN EXPLORATION

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.

Utility Integration

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

Silences telemarketers and fraud numbers using Android's native CallScreeningService. Blocklists are checked, imported via CSV, and managed completely offline.

🎭 Fake Call Simulator

Set custom delayed multi-call sequences that trigger a high-fidelity incoming caller UI screen. Answering simulates an active call with timer counters and dialpads to help escape awkward meetings.

Call Recording & Notes

Record conversations or write persistent encrypted notes directly inside the active call window. Audio is stored in the application's secure isolated local database sandboxed sandbox.

⏰ Callback Reminders

Decline an incoming call with text but forget to callback? Use callback reminders from call detail screens to establish delayed alerts containing immediate direct call-back actions.

Offline Calling Analytics

Understand your dial patterns over days, weeks, or months. Displays structured duration trackers, missed counts, and top callers via clean native Compose charts that run entirely locally.

Dual-SIM & Speed Dial

Supports seamless SIM selection prompts on active dial triggers, or configure standard primary outbound lines. T9 speed dial maps indices `1` to `9` to dial key numbers immediately.

Permission Transparency

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.

READ_CONTACTS

Populate Address Book

Why: To look up names, display avatars, and allow search.
Security Guarantee: Read completely in local process memory. Never synchronized or written to outside services.

WRITE_CONTACTS

Create & Edit Contacts

Why: Allows adding names, numbers, emails, and notes to your storage directly inside the dialer.
Security Guarantee: Operates only via on-device system contacts provider.

CALL_PHONE

Trigger System Calls

Why: Placed in call triggers when clicking numbers or tapping dial icons.
Security Guarantee: Only sends commands directly to Android's Telecom subsystem.

READ_CALL_LOG

Display Recent Entries

Why: Populates the "Recents" list, detailing missed, received, or dialed connections.
Security Guarantee: Local read. No background scrapers or reporting routines.

SEND_SMS

Send SMS Templates

Why: Sends standard decline templates (e.g., "Sorry, I am driving") directly on call rejection.
Security Guarantee: Initiates purely when manually confirmed by you during an inbound call.

RECORD_AUDIO

Active Recording Storage

Why: Allows voice tracking during calls if you tap the Record button.
Security Guarantee: Isolated local sandboxed storage. No background passive ear-dropping or wiretaps.

Developer Setup

Independent Source Compilation

Build your own secure, signed APK using standard open source tools. Ensure absolute integrity.

bash terminal
# 1. Clone the repository
git clone https://github.com/Secure-Phone-apps/Secure-Dialer.git
cd Secure-Dialer

# 2. Verify dependencies and run tests
./gradlew testDebugUnitTest

# 3. Assemble release APK signed under your environment keys
./gradlew assembleDebug

# 4. Binary targets can be found under build directory:
app/build/outputs/apk/debug/app-debug.apk
Questions & Answers

Frequently Asked Questions

Everything you need to know about Secure Dialer's privacy controls, storage, and build setup.