dual-speaker.md
The Dual Speaker Mod is a Magisk module for Qualcomm Android devices that routes media audio to both the main speaker and earpiece simultaneously. It creates a stereo-like playback experience by dynamically enabling the earpiece codec path whenever speaker playback is detected.
I've been running this on my daily driver to finally get some decent volume out of YouTube and Spotify without buying a new phone. The module runs a background service that watches the audio mixer and kicks on the earpiece only when media is playing, cleverly dodging standard kernel crashes. It even checks your call state, ensuring your phone conversations stay private instead of blasting on speaker.
Core Features
- Dynamic audio routing – A background service polls the mixer every 300ms to fire up the earpiece right as media starts.
- Bypasses timing bugs – It writes the mixer controls after PCM playback is already active, dodging those annoying
EINVALkernel errors. - Smart call detection – The mod reads telephony data to ignore active phone calls.
- Vendor file backup – Bundled inside v2.1 is a clean
mixer_paths_idp.xmloverlay to restore sound if your default vendor files break.
Support & Requirements
- Root Setup: Magisk 20.4 or higher
- Hardware: Qualcomm Android devices (SM6150, SM7150, SM8150 SoCs) with two physical speakers.
- Audio Codecs: Compatible with WCD937x and WCD938x topologies.
How to Install
- Download the latest
DualSpeakerMod-vX.X.zipto your internal storage. - Open Magisk, navigate to the Modules tab, tap Install from storage, and select the zip file.
- Reboot your device to activate the new audio paths.
Uninstall
- Temporarily: Open Magisk → Modules → toggle the switch off.
- Permanently: Hit remove in the Magisk app, or manually create a
disablefile inside the module directory.
Tested Device
- Device: Xiaomi Redmi K20 / Mi 9T (
davinci/davincin) - SoC / Amp: Snapdragon 730 | WCD937x Codec | NXP TFA98xx
- ROM: LineageOS 20 + Magisk 30700