[FIX] for no in-call audio/T-Mobile US/4.2.2/.33 radio or lower

Search This thread

simobile

Member
Jul 21, 2007
46
189
Silicon Valley/Bay Area
I posted this in General/LTE but I feel it will be easily found here.


This is to run stock 4.2.2/.33 or lower radio and not have audio issues.

Well after working a 10 hour day at a start-up, I came home and spent another 6 hours debugging our no in-call audio issue. This issue is specific to T-mobile USA customers with a certain N4 configuration. I'll explain it, only because some people will stumble upon this post and won't use the SEARCH!

You'll experience no audio during a call. No audio in the earpiece and no audio going in the mic. This is when you have:

Stock 4.2.2 (It's possible that it works on other roms that have this issue as well. Not sure.)
Either RIL file that is available. (doesn't matter)
Either bootloader (also doesn't matter)
.33 radio or lower


As I mentioned in a prior post, Google changed the sound table file for 4.2.2. This may have been to anger us but I feel like they were trying to enable an audio channel for the new HD calling or whatever. Not sure. Anyway, I verified that these entries are not in AOKP roms and that must be our issue. 4.2.2 radio has some kind of symbolic linking that matches that file and when we install .33, the rom expects that TMUS audio entry to be there and it's not. Any attempt to edit out those entries or use a straight AOKP file would cause a stuck boot animation and I'd have to do a restore...

I spent the last 6 hours tracing where each audio address was hooking too. As well as running logs to see what was going on. In a nutshell, all the audio triggers were reversed because of bad addressing. When you made a call, it would actually DISABLE mic and ear speaker audio! I didn't know how to remedy this as I didn't understand the audio "calibration database" system. So I studied it a bit and I wished I had earlier. The pattern I saw was that the main entity in a group has a set address. Something like 3:1. If any others fit in that main group, they also get 3:1. In the case of audio, think loudspeaker or loudspeaker with "dolby". Both are basically the same, so they can share the upper ranks. So imagine a loudspeaker that is much smaller and takes a different voltage, etc. That would be labeled in the next group of 6:1. So from what I saw, they basically doubled like that pretty often.

Without any further interruptions. The fix!

Your gonna need a root file manager. I like ES file explorer. It'll need to have root access enabled in the settings. You'll also need a text editor. You can use ES built in one but it really sucks. I use 920 text editor. Both those are free apps people. Do a backup before you start this as I had lots of booting issues trying to work this one out.

Now open ES (or other file manager) and navigate to root "/" on your phone. Click on the etc folder and then the snd_soc-msm folder. There will only be one file in there, snd_soc_msm_2x_Fusion3. Do whatever you have to do to change file permissions on that file. In ES, you hold down on file and go down until it brings up a box. Scroll down to the bottom and go to properties. It'll bring up the permissions. Click on the "change" box. Note it's default properties. Write them down if you have to! Now click all the check boxes. Make it a really open file! Then hit OK and go back to the directory. Click on file to open. An "Open As" box will pop up. Open as text in your 920 or whatever your app is.

You'll see the long ass Fusion3 file outlining all sound properties of your device. Were interested in changing line 1804 and 2736. If you have a good text editor, these will be listed on the left. Scroll down to line 1804 and you'll see the ACDBID or audio calibration database ID. Like this...

Modify /snd_soc_msm_2x_Fusion3 diff


...
1777 1777
1778 1778 ACDBID 7:1
1779 1779
1780 + EndSection
1781 +
1782 + SectionDevice
1783 + Name "Voice Earpiece TMUS"
1784 + Comment "Handset Rx device"
1785 +
1786 + EnableSequence
1787 + 'SLIM_0_RX Channels':0:eek:ne
1788 + 'RX1 MIX1 INP1':0:RX1
1789 + 'RX1 MIX1 INP2':0:RX6
1790 + 'RX1 Digital Volume':1:68
1791 + 'EAR PA Gain':0:pOS_6_DB
1792 + 'DAC1 Switch':1:1
1793 + 'SLIM TX3 MUX':0:RMIX1
1794 + EndSequence
1795 +
1796 + DisableSequence
1797 + 'RX1 MIX1 INP1':0:ZERO
1798 + 'RX1 MIX1 INP2':0:ZERO
1799 + 'RX1 Digital Volume':1:68
1800 + 'DAC1 Switch':1:0
1801 + 'SLIM TX3 MUX':0:ZERO
1802 + EndSequence
1803 +
1804 + ACDBID 81:1
1805 +
1780 1806 EndSection
1781 1807
1782 1808 SectionDevice
...
2320 2346 EffectsMixerCTL "SRS TruMedia"
2321 2347
2322 2348 EndSection
2349 +
2323 2350 SectionDevice
2324 2351 Name "HeadsetVM Tx"
2325 2352 Comment "Headset Tx device"
...
2669 2696 ACDBID 6:2
2670 2697 EffectsMixerCTL "SRS TruMedia"
2671 2698
2699 + EndSection
2700 +
2701 + SectionDevice
2702 + Name "DMIC Endfire TMUS"
2703 + Comment "Dual MIC Endfire Tx device"
2704 +
2705 + EnableSequence
2706 + 'SLIM TX7 MUX':0:DEC7
2707 + 'DEC7 MUX':0:ADC1
2708 + 'SLIM TX8 MUX':0:DEC9
2709 + 'DEC9 MUX':0:ADC3
2710 + 'DEC7 Volume':1:66
2711 + 'ADC1 Volume':1:100
2712 + 'DEC9 Volume':1:66
2713 + 'ADC3 Volume':1:100
2714 + 'SLIM_0_TX Channels':0:Two
2715 + 'MICBIAS1 CAPLESS Switch':1:0
2716 + 'RX1 MIX2 INP1':0:IIR1
2717 + 'RX2 MIX2 INP1':0:IIR1
2718 + 'IIR1 INP1 Volume':1:51
2719 + 'IIR1 INP1 MUX':0:DEC7
2720 + EndSequence
2721 +
2722 + DisableSequence
2723 + 'DEC7 Volume':1:60
2724 + 'DEC9 Volume':1:60
2725 + 'SLIM TX7 MUX':0:ZERO
2726 + 'DEC7 MUX':0:ZERO
2727 + 'SLIM TX8 MUX':0:ZERO
2728 + 'DEC9 MUX':0:ZERO
2729 + 'MICBIAS1 CAPLESS Switch':1:1
2730 + 'RX1 MIX2 INP1':0:ZERO
2731 + 'RX2 MIX2 INP1':0:ZERO
2732 + 'IIR1 INP1 Volume':1:0
2733 + 'IIR1 INP1 MUX':0:ZERO
2734 + EndSequence
2735 +
2736 + ACDBID 91:2
2737 + EffectsMixerCTL "SRS TruMedia"
2738 +
2672 2739 EndSection
2673 2740
2674 2741 SectionDevice

We need to change the ACDBID 81:1 at line 1804 to ACDBID 7:1. You can just erase the 81 and change it to 7. Just make sure spacing is the same. 1 space between the letters and the 7. Now go down to line 2736 and change the ACDBID 91:2 to ACDBID 6:2. Now you need to save that file. You won't be able to save directly over that file. You'll have to do a "save as" to somewhere that's easy to find. I just chose my download folder. Now go back into ES manager and find your file you made and copy it. Go to the snd_soc-msm folder and delete the original file and then paste your modified one in.

Now go to the properties of your new file and change the permissions back to the original default settings. This is very important. If left unprotected, someone could control any audio settings at will. This includes your microphone. Not cool.

Last but not least, reboot.

Don't forget to backup before starting procedure.
I'm not responsible for dead puppies or bricked phones.
etc. etc. etc.



Forgive any 3am grammar mistakes and enjoy your stock/TM-US/LTE! =)
 
Last edited:

simobile

Member
Jul 21, 2007
46
189
Silicon Valley/Bay Area
You can't. ES text file support is poor. That's why I suggested "920 text editor". It's free and works okay. Search is no good and android as a whole bogs really hard on big text files. It does have numbered lines and quick scroll.

If all else fails, you can copy the file in ES and put it in download location, transfer to pc, do the edits there, put file back on phone and done.

Sent from my Nexus 4 using xda app-developers app
 

simms22

Recognized Contributor - R.I.P
Jun 4, 2009
34,053
25,934
BROOKLYN!
www.androidcommunity.com
thanks, got it working on the first try. just to let you know, its much easier to use root explorer to do the editing. no need to copy anything over to someplace else, plus it backs up the original file too. but, root explorer doesnt show the line numbers, so you have to find the right lines yourself.
 
  • Like
Reactions: lwfb and Jayrod1980

3oudreaux

Senior Member
Feb 28, 2012
93
37
This is exactly what I have been waiting for!!! Finally AOSP BASED ROMS work with T-Mobile LTE.
I hope that ROM devs will incorporate this in their builds, but I'm entirely happy doing it manually.

Great Work:good::good::D
 
  • Like
Reactions: Jonphinguyen7

droidwrx

Member
Oct 19, 2010
32
10
This is a huge discovery. Mad props to simobile. Is there a way to turn this into a .zip file flashable in recovery, like that zip that adds the lines to the build.prop for LTE? I'm no developer, but being able to flash this would be great, as opposed to editing the file every time a new ROM is flashed.

Sent from my Nexus 4 using Tapatalk 2
 

simms22

Recognized Contributor - R.I.P
Jun 4, 2009
34,053
25,934
BROOKLYN!
www.androidcommunity.com
This is a huge discovery. Mad props to simobile. Is there a way to turn this into a .zip file flashable in recovery, like that zip that adds the lines to the build.prop for LTE? I'm no developer, but being able to flash this would be great, as opposed to editing the file every time a new ROM is flashed.

Sent from my Nexus 4 using Tapatalk 2

copy the file, keep it in your storage, then copy/paste it in the proper place after a flash.
 

Jayrod1980

Senior Member
Feb 4, 2009
2,415
600
Far East
As much as I like cm this basically let's me come back to rasbean which is great.

Sent from my Nexus 4 using xda premium
 

ctfrommn

Senior Member
May 25, 2011
7,442
10,777
Minnesota
You sir are the man! I can now successfully use pure aosp ROMs again with the .27 baseband. Very very impressive work.
Many thanks :)

Sent from my blazing bionic Nexus 4
 

sMtt

Senior Member
May 6, 2012
110
64
Ankara
I'm not in U.S and not using T-Mobile but I have a question, the problem you all talking about is no audio completely during a call, or you have audio but it's cutting off while talking? Cause i'm using .27 radio with 4.2.2 aosp and sometimes I lose incoming audio and my mic randomly during a call. I'll apply the fix if it's related to this problem?
 

muyoso

Senior Member
Oct 23, 2007
2,492
492
I'm not in U.S and not using T-Mobile but I have a question, the problem you all talking about is no audio completely during a call, or you have audio but it's cutting off while talking? Cause i'm using .27 radio with 4.2.2 aosp and sometimes I lose incoming audio and my mic randomly during a call. I'll apply the fix if it's related to this problem?

This is a very specific problem only for T-mobile customers I believe. Literally there is no audio at all. Like you can't hear the phone ring, the person talk, they can't hear you. Its like the entire microphone and speaker system of the phone shuts down when a call is initiated when on 4.2.2 roms with .33 radio on T-mobile.

Thanks again simobile. Awesome work.
 
  • Like
Reactions: sMtt

sMtt

Senior Member
May 6, 2012
110
64
Ankara
This is a very specific problem only for T-mobile customers I believe. Literally there is no audio at all. Like you can't hear the phone ring, the person talk, they can't hear you. Its like the entire microphone and speaker system of the phone shuts down when a call is initiated when on 4.2.2 roms with .33 radio on T-mobile.

Then it's not exactly my problem. I have things working but losing mic and audio sometimes. Maybe kernel related. Thanks for explanation :highfive:
 

Top Liked Posts

  • There are no posts matching your filters.
  • 64
    I posted this in General/LTE but I feel it will be easily found here.


    This is to run stock 4.2.2/.33 or lower radio and not have audio issues.

    Well after working a 10 hour day at a start-up, I came home and spent another 6 hours debugging our no in-call audio issue. This issue is specific to T-mobile USA customers with a certain N4 configuration. I'll explain it, only because some people will stumble upon this post and won't use the SEARCH!

    You'll experience no audio during a call. No audio in the earpiece and no audio going in the mic. This is when you have:

    Stock 4.2.2 (It's possible that it works on other roms that have this issue as well. Not sure.)
    Either RIL file that is available. (doesn't matter)
    Either bootloader (also doesn't matter)
    .33 radio or lower


    As I mentioned in a prior post, Google changed the sound table file for 4.2.2. This may have been to anger us but I feel like they were trying to enable an audio channel for the new HD calling or whatever. Not sure. Anyway, I verified that these entries are not in AOKP roms and that must be our issue. 4.2.2 radio has some kind of symbolic linking that matches that file and when we install .33, the rom expects that TMUS audio entry to be there and it's not. Any attempt to edit out those entries or use a straight AOKP file would cause a stuck boot animation and I'd have to do a restore...

    I spent the last 6 hours tracing where each audio address was hooking too. As well as running logs to see what was going on. In a nutshell, all the audio triggers were reversed because of bad addressing. When you made a call, it would actually DISABLE mic and ear speaker audio! I didn't know how to remedy this as I didn't understand the audio "calibration database" system. So I studied it a bit and I wished I had earlier. The pattern I saw was that the main entity in a group has a set address. Something like 3:1. If any others fit in that main group, they also get 3:1. In the case of audio, think loudspeaker or loudspeaker with "dolby". Both are basically the same, so they can share the upper ranks. So imagine a loudspeaker that is much smaller and takes a different voltage, etc. That would be labeled in the next group of 6:1. So from what I saw, they basically doubled like that pretty often.

    Without any further interruptions. The fix!

    Your gonna need a root file manager. I like ES file explorer. It'll need to have root access enabled in the settings. You'll also need a text editor. You can use ES built in one but it really sucks. I use 920 text editor. Both those are free apps people. Do a backup before you start this as I had lots of booting issues trying to work this one out.

    Now open ES (or other file manager) and navigate to root "/" on your phone. Click on the etc folder and then the snd_soc-msm folder. There will only be one file in there, snd_soc_msm_2x_Fusion3. Do whatever you have to do to change file permissions on that file. In ES, you hold down on file and go down until it brings up a box. Scroll down to the bottom and go to properties. It'll bring up the permissions. Click on the "change" box. Note it's default properties. Write them down if you have to! Now click all the check boxes. Make it a really open file! Then hit OK and go back to the directory. Click on file to open. An "Open As" box will pop up. Open as text in your 920 or whatever your app is.

    You'll see the long ass Fusion3 file outlining all sound properties of your device. Were interested in changing line 1804 and 2736. If you have a good text editor, these will be listed on the left. Scroll down to line 1804 and you'll see the ACDBID or audio calibration database ID. Like this...

    Modify /snd_soc_msm_2x_Fusion3 diff


    ...
    1777 1777
    1778 1778 ACDBID 7:1
    1779 1779
    1780 + EndSection
    1781 +
    1782 + SectionDevice
    1783 + Name "Voice Earpiece TMUS"
    1784 + Comment "Handset Rx device"
    1785 +
    1786 + EnableSequence
    1787 + 'SLIM_0_RX Channels':0:eek:ne
    1788 + 'RX1 MIX1 INP1':0:RX1
    1789 + 'RX1 MIX1 INP2':0:RX6
    1790 + 'RX1 Digital Volume':1:68
    1791 + 'EAR PA Gain':0:pOS_6_DB
    1792 + 'DAC1 Switch':1:1
    1793 + 'SLIM TX3 MUX':0:RMIX1
    1794 + EndSequence
    1795 +
    1796 + DisableSequence
    1797 + 'RX1 MIX1 INP1':0:ZERO
    1798 + 'RX1 MIX1 INP2':0:ZERO
    1799 + 'RX1 Digital Volume':1:68
    1800 + 'DAC1 Switch':1:0
    1801 + 'SLIM TX3 MUX':0:ZERO
    1802 + EndSequence
    1803 +
    1804 + ACDBID 81:1
    1805 +
    1780 1806 EndSection
    1781 1807
    1782 1808 SectionDevice
    ...
    2320 2346 EffectsMixerCTL "SRS TruMedia"
    2321 2347
    2322 2348 EndSection
    2349 +
    2323 2350 SectionDevice
    2324 2351 Name "HeadsetVM Tx"
    2325 2352 Comment "Headset Tx device"
    ...
    2669 2696 ACDBID 6:2
    2670 2697 EffectsMixerCTL "SRS TruMedia"
    2671 2698
    2699 + EndSection
    2700 +
    2701 + SectionDevice
    2702 + Name "DMIC Endfire TMUS"
    2703 + Comment "Dual MIC Endfire Tx device"
    2704 +
    2705 + EnableSequence
    2706 + 'SLIM TX7 MUX':0:DEC7
    2707 + 'DEC7 MUX':0:ADC1
    2708 + 'SLIM TX8 MUX':0:DEC9
    2709 + 'DEC9 MUX':0:ADC3
    2710 + 'DEC7 Volume':1:66
    2711 + 'ADC1 Volume':1:100
    2712 + 'DEC9 Volume':1:66
    2713 + 'ADC3 Volume':1:100
    2714 + 'SLIM_0_TX Channels':0:Two
    2715 + 'MICBIAS1 CAPLESS Switch':1:0
    2716 + 'RX1 MIX2 INP1':0:IIR1
    2717 + 'RX2 MIX2 INP1':0:IIR1
    2718 + 'IIR1 INP1 Volume':1:51
    2719 + 'IIR1 INP1 MUX':0:DEC7
    2720 + EndSequence
    2721 +
    2722 + DisableSequence
    2723 + 'DEC7 Volume':1:60
    2724 + 'DEC9 Volume':1:60
    2725 + 'SLIM TX7 MUX':0:ZERO
    2726 + 'DEC7 MUX':0:ZERO
    2727 + 'SLIM TX8 MUX':0:ZERO
    2728 + 'DEC9 MUX':0:ZERO
    2729 + 'MICBIAS1 CAPLESS Switch':1:1
    2730 + 'RX1 MIX2 INP1':0:ZERO
    2731 + 'RX2 MIX2 INP1':0:ZERO
    2732 + 'IIR1 INP1 Volume':1:0
    2733 + 'IIR1 INP1 MUX':0:ZERO
    2734 + EndSequence
    2735 +
    2736 + ACDBID 91:2
    2737 + EffectsMixerCTL "SRS TruMedia"
    2738 +
    2672 2739 EndSection
    2673 2740
    2674 2741 SectionDevice

    We need to change the ACDBID 81:1 at line 1804 to ACDBID 7:1. You can just erase the 81 and change it to 7. Just make sure spacing is the same. 1 space between the letters and the 7. Now go down to line 2736 and change the ACDBID 91:2 to ACDBID 6:2. Now you need to save that file. You won't be able to save directly over that file. You'll have to do a "save as" to somewhere that's easy to find. I just chose my download folder. Now go back into ES manager and find your file you made and copy it. Go to the snd_soc-msm folder and delete the original file and then paste your modified one in.

    Now go to the properties of your new file and change the permissions back to the original default settings. This is very important. If left unprotected, someone could control any audio settings at will. This includes your microphone. Not cool.

    Last but not least, reboot.

    Don't forget to backup before starting procedure.
    I'm not responsible for dead puppies or bricked phones.
    etc. etc. etc.



    Forgive any 3am grammar mistakes and enjoy your stock/TM-US/LTE! =)
    10
    I have created a shell script to make the changes from the first post. Its great for Flashaholics like myself. It will tell you the line it found it on and what it changed it to after creating a backup. Seems to work as expected and I am not getting any issues after running it.

    I also have a build prop editor that makes the needed changes or additions to enable LTE.

    Link to my scripts post

    The only thing that i found different is the my sound file uses a TAB in between and not a space as mentioned. i had to pull the file directly from my phone and copy exactly what it had for the lines that needed to be edited since my original script was not finding anything.
    8
    This WILL NOT work on .48 radio. That is clearly stated. It must be .33 or lower.

    Also, I've isolated most of the problem areas in the .48 radio and hope to have a fix soon. I haven't had time to sort out the RIL yet though.

    Sent from my Nexus 4 using xda app-developers app
    6
    KLP may support LTE but N4 never will. No official update ever will. In fact it will be even harder because .33 radio may or may not work with KLP. Its an FCC issue and always will be.

    Your technically breaking the law when your phone is on LTE. It'd be the same as me modifying my Direct TV dish to get HD when its only SD. Both packages cost the same, so I'm not stealing but RCA didn't FCC approve my dish to receive that frequency.

    That doesn't mean I didn't help lots of people enable LTE and have no qualms about it. I just don't want anyone getting anyone's hopes up for official LTE on N4. Cuz its never gonna happen. Which is why I'm modifying my RIL and latest N4 modem myself.

    I'll keep you guys updated. =)

    Sent from my Nexus 4 using xda app-developers app
    6
    No problem at all guys.

    This was something that had been bugging me for a long time and I just HAD to find a solution. Keep in mind I'm no hardcore programmer. I know just enough to sometimes understand what the code is doing but its still not always clear. My job is failure analysis on robots, so I'm more of a hardware guy. The point I'm trying to make is that these devices can be bent to our will and you don't need a lot of experience.

    I'd personally like to inject the LTE portion of .33 baseband into the newest radio. Once we know how to do that, it can be applied to future radios.

    =)

    Sent from my Nexus 4 using xda app-developers app