[Guide] Enabling VoLTE/VoWiFi v2

Search This thread

HomerSp

Retired Recognized Developer
Jan 5, 2010
619
584
Stockholm
Preface
With this guide I can officially deprecate the other guide I wrote, as we will no longer have to hack together a solution by loading profiles for other carriers. Meaning, that this should just work provided an mbn exists for your carrier - doesn't matter from which device. This has been reported to work on TMO in the US, which did not work with my other method.

Prerequsities
* You must have working DIAG mode. See my other thread for more information on how to set that up.

Downloads
* AsusVoLTE v1.0.1
* EfsTools 0.10 modded 1.2
* EFS items
* Xiaomi Mi 9T MBNs (optional)

Step 1 - setting props
Install the AsusVoLTE app from above, make sure to upgrade if you already have it installed. Run the app and press the Enable VoLTE button; this should set some properties on the device to force-enable VoLTE after we have also done the other steps below. If you already enable VoLTE using my old method you can safely skip this step.
If you prefer to not use the app, simply run this in an adb shell:
Code:
setprop persist.vendor.dbg.ims_volte_enable 1
setprop persist.vendor.dbg.volte_avail_ovr 1
setprop persist.vendor.dbg.vt_avail_ovr 1
setprop persist.vendor.dbg.wfc_avail_ovr 1

If you are unable to set those properties for whatever reason, like if you have returned to stock after flashing the mbn and no longer have root, there is another possibility to force VoLTE/VoWiFi; There's a secret code you can use to force-enable it, but unfortunately it does not survive a reboot (not sure why ASUS didn't make it persistent).
Enter this in the dialler:
Code:
*#*#3642623344#*#*
The number will clear itself, and you shouldn't see any output if it succeeded.
When you have done this, go to (System) Settings -> Mobile network and toggle Mobile data off then on again. You should hopefully see the VoWiFi or VoLTE icon in the status bar now, but like I said above you will have to redo this if you reboot the phone - so if you can, please use the properties method instead.

Step 2 - making sure it works
Before we begin, make sure you close down QPST, otherwise EfsTools will error out because there can not be two clients connected at once.
Unzip EfsTools from above, open up a cmd window and cd to the directory where you extracted it. Depending on how you connect to diag you will need to modify EfsTools.exe.config - if you're connecting via USB you most likely won't have to do anything as it will find the port automatically, unless you have more than one port, in which case you can simply change port from Auto to the COM port of the phone (for example COM13).
If you are connected via wifi you will need to change port to 2500 (or whatever port you used in the AsusVoLTE app) and remote to true. So the efstool line should look something like this:
Code:
<efstool port="2500" remote="true" baudrate="38400" password="FFFFFFFFFFFFFFFF" spc="000000"/>
You can test the connection by running this in the cmd window:
Code:
EfsTools.exe efsInfo
This should report back some info if everything is working. If not, try rebooting the device and redo the bits from the DIAG guide.

Step 3 - disabling mcfg
Extract efs.zip from above to the same directory as EfsTools.exe, and make sure the mcfg_autoselect_by_uim file is there. Now simply run this in the cmd window, one line at a time:
Code:
EfsTools.exe writeFile -i mcfg_autoselect_by_uim -o /nv/item_files/mcfg/mcfg_autoselect_by_uim
EfsTools.exe writeFile -i mcfg_autoselect_by_uim -o /nv/item_files/mcfg/mcfg_autoselect_by_uim -s 1
If everything worked you should see no error messages.

Step 4 - writing mbn
If you are using the Xiaomi Mi 9T mbns zip from above, move it to the EfsTools directory and extract it. Now we simply need to find the mbn for your carrier.
The mbn directory structure is generally laid out like this: <region>/<carrier>/commerci/<country>/mcfg_sw.mbn. For example, the one for my carrier is eu/h3g/commerci/se/mcfg_sw.mbn. Copy the mcfg_sw.mbn file to the same directory as the EfsTools.exe, then go to the cmd window you opened and type this:
Code:
EfsTools.exe uploadDirectory -i mcfg_sw.mbn -o / -v
To get it working on the second SIM slot you will also have to run this:
Code:
EfsTools.exe uploadDirectory -i mcfg_sw.mbn -o / -s 1

