Force ringtone for VIP contacts even in Silent/Vibrate/DND mode.
SOS Ring is an Android app that overrides Silent, Vibrate, and Do Not Disturb mode when you receive a call from a whitelisted VIP contact. After the call ends, your phone is restored to its exact previous state.
Android 14+ removed per-contact DND exceptions. There is no built-in way to let specific contacts bypass silent mode. Google restricts READ_CALL_LOG on the Play Store, so this type of app can't be published there.
SOS Ring solves this with a simple approach: a foreground service monitors incoming calls, and when a VIP contact calls, it plays the ringtone via the ALARM audio stream (the only stream that bypasses all DND restrictions on all devices).
- Pick VIP contacts from phonebook or enter manually
- Configurable override volume (50-100%)
- Works in Silent, Vibrate, AND Do Not Disturb mode
- Full state restore after call (ringer mode, all volumes including alarm, DND)
- Survives phone reboots (auto-start)
- Minimal battery usage (event-driven, no polling)
- Dark mode support (follows system)
- Dual language: English and Italian
- No ads, no tracking, no internet required
- Fix: No more double ringtone when phone is already in normal mode
- Fix: Volume slider now correctly controls MediaPlayer volume (range extended to 25-100%)
- Temporary mute timer (1-12 hours): Disables ringtone override while keeping GPS active — useful when you need silence without turning off the service entirely
- Choose override sound type: Select between a ringtone or a notification sound for the override playback
- Per-contact ringtone toggle: Disable the override for specific VIP contacts while keeping GPS tracking active for them
- Navigation drawer: Home, Settings, Location Log, and Privacy & Licenses sections are now accessible via a side drawer
- Privacy & Licenses page: In-app page with data handling information and GPL-3.0 license details
| Permission | Why |
|---|---|
READ_PHONE_STATE |
Detect incoming calls |
READ_CALL_LOG |
Get caller's phone number |
READ_CONTACTS |
Pick VIP contacts from phonebook |
ACCESS_NOTIFICATION_POLICY |
Override Do Not Disturb |
MODIFY_AUDIO_SETTINGS |
Change ringer mode and volume |
FOREGROUND_SERVICE |
Keep monitoring service alive |
VIBRATE |
Force vibration during VIP calls |
POST_NOTIFICATIONS |
Persistent service notification (Android 13+) |
CallMonitorService(ForegroundService) registers aBroadcastReceiverforPHONE_STATE- On
RINGING: checks if caller is VIP → saves audio state → overrides DND → sets volumes → plays ringtone viaMediaPlayeronUSAGE_ALARMstream → starts vibration - On
OFFHOOK(answered): stops ringtone/vibration - On
IDLE(call ended): restores ringer mode → restores all volumes → restores DND (with 200ms delay to handle OEM quirks)
./gradlew assembleReleaseAPK will be at app/build/outputs/apk/release/app-release.apk
- OnePlus (Android 14) - Silent, Vibrate, DND: all working
- Xiaomi, Samsung, Realme - DND bypass confirmed
GPL-3.0-or-later. See LICENSE.