-
-
Notifications
You must be signed in to change notification settings - Fork 55
Permissions Guide
This guide explains all permissions requested by Rhythm Music Player, why they're needed, and how they're used.
Rhythm is 100% FOSS-compliant and respects your privacy:
- β No analytics or tracking
- β No personal data collection
- β No internet requirement for core functionality
- β All permissions used solely for app functionality
- β No background data transmission
Permissions:
-
READ_EXTERNAL_STORAGE(Android β€12) -
READ_MEDIA_AUDIO(Android 13+) -
READ_MEDIA_IMAGES(Android 13+) -
READ_MEDIA_VISUAL_USER_SELECTED(Android 14+)
Why Needed:
- Scan and index your music files
- Display album artwork
- Read audio metadata (title, artist, album)
- Access playlists from storage
Where Used:
- Media library scanning
- Music playback
- Album art display
- Playlist management
- Metadata reading
Android 14+ Partial Access: You can grant access to only selected photos/media instead of full library access.
Permission: POST_NOTIFICATIONS (Android 13+)
Why Needed:
- Display playback notification with controls
- Show update availability alerts
- Persistent playback notification
Where Used:
- Media notification (play/pause, skip)
- Background playback status
- Update notifications
- Download progress
Can be disabled: Yes, but you'll lose playback controls in notifications.
Permissions:
INTERNETACCESS_NETWORK_STATE
Why Needed:
- Fetch synchronized lyrics from LRCLib
- Download album artwork from Deezer/YouTube Music
- Check for app updates from GitHub
- Access online features
Where Used:
- LRCLib lyrics integration
- Online album artwork fetch
- GitHub update checking
- Deezer API integration
Data Usage: Minimal (lyrics ~1-5KB, artwork ~50-200KB)
Can be disabled: Yes (via firewall), but you'll lose online features.
Permission: MODIFY_AUDIO_SETTINGS
Why Needed:
- Adjust audio routing
- Manage volume levels
- Configure audio focus
- Enable equalizer
Where Used:
- Audio focus management (pausing for calls)
- Bluetooth device switching
- Volume control integration
- Equalizer and audio effects
Can be disabled: No, required for proper audio playback.
Permissions:
-
BLUETOOTH(All versions) -
BLUETOOTH_ADMIN(Android β€11) -
BLUETOOTH_CONNECT(Android 12+) -
BLUETOOTH_SCAN(Android 12+)
Why Needed:
- Detect Bluetooth audio devices
- Auto-play when headphones connect
- Display device name in UI
- Switch between audio outputs
Where Used:
- Bluetooth speaker/headphone support
- Auto-resume on device connection
- Audio output device selection
- Wireless playback controls
Can be disabled: Yes, if you don't use Bluetooth audio.
Permission: REQUEST_INSTALL_PACKAGES
Why Needed:
- Install app updates automatically
- In-app update deployment
Where Used:
- Automatic update installation
- GitHub release downloads
Can be disabled: Yes, you can update manually.
Permissions:
BIND_APPWIDGETUPDATE_APPWIDGET
Why Needed:
- Create home screen widgets
- Update widget content in background
Where Used:
- Legacy RemoteViews widgets
- Modern Glance widgets
- Real-time playback state
- Background widget updates via WorkManager
Can be disabled: No, required for widgets to function.
Permissions:
FOREGROUND_SERVICE-
FOREGROUND_SERVICE_MEDIA_PLAYBACK(Android 14+)
Why Needed:
- Continuous background music playback
- Prevent Android from killing playback
- Lock screen controls
Where Used:
- Background music playback
- Media notification service
- Lock screen controls
Can be disabled: No, required for background playback.
Rhythm does NOT request these permissions (removed for privacy):
β MANAGE_EXTERNAL_STORAGE - Broad file access (not needed for music)
β ACCESS_MEDIA_LOCATION - GPS coordinates in photos (not needed)
β RECORD_AUDIO - Microphone access (never needed)
β CAMERA - Camera access (never needed)
β LOCATION - GPS/location (never needed)
β CONTACTS - Contact list (never needed)
β PHONE - Phone calls/SMS (never needed)
- Open Rhythm
- Follow onboarding wizard
- Grant requested permissions when prompted
- Open Settings β Apps
- Find and tap Rhythm Music
- Tap Permissions
- Enable required permissions
- When prompted for storage, select "Select photos and videos"
- Choose your music folder(s)
- Tap Allow for selected items
To revoke a permission:
- Settings β Apps β Rhythm Music β Permissions
- Tap the permission to revoke
- Select Don't allow
Impact:
- Storage: App won't play music
- Notifications: No playback controls
- Internet: No online features
- Bluetooth: No wireless audio
If permissions are messed up:
- Settings β Apps β Rhythm Music
- Tap Storage & cache β Clear data
- Reopen app and grant permissions again
- Settings β Privacy β Permission manager
- Tap each permission type (Files, Notifications, etc.)
- Find Rhythm Music in the list
- Verify granted permissions
# List all permissions for Rhythm
adb shell dumpsys package chromahub.rhythm.app | grep permission
# Check runtime permissions
adb shell pm list permissions -g- App Manager: Open-source permission auditor
- Exodus Privacy: Check app for trackers
- Grant only essential permissions (Storage, Audio Settings)
- Deny optional permissions if you don't need features:
- Internet β No online lyrics/artwork
- Bluetooth β No wireless audio auto-play
- Notifications β No playback controls in shade
Block internet access if you want offline-only:
- NetGuard: No-root firewall
- AFWall+: Requires root
- RethinkDNS: DNS + Firewall
Rhythm uses Scoped Storage on Android 11+:
- Access limited to music files only
- No access to documents, photos, or other file types
- Enhanced privacy and security
For optional online features: lyrics (LRCLib), artwork (Deezer), and updates (GitHub). The app works fully offline without internet.
Yes, but you won't see playback controls in the notification shade. Player screen still works normally.
No. Even though READ_MEDIA_IMAGES is requested (for album art embedded in music files), Rhythm only accesses images associated with audio files, not your photo gallery.
To detect when you connect Bluetooth headphones/speakers and auto-resume playback. Optional feature.
No. Rhythm stores all data locally on your device. Nothing is uploaded or shared.
Yes! Rhythm is fully open-source: GitHub Repository
Still have questions? Ask in our Telegram Community or Discord Server.