If it has worked you should see a bunch of output, but no errors. Try rebooting now, and hopefully after it has booted you will have fully functional VoLTE and VoWiFi.

Source code:
AsusVoLTE - Github
EfsTools - Github

Let me know if this works for you, or if you have any questions.

Regards
 
Last edited:

xbamaris1`

Member
Dec 22, 2019
42
14
I cannot for the life of me get either method to work. Connected via USB. DIAG mode driver is loaded on COM1, even changed Baud rate on the COM port in device manager to 38400. USB method gives me "Critical Error: Bad Command" Remote method does not send any information but indefinitely runs. I'm really not sure what else to try. Im on the latest WW Firmware with Magisk root. Is there anything else I can check? Are you on the 8 GB Tencent version?
 

HomerSp

Retired Recognized Developer
Jan 5, 2010
619
584
Stockholm
I cannot for the life of me get either method to work. Connected via USB. DIAG mode driver is loaded on COM1, even changed Baud rate on the COM port in device manager to 38400. USB method gives me "Critical Error: Bad Command" Remote method does not send any information but indefinitely runs. I'm really not sure what else to try. Im on the latest WW Firmware with Magisk root. Is there anything else I can check? Are you on the 8 GB Tencent version?
Is COM1 the only port available? What does it identify itself as in Device Manager? It should be a Qualcomm ... 902d device.
I'm on the tencent version, yeah, so it should be working for you as well.
 
  • Like
Reactions: stealthj

xbamaris1`

Member
Dec 22, 2019
42
14
Is COM1 the only port available? What does it identify itself as in Device Manager? It should be a Qualcomm ... 902d device.
I'm on the tencent version, yeah, so it should be working for you as well.

I changed it to that, I'm even trying this on a completely different computer to see. Now its on COM3 on the different system with that driver. I even recently did a full WW firmware flash and factory reset as well. So its pretty much completely stock other than Root and the Apps you made / modified.

Still, Critical error. Bad Command when running efsTools efsInfo

What version of the driver does it say for you?

Edit: When you're able to access efs, What does your sys.usb.state say? I have rndis,adb shown but sys.usb.config is set for rndis,diag,adb. Does your sys.usb.state have diag included?
 
Last edited:

Cammarratta

Senior Member
Jun 15, 2009
221
47
Use serial port 'COM13'
Critical error. The requested resource is in use.
Use serial port 'COM13'
Critical error. The requested resource is in use.

Use serial port 'COM13'
Critical error. The requested resource is in use.

I keep getting the following error and I'm not sure what the cause may be. Is it possible that a video tutorial could be made to help out in beginning as I'm not sure what I'm doing wrong on my end.


Thank you so much for your work on this though! It is nothing short of amazing.

Does it matter which USB port we use on the device? I've tested both the bottom and the side and neither are working.
 

xbamaris1`

Member
Dec 22, 2019
42
14
Use serial port 'COM13'
Critical error. The requested resource is in use.
Use serial port 'COM13'
Critical error. The requested resource is in use.

Use serial port 'COM13'
Critical error. The requested resource is in use.

I keep getting the following error and I'm not sure what the cause may be. Is it possible that a video tutorial could be made to help out in beginning as I'm not sure what I'm doing wrong on my end.


Thank you so much for your work on this though! It is nothing short of amazing.

Does it matter which USB port we use on the device? I've tested both the bottom and the side and neither are working.

Make sure you dont have QPST server running. Its not required if using the tools. I ran into this issue and realized thats what it was that was using it.
 
  • Like
Reactions: Cammarratta

Cammarratta

Senior Member
Jun 15, 2009
221
47
How do I make sure the server is not running? I've rebooted and checked but I'm not seeing anything/indication of it doing so. Thank you in advance!
 

Cammarratta

Senior Member
Jun 15, 2009
221
47
Hrmmm still not working on my end. Not sure what I'm doing wrong but I'll give it a rest for the time being.

My qserver keeps saying that it cannot find my USB or phone either. So I might be missing something. I'll Uninstall and try again though
 

xbamaris1`

Member
Dec 22, 2019
42
14
Hrmmm still not working on my end. Not sure what I'm doing wrong but I'll give it a rest for the time being.

My qserver keeps saying that it cannot find my USB or phone either. So I might be missing something. I'll Uninstall and try again though

