Magisk-Modules-Alt-Repo

drc-remover

v1.2.5guide

A remover of DRC (Dynamic Range Control, i.e., compression) sticking to all audio outputs on some major devices

★113 stars
•System Utilities•by Magisk-Modules-Alt-Repo•AGPL-3.0•Updated Jun 7, 2025
Platforms:
✓ Magisk
Download v1.2.5Starting download...GitHub Source
magisk-module-drc-remover-v1.2.5.zip

Overview

Dynamic Range Control (DRC) is an audio DSP algorithm designed to compress acoustic dynamics by boosting quiet sounds and aggressively attenuating transient volume peaks. While beneficial for preventing distortion on tiny, low-power smartphone speakers, many smartphone manufacturers (particularly on Qualcomm Snapdragon platforms like SDM and SM series chipsets) force DRC onto all audio pipelines—including external USB DACs, high-fidelity Bluetooth codecs, and 3.5mm headphone jacks.

When DRC is active, musical passages lose punch, orchestral crescendos sound flat, and high-impedance headphones sound constrained. Because this compression is applied at the vendor audio HAL layer before audio leaves the Android mixing engine, software players cannot bypass it.

Developed by zyhk, DRC Remover locates your device’s active vendor audio policy configuration, disables the hardware compression switch, and mounts the corrected configuration systemlessly.

How DRC Remover Operates

During module initialization:

  1. Hardware Inspection: Scans /vendor/etc/ and /vendor/etc/audio/ for active audio policy descriptors (e.g., audio_policy_configuration.xml, audio_policy_configuration_a2dp_offload_disabled.xml, etc.).
  2. Conditional Activation: Determines whether speaker_drc_enabled="true" is declared. If the OEM firmware already leaves DRC disabled (common on MediaTek SoCs), the installer reports clean status and terminates without unnecessary modifications.
  3. XML Substitution: Clones the active policy XML into $MODDIR/system/vendor/... and alters the boolean attribute:
    <!-- Stock Qualcomm Configuration -->
    <globalConfiguration speaker_drc_enabled="true"/>
    
    <!-- DRC Remover Patched Configuration -->
    <globalConfiguration speaker_drc_enabled="false"/>
  4. Systemless Mount: Binds the patched XML directly over the vendor partition at boot.

Important Operational Notes

  • A2DP Offload Changes: If you change Developer Options settings that switch the active audio configuration file (such as enabling or disabling “A2DP Hardware Offload”), you must reflash or update DRC Remover so it targets the newly active XML configuration file.
  • Custom ROM Inversions: A minority of third-party custom ROMs invert the programmatic meaning of speaker_drc_enabled inside custom HAL trees. If your ROM specifically requires inverted flags, test output dynamics carefully.
  • Explicit Conflict: Do not install alongside Audio Samplerate Changer (audio-samplerate-changer), which already embeds this exact DRC removal logic into its installation sequence.

Installation & Verification

  1. Download and flash the drc-remover .zip in Magisk or KernelSU.
  2. Examine the installer log output to verify that an active DRC policy file was discovered and patched.
  3. Reboot the device.
  4. Verify that the patched configuration is mounted:
    su -c grep "speaker_drc_enabled" /vendor/etc/audio_policy_configuration.xml
    The output should confirm speaker_drc_enabled="false".