Increasing External Speaker Sound in CM11

UPDATE: Flash-able zip now available.

UPDATE2: From some research the snd_soc_msm is Qualcomm specific. After looking at the file/directory name it actually becomes a little more evident: “sound, system-on-a-chip, Mobile Station Modem”. The following post should apply to recent Android phones with Qualcomm a MSM8960 chipset.

I have never really been super happy with how my phone sounds while running CyanogenMod. It isn’t the sound quality that bothers me. It is the fact that the phone sounds much quieter than what I think it should be. Being that I pretty much left TouchWiz as soon as a version of CM was available it is hard for me to remember what true stock sounds like.

Recently I stumbled across this thread over at XDA Forums.  In the thread senior user eheinzeiii covers how he made the external speaker louder through a simple hack to a file. I thought I would give a more in-depth explanation of how to do this hack along with some additional screen captures.

What we’re going to be doing is editing this file /etc/snd_soc_msm/snd_soc_msm_2x. Obviously you’re going to need to be rooted. Theoretically this should work on different ROMs but I have not tested it.  Reply with your success or failure in the comments.

NOTE: In the linked thread I saw a bunch of people looking in /system/etc/sound. THIS IS INCORRECT!

You can do this modification in a number of different ways. I found it either to have the file on my local computer so that it would be easier to search through and modify. You can do all this on your phone however. I’m going to explain this as if you have pulled the file, edited it, and placed it back on your phone.

First step is to get the correct file. That means going to the folder /etc/snd_soc_msm and getting the file snd_soc_msm_2x. Notice there is no extension on this file. It also should only be the only file in the directory. I used adb pull to put the file on my desktop.

Root Explorer view of my snd_soc_msm folder.

Root Explorer view of my snd_soc_msm folder.

Once you have located the file and placed it on your desktop (or are going to edit it on the phone – make sure you’ve enabled R/W on the system partition) open it up in your favorite text editor. Go to line 3165. You’ll be greeted with a SectionDevice. It’s name is Speaker.

Notice this subsection:

EnableSequence
 'PRI_RX Channels':0:Two
 'RX5 MIX1 INP1':0:RX1
 'RX5 MIX1 INP2':0:RX2
 'RX6 DSM MUX':0:DSM_INV
 'LINEOUT2 Volume':1:100%
 'LINEOUT4 Volume':1:100%
 'RX5 Digital Volume':1:65%
EndSequence

You want to edit the percentage part of ‘RX5 Digital Volume’:1:65%. The thread suggested not going beyond 70%. Personally, I think 69% is even a little too much for the phone to handle.

If you search the file for ‘RX5 Digital Volume’ you’ll see references to it where it is set to 0% and other values. The 0% seems to always be present in the DisableSequence. I believe this is setting the speaker to “mute”. The only other section that I bother to change was a SectionDevice commented Speaker Rx device for voice call. On line 3203 you’ll see ‘RX5 Digital Volume’:2:65.7%. I changed the percentage in my file to 69.7%.

After this save your file. I strongly recommend you backup your original file on your device! Next push this back to your device’s /etc/snd_soc_msm folder with the name snd_soc_msm_2x overwriting the original. Now reboot.

Hopefully at this point you’ll get much louder notifications and ringtones!

My modified snd_soc_msm_2x file. Download, unzip, save to /etc/snd_soc_msm/snd_soc_msm_2x, and reboot.

UPDATEFlash-able zip now available.

About Mike

I'm a software engineer. Look into the about page for more information about me.
Tagged , , . Bookmark the permalink.

33 Responses to Increasing External Speaker Sound in CM11

  1. I can’t find “snd_soc_msm” folder on my CM11 phone. I even looked for it in system/etc, but its just not there 🙁

  2. Richard Navarro says:

    I downloaded your modified file and pushed it to my phone(SGSIII for MetroPCS) and it would get to the boot animation and stay there. Had to reflash my rom to get it back up and running. I can’t get my file explorer to save the file when I edit it.

  3. Joe says:

    I can’t seem to find the snd_soc_msm folder as well. I have a Samsung Galaxy S3 (GT-I9300) and I just recently flashed CM11. I used ES File Explorer to check the systems folder.

  4. Joe says:

    I got it! The reason why some of us were not able to find the snd_soc_msm folder is because of the phone variant we’re using. To increase external speaker volume on the GT-I9300, you have to navigate to /system/etc/sound and open the file “m0” as text using your file explorer’s text editor. (Don’t forget to remount /system as read-write before editing m0 or you won’t be able to save it after making changes.) Look for the line where it says and change the value from the line where it says to something higher. I set mine to 59 because that’s the loudest the value can get without distorting the sound, I think. You can also change the headset and earpiece volume using his method. Just look for or and adjust their values according to your preference. Save changes, reboot, and voila! 🙂

  5. Joe says:

    Look for the line where it says {device name=”speaker”} and change the value from the line where it says {ctl name=”Speaker Volume”val=”57″/} to something higher. I set mine to 59 because that’s the loudest the value can get without distorting the sound, I think. You can also change the headset and earpiece volume using this method. Just look for {device name=”headset”} or {device name=”earpiece”} and adjust their values according to your preference. Save changes, reboot, and voila! 🙂

  6. James Roche says:

    I can’t get my earpiece to increase in volume, i am using the variant with /etc/sounf/m0 but editing the output volume of the earpiece has little or no effect and actually mutes the earpiece when above 60? whats going on anyone know?

  7. Grimm says:

    Works perfect on gs3 art with cm11! Thanks for the zip dude. If I could, I’d give you five bucks lol.

    • Mike says:

      Thanks man! I really appreciate you letting me know it works for you.

      I won’t take any donations on this since it’s not really original work. I just pieced together work and research from other people and put it in an easy to do/read format. All I’m looking for is the shoutout!

  8. deadshot says:

    If you are using the international variant [GT-I9300] then “/system/etc/sound” is the correct pathway. Open The m0 file and edit it. 🙂

  9. Cheo says:

    Hi,

    Your post is very interesting. My phone Ascend PI LTE with android 4.0.4 has a bug, which makes it to play the music over headset. There has been similar problem with Ascend P1 (not LTE), however their fix is not directly portable to my Android version.

    I’ve found nd_soc_msm folder in my root etc , however I am not Android-fluent enough to modify the files without any nd_soc_msm docummentation. Could You help me with it, or let me know, where can I find any docummentation on the snd_soc_msm ? Sincerely, Jakub

    • Mike says:

      Hey Cheo,
      The Ascend PI looks to have the same Qualcomm chipset as the S3, the MSM8960. You can do a couple of things. I’d suggest you pull the snd_soc_msm_2x file from your device and do a diff with the one on my site. See if there are any changes besides the ones I’ve outlined as enhancements to the sound level. You could merge the two and then replace the version on your phone with the merged one. If you’re a bit more bold you could do a nandroid of your device and then flash the zip that I’ve posted. It’s possible that it would work with no problems, but I can’t say for sure. There really isn’t any documentation that I can find for the snd_soc_msm file. I’ve done all my research from reading various posts and then testing the results on my phone. I’m pretty sure the snd_soc_msm_2x file is ROM agnostic. Again, you’d be able to see any drastic changes if you did a line-by-line diff of the files.

  10. konan says:

    Thanks for the help. I’ve been toying with this too, however, I have GSNote2 on sprint (CM11 for L900) and I don’t see either a snd_soc_msm folder nor the m0 folder others are speaking of.

    I do however see that “sound” folder, and prior to me reading this article, I edited the respective lines in that file. after reboot, my sound was gone and making calls was very delayed/unresponsive. After reflashing cm11 I was back to normal…and back to the drawing board.

    Any confirmation on Note2 functionality/procedure?

  11. konan says:

    I got tired of searching. I settled for the Viper apk mod. to supplement my speaker low audio issue. I know some say their speakerphone sounded distorted even though everything else was great. Hopefully thats not a universal issue.

    http://highonandroid.com/android-apps/viper4android-app-for-rooted-android-best-audio-app/

  12. Natalia says:

    Hi! I´m using a S3 Mini with CM 11 and I can´t find the folder “sound” in “etc”. Any suggestions?

    • Mike says:

      You shouldn’t be looking for a folder called “sound”. The folder you’re looking for is: /etc/snd_soc_msm. The file in the folder is called: snd_soc_msm_2x.

      I haven’t checked if the s3 mini is using the qualcomm chipset or the exynos from Samsung. You may want to look at what chipset the mini uses. This mod only works for the qualcomm chipset.

    • Mike says:

      I don’t know if this mod will work for you after all. I looked around it it seems that the mini uses a completely different chipset than the US and international S3’s. It uses a ST-Ericsson NovaThor U8420.

      You’re welcome to look into if it works. Let us know. I’ve only tested this for the US version of the S3, although it seems to work on any similar Qualcomm chipset.

  13. Hi, I’m using a Samsung s4 mini with CM 11, i tried to change the values from snd_soc_msm_2x for the Headphones to 70%, but when I restart my phone it gets stuck in loading screen 🙁 any idea why? Am I changing something wrong?.. I changed this two values ‘RX1 Digital Volume’:2:62.9%
    ‘RX2 Digital Volume’:2:62.9%.

    SectionDevice
    Name “Headset”
    Comment “Headset Rx device”

    EnableSequence
    ‘PRI_RX Channels’:0:Two
    ‘SLIM RX1 MUX’:0:AIF1_PB
    ‘SLIM RX2 MUX’:0:AIF1_PB
    ‘RX1 MIX1 INP1’:0:RX1
    ‘RX2 MIX1 INP1’:0:RX2
    ‘HPHL DAC Switch’:1:1
    ‘HPHR DAC Switch’:1:1
    ‘HPHL Volume’:1:100%
    ‘HPHR Volume’:1:100%
    ‘RX1 Digital Volume’:2:62.9%
    ‘RX2 Digital Volume’:2:62.9%
    ‘COMP1 Switch’:1:1
    EndSequence

    • Mike says:

      Have you tried bumping them a smaller amount? Do any changes to that file cause a bootloop?

      On line 2800 of your file there is “‘RX4 Digital Volume’:1:68%”. Try playing music or sounds on your external speaker then try increasing or decreasing that value to see if the change sticks.

      I can only speculate on why it wouldn’t work in your case. It should, but it could be any number of reasons. Check the permissions on the file?

  14. I’ve lost my sound completely …..after flashing this file….I’m using cm 12.1on note 2 N7100….please help

  15. Adrian Banda says:

    The flash zip is exelent , i realy love you

Leave a Reply