What does it say for you? It won't find it if you turn it off. What is the COM port / driver that shows up in Device Manager
 

HomerSp

Retired Recognized Developer
Jan 5, 2010
619
584
Stockholm
I changed it to that, I'm even trying this on a completely different computer to see. Now its on COM3 on the different system with that driver. I even recently did a full WW firmware flash and factory reset as well. So its pretty much completely stock other than Root and the Apps you made / modified.

Still, Critical error. Bad Command when running efsTools efsInfo

What version of the driver does it say for you?

Edit: When you're able to access efs, What does your sys.usb.state say? I have rndis,adb shown but sys.usb.config is set for rndis,diag,adb. Does your sys.usb.state have diag included?
Could you try this updated EfsTools: https://github.com/HomerSp/EfsTools...modded-1.1/EfsTools-0.10-modded-1.1-win32.zip Hopefully it should work for you.

sys.usb.state is supposed to say just rndis,adb - diag will only be listed in sys.usb.config.
 

ased10

Member
Sep 4, 2010
46
10
Preface
With this guide I can officially deprecate the other guide I wrote, as we will no longer have to hack together a solution by loading profiles for other carriers. Meaning, that this should just work provided an mbn exists for your carrier - doesn't matter from which device. This has been reported to work on TMO in the US, which did not work with my other method.

Prerequsities
* You must have working DIAG mode. See my other thread for more information on how to set that up.

Downloads
* AsusVoLTE v1.0.1
* EfsTools 0.10 modded 1.1
* EFS items
* Xiaomi Mi 9T MBNs (optional)

Step 1 - setting props
Install the AsusVoLTE app from above, make sure to upgrade if you already have it installed. Run the app and press the Enable VoLTE button; this should set some properties on the device to force-enable VoLTE after we have also done the other steps below. If you already enable VoLTE using my old method you can safely skip this step.

Step 2 - making sure it works
Before we begin, make sure you close down QPST, otherwise EfsTools will error out because there can not be two clients connected at once.
Unzip EfsTools from above, open up a cmd window and cd to the directory where you extracted it. Depending on how you connect to diag you will need to modify EfsTools.exe.config - if you're connecting via USB you most likely won't have to do anything as it will find the port automatically, unless you have more than one port, in which case you can simply change port from Auto to the COM port of the phone (for example COM13).
If you are connected via wifi you will need to change port to 2500 (or whatever port you used in the AsusVoLTE app) and remote to true. So the efstool line should look something like this:

You can test the connection by running this in the cmd window:

This should report back some info if everything is working. If not, try rebooting the device and redo the bits from the DIAG guide.

Step 3 - disabling mcfg
Extract efs.zip from above to the same directory as EfsTools.exe, and make sure the mcfg_autoselect_by_uim file is there. Now simply run this in the cmd window, one line at a time:

If everything worked you should see no error messages.

Step 4 - writing mbn
If you are using the Xiaomi Mi 9T mbns zip from above, move it to the EfsTools directory and extract it. Now we simply need to find the mbn for your carrier.
The mbn directory structure is generally laid out like this: <region>/<carrier>/commerci/<country>/mcfg_sw.mbn. For example, the one for my carrier is eu/h3g/commerci/se/mcfg_sw.mbn. Copy the mcfg_sw.mbn file to the same directory as the EfsTools.exe, then go to the cmd window you opened and type this:

If it has worked you should see a bunch of output, but no errors. Try rebooting now, and hopefully after it has booted you will have fully functional VoLTE and VoWiFi.

Source code:
AsusVoLTE - Github
EfsTools - Github

Let me know if this works for you, or if you have any questions.

Regards

Absolutely genius:cool:, your work here is greatly appreciated everything is working perfectly VoLTE and VoWiFi with caller display

I used the EE mbn included in the Xiaomi Mi 9T MBNs provided , So for anyone on EE i can say it works without a problem.

Thank you :good:HomerSp
 

Cammarratta

Senior Member
Jun 15, 2009
221
47
in device manager it shows up as
Qualcomm HS-USB Android DIAG 902D (COM13)


EDIT: It started working oddly enough. Which mi9 file would I flash for tmobile USA to test?

