Some USB DACs on Android phones have a quite low volume compared to when used on a Windows or Apple device.
This is because Android has a set power limit on external DACs by default and the most common DAC to have this issue is the Apple USB-C to 3.5mm jack dongle.
It's quite easy to solve this on a rooted device with some alsamixer commands.
A rooted Android device and a USB DAC.
- Install this Magisk module to add the alsamixer binaries.
- Install Termux from F-Droid.
- Open Termux and run
su
. - After running
su
runalsa_amixer -c 1
with the DAC connected (with an audio device plugged into it). - The output should show a Limits line for the Headphone or Headset mixer, see the maximum value (on the Apple dongle it's usually 120).
- Run
alsa_amixer -c 1 sset Headphone 120
but change 120 to the limit of your DAC and change Headphone to Headset if needed. - Test to see if the volume is alright now.
- Install Easer from F-Droid.
- Open Easer and grant the necessary permissions, and also grant root permission in its settings.
- Open the Data tab in the sidebar, then open the Events tab in the top bar.
- Create an event named "DAC plugged in", select the event as Headset and set action as Plugged in, then save.
- Move to the Profiles tab in the top bar.
- Create a profile named "Apply volume fix" set to Run commands with the command set to
alsa_amixer -c 1 sset Headphone 120
with 120 changed to the maximum limit of your DAC and Headphone changed to Headset if needed, then press save. - Move to the Script tab and create a script named "Apply volume fix on DAC plug in", with the profile set to the one you created in step 6 and the event set to the one you created in step 4, then save.
- Move to the Outline tab in the sidebar and click on the red cross, and you're done!