- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
For a while I’ve disliked how high the minimum volume on Android is sometimes. Been searching on ways to fix it and most of the solutions I found required proprietary apps. But then I found this blog post from 2019 which was a pretty good solution to the volume thing. This involves modifying the files that define the volume curve (root is needed).
The relevant part is this:
On a recent-ish version of Android, the two files you want to mess with are:
/vendor/etc/audio_policy_volumes.xml
, which defines what type of audio stream (media, phone calls, earbuds, bluetooth, etc.) uses what type of audio curve.
/vendor/etc/default_volume_tables.xml
, which defines the default audio curves referenced in the previous file.If you’ve never modified files on Android, I highly recommend plugging your device to a computer, enabling USB debugging and connecting through adb. You will likely need to remount the filesystem, as it’s in read-only mode by default:
$ adb shell $ su $ mount -o remount,rw /system
I don’t really care about anything else than media volume, so here is the curve I ended up with. It goes very low and gives you more control at low volume, while still being quite loud at maximum volume. You will need to experiment with your device though, as DACs are all different.
<reference name="DEFAULT_MEDIA_VOLUME_CURVE"> <!-- Default Media reference Volume Curve --> <point>1,-9000</point> <point>10,-8000</point> <point>20,-7000</point> <point>30,-6000</point> <point>40,-4000</point> <point>60,-3000</point> <point>100,-2000</point> </reference>
For reference, the scale goes from -9600 to 0, 0 being the loudest sound your device can produce.
As all things Android, if you are not building your own images, this will get erased next time you update your device. Don’t forget to backup the files you modify, as audio curves are easy to screw up!
In my case I only needed to modify /vendor/etc/default_volume_tables.xml
.
On my device the curve from the post was a bit too low (first three volume steps were almost unhearable) so after messing around with it I found a more sane one for mine. Gonna leave that here too in case it’s useful:
<reference name="DEFAULT_MEDIA_VOLUME_CURVE">
<!-- Default Media reference Volume Curve -->
<point>1,-8000</point>
<point>5,-7500</point>
<point>10,-7000</point>
<point>20,-6000</point>
<point>40,-4000</point>
<point>60,-3000</point>
<point>100,-2000</point>
</reference>
(Again, this can be different for each device)
Have a great day :D
At least the app option persists between system updates 😉