Thank you in advance for this!
Edit 2: got it working! Had to Uninstall, reinstall qpst, open up app and click enable DIAG, then stop the server in qstp and input the commands and it worked!
 

Attachments

  • Screenshot_20200101-121702758.jpg
    Screenshot_20200101-121702758.jpg
    56.3 KB · Views: 709
Last edited:

xbamaris1`

Member
Dec 22, 2019
42
14
Could you try this updated EfsTools: https://github.com/HomerSp/EfsTools...modded-1.1/EfsTools-0.10-modded-1.1-win32.zip Hopefully it should work for you.

sys.usb.state is supposed to say just rndis,adb - diag will only be listed in sys.usb.config.

Thought so, just wanted to make sure.

https://imgur.com/a/WZvKteM is what I get. Is it possible to go back to an earlier RAW rom? I want to see if theres something in earlier ROMS that will make it work. I'm just at a loss. I'm not sure what I'm missing for this to work.
 

jinsiik

Senior Member
Apr 28, 2011
55
4
I cannot for the life of me get either method to work. Connected via USB. DIAG mode driver is loaded on COM1, even changed Baud rate on the COM port in device manager to 38400. USB method gives me "Critical Error: Bad Command" Remote method does not send any information but indefinitely runs. I'm really not sure what else to try. Im on the latest WW Firmware with Magisk root. Is there anything else I can check? Are you on the 8 GB Tencent version?

Same issue as you, i had it working at the start then it just stopped altogether. Hoping a next asus update could reset whatever i did to it and retry it again
 

Cammarratta

Senior Member
Jun 15, 2009
221
47
Mine is getting stuck on "Use serial port 'COM5'" and nothing happens after that. Any recommendations how to make it work?


I had to Uninstall qpst entirely, reinstall it. Then plug my phone in, open up the Asus volteapp and hit enable DIAG, my device then showed up in device manager, then I stopped the qpst server and it worked for me just fine. Using windows 10 with latest update.
 

killerdvd

Senior Member
Nov 24, 2008
99
44
Nintendo Switch
ASUS ROG Phone II
I had to Uninstall qpst entirely, reinstall it. Then plug my phone in, open up the Asus volteapp and hit enable DIAG, my device then showed up in device manager, then I stopped the qpst server and it worked for me just fine. Using windows 10 with latest update.
Thanks for the quick response. My device is already showing in device manager with COM 6. I never installed QPST since is not needed for USB connection. QPST is not even mention on OP.
 

Cammarratta

Senior Member
Jun 15, 2009
221
47
I want to say the first part says that you need to have DIAG enabled.

Prerequsities
* You must have working DIAG mode. See my other thread for more information on how to set that up.

Which I think needed QPST installed. Unless I'm sadly mistaken, then please disregard!
 

Top Liked Posts

  • There are no posts matching your filters.
  • 37
    Preface
    With this guide I can officially deprecate the other guide I wrote, as we will no longer have to hack together a solution by loading profiles for other carriers. Meaning, that this should just work provided an mbn exists for your carrier - doesn't matter from which device. This has been reported to work on TMO in the US, which did not work with my other method.

    Prerequsities
    * You must have working DIAG mode. See my other thread for more information on how to set that up.

    Downloads
    * AsusVoLTE v1.0.1
    * EfsTools 0.10 modded 1.2
    * EFS items
    * Xiaomi Mi 9T MBNs (optional)

    Step 1 - setting props
    Install the AsusVoLTE app from above, make sure to upgrade if you already have it installed. Run the app and press the Enable VoLTE button; this should set some properties on the device to force-enable VoLTE after we have also done the other steps below. If you already enable VoLTE using my old method you can safely skip this step.
    If you prefer to not use the app, simply run this in an adb shell:
    Code:
    setprop persist.vendor.dbg.ims_volte_enable 1
    setprop persist.vendor.dbg.volte_avail_ovr 1
    setprop persist.vendor.dbg.vt_avail_ovr 1
    setprop persist.vendor.dbg.wfc_avail_ovr 1

    If you are unable to set those properties for whatever reason, like if you have returned to stock after flashing the mbn and no longer have root, there is another possibility to force VoLTE/VoWiFi; There's a secret code you can use to force-enable it, but unfortunately it does not survive a reboot (not sure why ASUS didn't make it persistent).
    Enter this in the dialler:
    Code:
    *#*#3642623344#*#*
    The number will clear itself, and you shouldn't see any output if it succeeded.
    When you have done this, go to (System) Settings -> Mobile network and toggle Mobile data off then on again. You should hopefully see the VoWiFi or VoLTE icon in the status bar now, but like I said above you will have to redo this if you reboot the phone - so if you can, please use the properties method instead.

    Step 2 - making sure it works
    Before we begin, make sure you close down QPST, otherwise EfsTools will error out because there can not be two clients connected at once.
    Unzip EfsTools from above, open up a cmd window and cd to the directory where you extracted it. Depending on how you connect to diag you will need to modify EfsTools.exe.config - if you're connecting via USB you most likely won't have to do anything as it will find the port automatically, unless you have more than one port, in which case you can simply change port from Auto to the COM port of the phone (for example COM13).
    If you are connected via wifi you will need to change port to 2500 (or whatever port you used in the AsusVoLTE app) and remote to true. So the efstool line should look something like this:
    Code:
    <efstool port="2500" remote="true" baudrate="38400" password="FFFFFFFFFFFFFFFF" spc="000000"/>
    You can test the connection by running this in the cmd window:
    Code:
    EfsTools.exe efsInfo
    This should report back some info if everything is working. If not, try rebooting the device and redo the bits from the DIAG guide.

    Step 3 - disabling mcfg
    Extract efs.zip from above to the same directory as EfsTools.exe, and make sure the mcfg_autoselect_by_uim file is there. Now simply run this in the cmd window, one line at a time:
    Code:
    EfsTools.exe writeFile -i mcfg_autoselect_by_uim -o /nv/item_files/mcfg/mcfg_autoselect_by_uim
    EfsTools.exe writeFile -i mcfg_autoselect_by_uim -o /nv/item_files/mcfg/mcfg_autoselect_by_uim -s 1
    If everything worked you should see no error messages.

    Step 4 - writing mbn
    If you are using the Xiaomi Mi 9T mbns zip from above, move it to the EfsTools directory and extract it. Now we simply need to find the mbn for your carrier.
    The mbn directory structure is generally laid out like this: <region>/<carrier>/commerci/<country>/mcfg_sw.mbn. For example, the one for my carrier is eu/h3g/commerci/se/mcfg_sw.mbn. Copy the mcfg_sw.mbn file to the same directory as the EfsTools.exe, then go to the cmd window you opened and type this:
    Code:
    EfsTools.exe uploadDirectory -i mcfg_sw.mbn -o / -v
    To get it working on the second SIM slot you will also have to run this:
    Code:
    EfsTools.exe uploadDirectory -i mcfg_sw.mbn -o / -s 1

    If it has worked you should see a bunch of output, but no errors. Try rebooting now, and hopefully after it has booted you will have fully functional VoLTE and VoWiFi.

    Source code:
    AsusVoLTE - Github
    EfsTools - Github

    Let me know if this works for you, or if you have any questions.

    Regards
    4
    Hi. But when I root, which image do I use? That's where I'm most confused given the china version, tencent, republic of gamers, etc..
    There are only two variants: tencent and international (WW). You want the international boot image :)

    Regarding something I said earlier: I've just received an update to the Android 10 beta, and after updating volte still works - so it looks like this will remain persistent even after doing an update.
    3
    The AsusLTE app DOESN'T work anymore on Android 11 openbeta. So in order to get Diag mode up and running, you need to type this command line either on your phone running terminal or on your computer running adb Shell before proceeding to follow the instructions by the OP.

    Code:
    setprop sys.usb.config diag,adb
    2
    Works great for me thanks! I just got the phone and within an hour was able to:
    1. Unlock the bootloader
    2. Update to latest firmware
    3. Flash root boot image and install magisk
    4. Use OP's DIAG guide
    5. Use this VoLTE guide

    Everything works! Thanks OP and to the rest of this phone's XDA community.
    2
    Uh oh... Doesnt sound good for me and the other guy whos diag mode is now has efs locked or corrupted
    You can safely restore modem settings to default by clearing the modem partitions in the bootloader:
    Code:
    fastboot erase modemst1
    fastboot erase modemst2
    This has been proven to bring back diag mode on @xbamaris1` device, so I've added this info to the diag guide.
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone