Tuesday, June 14

Fix One Plus One (A0001) low speaker volume during calls

Have you ever found yourself asking back all the time during a call, because you simply didn't heard what they said? Then this guide might be for you.



This guide requires a rooted One Plus One, ADB and a bit of command line messing.
This method was tested on CyanogenMod 13.0-20160523-NIGHTLY-bacon (6.0.1).

Do it under your own responsibility, no guarantees. If you brick or mess up your phone or if you cause a thermonuclear war, that will be entirely your fault, not mine.
You might loose your warranty (i think you are waaaay over that already) or damage the phone, i don't know, i don't take any responsibility for any harm caused by anything.


TL; DR;

Set every "RX1 Digital Volume" and "RX2 Digital Volume" to 93. (Maybe you only need to set the ones that are non-zero, but i set them all to 93.) in  /system/etc/mixer_paths.xml



Step by step

Open a shell to your phone

meta@x220:~$ adb shellshell@bacon:/ $ 

Become a superuser

shell@bacon:/ $ su                                                                                                   root@bacon:/ #  

Remount /system as read-write

root@bacon:/ # mount -o rw,remount /system 

Backup the original file

cp  /system/etc/mixer_paths.xml /sdcard/mixer_paths.xml.backup

Edit the file

nano  /system/etc/mixer_paths.xml

Hints:

  • Use Ctrl+W for search
  • Use Ctrl+O for saving and exiting
Find every "RX1 Digital Volume" and "RX2 Digital Volume" and set them to 93. You can experiment with setting only the non zero values to 93 first.

Reboot, enjoy!


93? Why? 

Because probably thats the highest where it is not crackling. But if you want to experiment with it, you can do it in the following way:

Make a call, and tweak the values during that. For tweaking you can use the "tinymix" command line program.

Without parameters it will print every inputs, outputs, paths, kitchens, sinks and so on. My phone had 600+ of them. There is some comments in the xml file about which is doing what by the way, but if you know about a better documentation, please let me know.

For example, you can find the above mentioned two paths:

root@bacon:/ # tinymix | grep -iE 'RX1|RX2' | grep -i volume    
#ctl     type    num     name                                     value          
30      INT     1       RX1 Digital Volume                       93
31      INT     1       RX2 Digital Volume                       93

Here you can see that ID 30 and 31 is what we are looking for, and i have set them to 93 already.

You can manipulate the values  like this:

root@bacon:/ # tinymix 30 100                                                
root@bacon:/ # tinymix 31 100      
                                            
root@bacon:/ # tinymix | grep -iE 'RX1|RX2' | grep -i volume                
30      INT     1       RX1 Digital Volume                       100
31      INT     1       RX2 Digital Volume                       100


Have fun, if you find anything that improves microphone/speaker volume or quality, please let me know.


Update:





No comments:

Post a Comment