RFM Radio
com.vlad805.fmradio
Zapstore _@zapstore.dev Republished from GitHub / F-Droid by the Zapstore main account.
First release: Mar 18, 2025, 3 total releases.
Most recent release: Jul 28, 2026.
Appears in 0 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Jul 28, 2026 0.9.0_This release adds real-time signal strength monitoring, improves legacy Qualcomm device compatibility and root error handling, adds recording deletion from notifications, and makes future builds reproducible._ ## Device Compatibility - Improved legacy Qualcomm FM initialization (added support for Xiaomi Redmi 4A with Android 10, legacy backend). - Added direct V4L2 startup for devices that provide `/dev/radio0` without the `fm_dl` service or `fm_qsoc_patches` utility (the reason for the lack of support for other phones without this thing). - Improved cleanup of the legacy FM state during shutdown and failed initialization. ## Root and Startup Handling
More…
- Added explicit handling for denied or timed-out root access. - The application now displays a dedicated message when root permission is denied instead of remaining stuck while starting. - Native startup failures now stop the FM service cleanly. - Lost executable permissions on the native FM binary are now repaired automatically. - Improved native process startup, listener initialization, timeout handling, and error reporting. ## Signal Strength and Interface - Added a real-time five-level signal strength indicator. - Signal strength is refreshed after tuning and periodically while listening. - Replaced the previous stereo/mono icon with clearer **STEREO** and **MONO** labels. - Moved the recording duration indicator to the action bar next to the Record button. - Improved accessibility descriptions for signal strength, stereo/mono state, and recording duration. ## Recording - Added an option to delete a completed recording directly from its notification (with confirmation dialog). ## Reproducible Builds - Pinned Android NDK and CMake versions. - Removed the duplicate native build step from the release workflow. - Native builds now fail when the required toolchain is unavailable instead of silently selecting another installed version. **Full Changelog**: https://github.com/vladislav805/RFM-Radio/compare/v0.8.0...v0.9.0 - Jul 24, 2026 0.8.0## Station Search and Scanning - Added cancellable scanning of the entire FM band, with up to 64 stations per scan. - Improved frequency accuracy during seek and scanning on the legacy backend; the tuning step can now be as low as 50 kHz. - Fixed asynchronous hardware seek handling. - Manual tuning on the HAL backend is now limited to the frequency range of the selected region. - Stale RDS data is now cleared after the station actually changes. ## Favorites
More…
- Redesigned favorites management on the main screen. - Added quick switching between active favorite lists on the main screen. - Stations can now be reordered using drag and drop. - The currently tuned saved frequency is highlighted in the list. - Removed the previous limit of 40 displayed stations. - The same frequency can no longer be added more than once. - When a station is added manually, its name is automatically taken from RDS PS when available. - Completely redesigned the favorite list manager. - Added multi-selection, bulk deletion, and list export. - Added ZIP import and export for individual lists, multiple selected lists, or all lists. ## Recording - Added an option to include five seconds of audio from before the Record button was pressed. - Added MP3 recording at 128 kbit/s. MP3 at 192 kbit/s and 16-bit PCM WAV remain unchanged. - Improved MP3 encoding quality by switching to the upstream LAME library. - Recording duration is now calculated from the PCM data that was actually recorded. - Fixed missing final MP3 frames when stopping a recording. - Fixed a race condition when shutting down the MP3 encoder. - Fixed the final WAV header update. ## FM and Audio - Added a Soft Mute option to reduce noise when the signal is weak. It is enabled by default. - Europe and the United States now use separate tuner profiles: - Europe: 50 µs de-emphasis and RDS. - United States: 75 µs de-emphasis and RBDS. - Fixed application of the selected mono/stereo mode. - Fixed audio route shutdown when disabling the tuner on the HAL backend. - Improved the weak-signal detection threshold on the HAL backend. - Fixed stereo/mono event handling on the HAL backend. - Frequency, region, spacing, stereo, Soft Mute, antenna, and AF settings are now applied consistently when the tuner starts. - If the tuner fails to start, the application now rolls back cleanly and shuts down the backend. ## RDS - RDS is now always enabled. The separate **Enable RDS** option has been removed. - Added RBDS support for the United States region, including US-specific PTY names. - Added station country detection based on PI/ECC. - The detected country code is displayed next to PI when ECC is available. - ECC is unavailable on the legacy backend due to driver limitations. - Improved handling of PS, RT, RT+, PI, PTY, AF, and ECC data. - Fixed stale PTY data remaining visible after changing stations. - Corrupted legacy RDS packets no longer crash the backend. - Increased the maximum number of supported AF entries. - RT, RT+, PI, PTY, and the detected station country are now restored when the main screen is reopened. ## Interface - Redesigned the main screen and the favorites section. - Removed blocking progress dialogs when starting or stopping the tuner and during regular seek. - The power button is temporarily disabled while the radio is starting or stopping. - Removed the toast notification previously shown after every frequency change. - Replaced the recording icon with an LED-style indicator. - Improved colors, RDS information layout, and accessibility support. - Added a dedicated screen for cases where root access is unavailable or the device is unsupported. ## Reliability and Security - Internal Android services and broadcast receivers are now isolated from external applications. - Notification `PendingIntent` objects now use immutable mode. ## Internal Changes - Replaced the custom Native/Java event protocol with JSON state patches. - Migrated the legacy native codebase from C to C++. - Unified RDS parsers, region settings, and scan result collection across backends. - Native binaries are now built automatically through Gradle. - LAME is now integrated directly through JNI instead of the external TAndroidLame wrapper. - Added native tests for RDS parsers, regions, JSON handling, startup configuration, and scanning. - Added Java tests for PCM pre-roll and the recording lifecycle. - Updated the CI and release workflows. - The release workflow now attaches the APK and native binaries for both supported ABIs. **Full Changelog**: https://github.com/vladislav805/RFM-Radio/compare/v0.6.3...v0.8.0 - Mar 18, 2025 0.6.3Redesign (#84) - The frequency panel is now vertical and located on the right - The current frequency on the frequency panel is now fixed, moving it changes the current frequency - Added display of PI (radio station identifier) - Removed duplicate power off button in AppBar - Removed donation dialog - Favorites now appear as a grid and take up the remaining free space at the bottom of the screen, rather than several scrolling lines The next stage (already in progress) is reworking the native part to Go, as well as support for new versions of Android and Qualcomm processors.