• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

{Guide} QXDM Port activation on Pixel 2 XL, (VoLTE,WoWIFI,CA)

Search This thread

Airpil

Senior Member
Feb 12, 2007
258
74
Hi all.
First of all
I DO NOT PROVIDE ANY KIND OF SUPPORT. YOU ALONE RESPONSIBLE FOR ANY POSSIBLE ISSUES.

I wrote this post during my vacation. I know it could be quite handy, but unfortunately/thankfully my primary sources of money are completely aside from this findings.
I came to XDA from iOS jailbreak community and still believe that any findings have to be published if they allow to escape any kind of jail .
Sorry for any delays in my responses in PM and here, but i am really busy. In case somebody wants to share this info with other communities, feel free to do so.

Sorry for my EN
P.S.
all this small findings and adjustments would not be possible without @topjohnwu i have tried to rase a CR on github to enable a sub-function in Magisk for init.rc scripts injection through the existing magicg.rc but it was rejected. So any one who intrested in the same kind of projects please open an issue on Magis github page we really need *.rc injection as a part of Magisk module.

[/MENTION]



For the past couple of months I've been looking into finding the way to get an access to the Pixel 2 XL diag port.
As many of you know this feature is disabled by default on user builds. Thanks to @deeproot for his ROM. Because this is the only one userbuild ROM available right now with diag configuration. https://forum.xda-developers.com/pixel-2-xl/development/aosp-tamien-8-1-opengapps-t3727948

The only downside of this ROM is outdated version of the Android. To fix this unpleasant issue. I've took the init.taimen.diag.rc init script from the ROM and put it into the custom ROM. Later I have discovered couple of issues. First - dm-verity have to be disabled. Second - different ROMs dont play nice with instructions from init.taimen.diag.rc. (adb doesn't work properly).

With this being said I started to looking for a way to inject this instructions into Google Official ROM. Without touching the file system itself.
Unfortunately i haven't found the way make it via Magisk Modules. Because MagiskMount mount the module directory after init stage.
As many of you know Magisk injects init.magisk.rc into init.rc script. So ive decided to recompile the Magisk with the necessary init instructions. I simply updated init.magisk.rc with the following instructions. ( Thanks @topjohnwu for Magisk )

on property:sys.usb.config=diag,serial_cdev,rmnet_gsi,adb && property:sys.usb.configfs=1
start adbd
start port-bridge

on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet_gsi,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Default composition"
rm /config/usb_gadget/g1/configs/b.1/f1
rm /config/usb_gadget/g1/configs/b.1/f2
rm /config/usb_gadget/g1/configs/b.1/f3
rm /config/usb_gadget/g1/configs/b.1/f4
rm /config/usb_gadget/g1/configs/b.1/f5
write /config/usb_gadget/g1/idVendor 0x05C6
write /config/usb_gadget/g1/idProduct 0x9091
write /config/usb_gadget/g1/os_desc/use 1
symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
symlink /config/usb_gadget/g1/functions/gsi.rmnet /config/usb_gadget/g1/configs/b.1/f3
symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
write /config/usb_gadget/g1/UDC ${sys.usb.controller}
setprop sys.usb.state ${sys.usb.config}


as a result I was able to open diag port when the following properties are set.
setprop property:sys.usb.configfs 1
sys.usb.config diag,serial_cdev,rmnet_gsi,adb

There are two files attached.
1) Magisk-v18-Taimen-Diag.zip - Modified version of the Magisk. I strongly recommend to install the original version when you finish to play with QXDM. Because I am not a SW developer at all. From the Word "COMPLETELY"
2) Pixel 2 Diag Port.zip - Module for Magisk to properly enable the Diag port on boot via
PHP:
setenforce   0 
setprop sys.usb.configfs 1 && setprop sys.usb.config diag,serial_cdev,rmnet_gsi,adb

When you flash the Magisk via twrp and install the module you should be able to get an access to the diag port
Screenshot-2018-12-31-at-17-59-06.png


To activate VoLTE on you phone you have to install VoEnabler module and upload proper mcfg_sw.mbn for your MNO.
ive tested Russian MNOs on my phone using Nokia 8 mbn. Works fine for me.
3)Open PDC tool -> Load -> Choose proper MBN -> SetSelectedConfig -> Sub0 -> Activate.

About VoEnabler and other OS methods.
There are actually two methods to get VoLTE\VoWiFI on the phone from OS point of view (VoLTE and VoWiFI provisioned) in *#*#4636#*#* Phone info -> IMS Status.
1) install VoEnabler it performs setprop for Vo*** related parameters.
2)modify /data/user_de/0/com.android.phone/files/carrierconfig-com.android.carrierconfig-XXXXXXXXXXX.xml .
Parameters for xml file you can get from https://developer.android.com/reference/android/telephony/CarrierConfigManager
for example
PHP:
<boolean name="carrier_volte_available_bool" value="true" />
<boolean name="carrier_wfc_supports_wifi_only_bool" value="true" />
<boolean name="carrier_wfc_ims_available_bool" value="true" />
I use several SIM cards so for me it is more comfortable to use second method because this files configure phone module with different settings and it is easier to troubleshoot the issues

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<carrier_config>
<package_version>2</package_version>
<bundle_data>
<string name="_carrier_settings_version_string">25099-3000000346</string>
<boolean name="carrier_volte_available_bool" value="true" />
<boolean name="carrier_wfc_supports_wifi_only_bool" value="true" />
<boolean name="carrier_wfc_ims_available_bool" value="true" />
<boolean name="display_hd_audio_property_bool" value="true" />
<boolean name="editable_enhanced_4g_lte_bool" value="true" />
<boolean name="hide_ims_apn_bool" value="false" />
<boolean name="remove_modify_call_capability" value="false" />
<boolean name="transmit_static_image" value="false" />
<boolean name="support_video_conference_call_bool" value="true" />
<boolean name="emergency_sms_support_bool" value="false" />
<boolean name="vowifi_call_quality" value="false" />
<boolean name="show_apn_setting_cdma_bool" value="true" />
<boolean name="carrier_rtt_downgrade_supported" value="false" />
<boolean name="allow_video_call_in_low_battery" value="true" />
<boolean name="world_phone_bool" value="true" />
<boolean name="carrier_rtt_upgrade_supported" value="false" />
<boolean name="hide_preferred_network_type_bool" value="false" />
<boolean name="show_static_image_ui" value="false" />
<boolean name="show_video_quality_ui" value="false" />
<boolean name="show_video_quality_toast" value="true" />
<string-array name="ratchet_rat_families" num="3">
<item value="1,2" />
<item value="7,8,12" />
<item value="3,11,9,10,15" />
</string-array>
<boolean name="apn_expand_bool" value="true" />
<boolean name="allow_adding_apns_bool" value="true" />
<boolean name="carrier_rtt_auto_upgrade" value="false" />
<boolean name="config_carrier_cs_retry_available" value="false" />
<boolean name="video_call_use_ext" value="true" />
<boolean name="show_cdma_choices_bool" value="true" />
<boolean name="carrier_rtt_supported_on_vtcalls" value="false" />
<boolean name="show_data_usage_toast" value="true" />
<boolean name="use_custom_video_ui" value="false" />
<boolean name="carrier_allow_deflect_ims_call_bool" value="false" />
<boolean name="config_hide_preview_in_vt_confcall" value="false" />
<boolean name="config_enable_display_14digit_imei" value="false" />
<boolean name="carrier_rtt_supported" value="false" />
<boolean name="show_call_session_event_toast" value="true" />
<string name="config_ims_package_override_string" value="com.google.android.ims" />
<string name="default_sim_call_manager_string" value="com.google.android.ims" />
</bundle_data>
</carrier_config>


Update 23/03/2019
Thanks to @topjohnwu work on Android Q i've updated the Magisk.zip with diag scripts enabled. Magisk-v18.2-f5f7fd91_Taimen_Diag.zip
The same approach the same steps.
That is true that Magisk module is not required, just disable enforcement and change the sys.usb.config settings.
Just be sure you are using correct drivers.

VoEnabler needs to be updated, not sure whether is works or not. VoLTE provisioning is disabled under "Phone Info"
I was able to open Phone Info app only through the "QuikShortcutMaker" app.
Because i modified /data/user_de/0/com.android.phone/files/carrierconfig-com.android.carrierconfig as well i am not sure what exactly activate the VoLTE. VoEnabler, or the file modification.

Also because TWRP was not able to decrypt the storage in my Phone i uploaded Magisk.zip to /tmp/ directory on my phone.
+ i installed the modified version of the Magisk on top of original canary build. Don;t know whether it important or not.

Update 14/04/2019
Android Q Beta 2 Magisk 19 attached.
Magisk-v19.0_Taimen_Diag
Magisk-uninstaller-20190413


Update 09/05/2019

I have forked Magisk repo. Now OTA updates should work for Taimen_Diag mod.
Testet on Android Q beta 3
App
https://github.com/AGagarin/magisk_files/blob/master/canary_builds/app-debug.apk
Zip
https://github.com/AGagarin/magisk_files/blob/master/canary_builds/magisk-debug.zip


For Drivers search for QUD.WIN.1.1 Installer-10037.3 Setup
For CA https://mt-tech.fi/en/modify-sony-xz-xzs-xz-premium-xz1-and-xz2-lte-a-band-combos/
For more information about PDC tool and mbn files https://forum.xda-developers.com/oneplus-5t/how-to/guide-volte-vowifi-german-carriers-t3817542
Command line tool to read\write EFS settings https://github.com/JohnBel/EfsTools
 

Attachments

  • Nokia8_835.zip
    1.4 MB · Views: 1,049
  • Magisk-uninstaller-20181231.zip
    2.1 MB · Views: 237
  • Magisk-v18.0_Taimen_Diag.zip
    4 MB · Views: 725
  • Magisk-uninstaller-20190323.zip
    2.2 MB · Views: 118
  • Magisk-v18.2-f5f7fd91_Taimen_Diag.zip
    7.5 MB · Views: 295
  • Magisk-v19.0_Taimen_Diag.zip
    7.5 MB · Views: 1,289
  • Magisk-uninstaller-20190413.zip
    2.2 MB · Views: 335
  • app-debug.apk
    5 MB · Views: 775
Last edited:

Airpil

Senior Member
Feb 12, 2007
258
74
so this basically enables VOLTE on any carrier, regardless if the carrier supports device or not?? i am currently on cricket, and VOLTE works only on cricket phones and iphones, but not on any other phone even if they are capable of it....

It allows you to control Qualcomm Chipset. And yes basically you can enable VoLTE you can try different MBN files. Or modify NV items directly via QXDM or EFStool.
Cricket - it is an ATT so you can try to apply mbn file for ATT from the Noki8 folder. Or chose existing ATT profile form the phone. Also there is a profile for Cricket in Pixel3 ROM. Pixel 3 has a different CPU but it might work.
 

Attachments

  • Pixel3.zip
    1,012.3 KB · Views: 972
Last edited:
  • Like
Reactions: i42o

coolsid8

Senior Member
Feb 15, 2011
573
118
India
Hey, just a quick question. I am from India.Currently, volte on works on jio network for pixel devices in india.

Google has still not enabled volte for major providers like airtel/ vodafone even on the latest pixels.

All major phones in india including Oneplus support volte on airtel/vodafone. Will this method work to enable volte ? Also, what are the risk factors ?
 

Airpil

Senior Member
Feb 12, 2007
258
74
Hey, just a quick question. I am from India.Currently, volte on works on jio network for pixel devices in india.

Google has still not enabled volte for major providers like airtel/ vodafone even on the latest pixels.

All major phones in india including Oneplus support volte on airtel/vodafone. Will this method work to enable volte ? Also, what are the risk factors ?

there are several mbn for VDF India and Airtel in the Nokia zip attached. Usually MBN file has a vendor signature but Pixel 2 doesn't check the mbn signatures so you can try to apply MBN files from the archive or from any other phone with the same Snapdragon 835 CPU and Generation (MSM8998). Risks .. just notice the previous active MBN in PDC most probably it will be WildCard. If the MBN replacement will not work for you, you can select previous MBN at any time.
 
Last edited:
  • Like
Reactions: SGH-i200

pokkaf

Member
Sep 15, 2010
14
8
Thanks a lot. Helped me to get VoLTE and WiFi Calling working on my Pixel 2 XL on Swisscom network (Switzerland).
Though it was a bit tricky to get the diag mode enabled so that my computer would recognize the Qualcomm modem. After installation of patched Magisk and of the Magisk module zip (Diag port) I also had to execute the "setprop" commands via Terminal on the phone. Plus the Magisk VoEnabler module needs to be active constantly for it to work after adding the mbn via the PDC tool.
 

Xdevillived666

Senior Member
Feb 29, 2012
1,336
216
Massy
Google Pixel 6
Thanks a lot. Helped me to get VoLTE and WiFi Calling working on my Pixel 2 XL on Swisscom network (Switzerland).
Though it was a bit tricky to get the diag mode enabled so that my computer would recognize the Qualcomm modem. After installation of patched Magisk and of the Magisk module zip (Diag port) I also had to execute the "setprop" commands via Terminal on the phone. Plus the Magisk VoEnabler module needs to be active constantly for it to work after adding the mbn via the PDC tool.
Hey , sorry to bug ya again. I have voLTE by default via my carrier. What did you have to do to get wifi calling? Just upload an mbn file?
 
  • Like
Reactions: m9957m

pokkaf

Member
Sep 15, 2010
14
8
WiFi calling was enabled when I installed the mbn file from the Nokia 8 (see other thread). I suppose if your carrier supports WiFi calling with the Nokia 8, then it should work with the Pixel if you install the the Nokia's mbn file.
 
  • Like
Reactions: Xdevillived666

Xdevillived666

Senior Member
Feb 29, 2012
1,336
216
Massy
Google Pixel 6
WiFi calling was enabled when I installed the mbn file from the Nokia 8 (see other thread). I suppose if your carrier supports WiFi calling with the Nokia 8, then it should work with the Pixel if you install the the Nokia's mbn file.
Thanks. And you used which program? I've messed with qxdm before but not the other one mentioned.

Also , why not flash a debugging vendor in the future ? Allows access to ports and is safer than the magisk method.
 

pokkaf

Member
Sep 15, 2010
14
8
Honestly, I can write all of that here but you could just as well read everything in the other thread. The program was the PDC tool which comes with the whole Qualcomm package.
And for the vendor image.... I don't know. If it's safer to use that, why not try it this way.
 
Last edited:

Airpil

Senior Member
Feb 12, 2007
258
74
Thanks. And you used which program? I've messed with qxdm before but not the other one mentioned.

Also , why not flash a debugging vendor in the future ? Allows access to ports and is safer than the magisk method.

Advanced PDC Tool to swap the mbn file.
Debugging vendor image cause th dm-verity failure and bootloop. Also there are no PDC\QXDM settings in Debugging image. to support Diag mode we have to have an access to the rmnet usb function.
https://android.googlesource.com/de...eo-m2-release/init.hardware.diag.rc.userdebug
VS
https://android.googlesource.com/device/google/wahoo/+/master/init.hardware.diag.rc.userdebug
 
  • Like
Reactions: Xdevillived666

Airpil

Senior Member
Feb 12, 2007
258
74
Will it work on one plus one???
For one +1 you can use this guide to get an access to the QXDM
https://forum.xda-developers.com/oneplus-one/general/guide-unlock-aditional-bands-qualcomm-t2877031
for PDC you need to activate rmnet usb function so you may want to try this one
https://forum.xda-developers.com/showpost.php?p=77783004&postcount=3

also OnePlus 5 has the hidden menu. It might work for One+One as well
*#800# --> oneplus Logkit --> Function Switch --> enable VoLTE + VoWifi switch
*#801# ->> Activate Serial & l Full-port switch
 
Last edited:
  • Like
Reactions: cooltranier13px

Xdevillived666

Senior Member
Feb 29, 2012
1,336
216
Massy
Google Pixel 6
Thanks a lot. Helped me to get VoLTE and WiFi Calling working on my Pixel 2 XL on Swisscom network (Switzerland).
Though it was a bit tricky to get the diag mode enabled so that my computer would recognize the Qualcomm modem. After installation of patched Magisk and of the Magisk module zip (Diag port) I also had to execute the "setprop" commands via Terminal on the phone. Plus the Magisk VoEnabler module needs to be active constantly for it to work after adding the mbn via the PDC tool.

can u pm link for pdc tool? I have qpst and qxdm but I cannot find pdc
 

Xdevillived666

Senior Member
Feb 29, 2012
1,336
216
Massy
Google Pixel 6
I will try again tomorrow but using your magisk and module on pixel 3 running du unofficial allowed diagnostic but could not do anything. Will take a look using stock rom and try again
 

Top Liked Posts

  • There are no posts matching your filters.
  • 23
    Hi all.
    First of all
    I DO NOT PROVIDE ANY KIND OF SUPPORT. YOU ALONE RESPONSIBLE FOR ANY POSSIBLE ISSUES.

    I wrote this post during my vacation. I know it could be quite handy, but unfortunately/thankfully my primary sources of money are completely aside from this findings.
    I came to XDA from iOS jailbreak community and still believe that any findings have to be published if they allow to escape any kind of jail .
    Sorry for any delays in my responses in PM and here, but i am really busy. In case somebody wants to share this info with other communities, feel free to do so.

    Sorry for my EN
    P.S.
    all this small findings and adjustments would not be possible without @topjohnwu i have tried to rase a CR on github to enable a sub-function in Magisk for init.rc scripts injection through the existing magicg.rc but it was rejected. So any one who intrested in the same kind of projects please open an issue on Magis github page we really need *.rc injection as a part of Magisk module.

    [/MENTION]



    For the past couple of months I've been looking into finding the way to get an access to the Pixel 2 XL diag port.
    As many of you know this feature is disabled by default on user builds. Thanks to @deeproot for his ROM. Because this is the only one userbuild ROM available right now with diag configuration. https://forum.xda-developers.com/pixel-2-xl/development/aosp-tamien-8-1-opengapps-t3727948

    The only downside of this ROM is outdated version of the Android. To fix this unpleasant issue. I've took the init.taimen.diag.rc init script from the ROM and put it into the custom ROM. Later I have discovered couple of issues. First - dm-verity have to be disabled. Second - different ROMs dont play nice with instructions from init.taimen.diag.rc. (adb doesn't work properly).

    With this being said I started to looking for a way to inject this instructions into Google Official ROM. Without touching the file system itself.
    Unfortunately i haven't found the way make it via Magisk Modules. Because MagiskMount mount the module directory after init stage.
    As many of you know Magisk injects init.magisk.rc into init.rc script. So ive decided to recompile the Magisk with the necessary init instructions. I simply updated init.magisk.rc with the following instructions. ( Thanks @topjohnwu for Magisk )

    on property:sys.usb.config=diag,serial_cdev,rmnet_gsi,adb && property:sys.usb.configfs=1
    start adbd
    start port-bridge

    on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,serial_cdev,rmnet_gsi,adb && property:sys.usb.configfs=1
    write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "Default composition"
    rm /config/usb_gadget/g1/configs/b.1/f1
    rm /config/usb_gadget/g1/configs/b.1/f2
    rm /config/usb_gadget/g1/configs/b.1/f3
    rm /config/usb_gadget/g1/configs/b.1/f4
    rm /config/usb_gadget/g1/configs/b.1/f5
    write /config/usb_gadget/g1/idVendor 0x05C6
    write /config/usb_gadget/g1/idProduct 0x9091
    write /config/usb_gadget/g1/os_desc/use 1
    symlink /config/usb_gadget/g1/functions/diag.diag /config/usb_gadget/g1/configs/b.1/f1
    symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f2
    symlink /config/usb_gadget/g1/functions/gsi.rmnet /config/usb_gadget/g1/configs/b.1/f3
    symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f4
    write /config/usb_gadget/g1/UDC ${sys.usb.controller}
    setprop sys.usb.state ${sys.usb.config}


    as a result I was able to open diag port when the following properties are set.
    setprop property:sys.usb.configfs 1
    sys.usb.config diag,serial_cdev,rmnet_gsi,adb

    There are two files attached.
    1) Magisk-v18-Taimen-Diag.zip - Modified version of the Magisk. I strongly recommend to install the original version when you finish to play with QXDM. Because I am not a SW developer at all. From the Word "COMPLETELY"
    2) Pixel 2 Diag Port.zip - Module for Magisk to properly enable the Diag port on boot via
    PHP:
    setenforce   0 
    setprop sys.usb.configfs 1 && setprop sys.usb.config diag,serial_cdev,rmnet_gsi,adb

    When you flash the Magisk via twrp and install the module you should be able to get an access to the diag port
    Screenshot-2018-12-31-at-17-59-06.png


    To activate VoLTE on you phone you have to install VoEnabler module and upload proper mcfg_sw.mbn for your MNO.
    ive tested Russian MNOs on my phone using Nokia 8 mbn. Works fine for me.
    3)Open PDC tool -> Load -> Choose proper MBN -> SetSelectedConfig -> Sub0 -> Activate.

    About VoEnabler and other OS methods.
    There are actually two methods to get VoLTE\VoWiFI on the phone from OS point of view (VoLTE and VoWiFI provisioned) in *#*#4636#*#* Phone info -> IMS Status.
    1) install VoEnabler it performs setprop for Vo*** related parameters.
    2)modify /data/user_de/0/com.android.phone/files/carrierconfig-com.android.carrierconfig-XXXXXXXXXXX.xml .
    Parameters for xml file you can get from https://developer.android.com/reference/android/telephony/CarrierConfigManager
    for example
    PHP:
    <boolean name="carrier_volte_available_bool" value="true" />
    <boolean name="carrier_wfc_supports_wifi_only_bool" value="true" />
    <boolean name="carrier_wfc_ims_available_bool" value="true" />
    I use several SIM cards so for me it is more comfortable to use second method because this files configure phone module with different settings and it is easier to troubleshoot the issues

    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    <carrier_config>
    <package_version>2</package_version>
    <bundle_data>
    <string name="_carrier_settings_version_string">25099-3000000346</string>
    <boolean name="carrier_volte_available_bool" value="true" />
    <boolean name="carrier_wfc_supports_wifi_only_bool" value="true" />
    <boolean name="carrier_wfc_ims_available_bool" value="true" />
    <boolean name="display_hd_audio_property_bool" value="true" />
    <boolean name="editable_enhanced_4g_lte_bool" value="true" />
    <boolean name="hide_ims_apn_bool" value="false" />
    <boolean name="remove_modify_call_capability" value="false" />
    <boolean name="transmit_static_image" value="false" />
    <boolean name="support_video_conference_call_bool" value="true" />
    <boolean name="emergency_sms_support_bool" value="false" />
    <boolean name="vowifi_call_quality" value="false" />
    <boolean name="show_apn_setting_cdma_bool" value="true" />
    <boolean name="carrier_rtt_downgrade_supported" value="false" />
    <boolean name="allow_video_call_in_low_battery" value="true" />
    <boolean name="world_phone_bool" value="true" />
    <boolean name="carrier_rtt_upgrade_supported" value="false" />
    <boolean name="hide_preferred_network_type_bool" value="false" />
    <boolean name="show_static_image_ui" value="false" />
    <boolean name="show_video_quality_ui" value="false" />
    <boolean name="show_video_quality_toast" value="true" />
    <string-array name="ratchet_rat_families" num="3">
    <item value="1,2" />
    <item value="7,8,12" />
    <item value="3,11,9,10,15" />
    </string-array>
    <boolean name="apn_expand_bool" value="true" />
    <boolean name="allow_adding_apns_bool" value="true" />
    <boolean name="carrier_rtt_auto_upgrade" value="false" />
    <boolean name="config_carrier_cs_retry_available" value="false" />
    <boolean name="video_call_use_ext" value="true" />
    <boolean name="show_cdma_choices_bool" value="true" />
    <boolean name="carrier_rtt_supported_on_vtcalls" value="false" />
    <boolean name="show_data_usage_toast" value="true" />
    <boolean name="use_custom_video_ui" value="false" />
    <boolean name="carrier_allow_deflect_ims_call_bool" value="false" />
    <boolean name="config_hide_preview_in_vt_confcall" value="false" />
    <boolean name="config_enable_display_14digit_imei" value="false" />
    <boolean name="carrier_rtt_supported" value="false" />
    <boolean name="show_call_session_event_toast" value="true" />
    <string name="config_ims_package_override_string" value="com.google.android.ims" />
    <string name="default_sim_call_manager_string" value="com.google.android.ims" />
    </bundle_data>
    </carrier_config>


    Update 23/03/2019
    Thanks to @topjohnwu work on Android Q i've updated the Magisk.zip with diag scripts enabled. Magisk-v18.2-f5f7fd91_Taimen_Diag.zip
    The same approach the same steps.
    That is true that Magisk module is not required, just disable enforcement and change the sys.usb.config settings.
    Just be sure you are using correct drivers.

    VoEnabler needs to be updated, not sure whether is works or not. VoLTE provisioning is disabled under "Phone Info"
    I was able to open Phone Info app only through the "QuikShortcutMaker" app.
    Because i modified /data/user_de/0/com.android.phone/files/carrierconfig-com.android.carrierconfig as well i am not sure what exactly activate the VoLTE. VoEnabler, or the file modification.

    Also because TWRP was not able to decrypt the storage in my Phone i uploaded Magisk.zip to /tmp/ directory on my phone.
    + i installed the modified version of the Magisk on top of original canary build. Don;t know whether it important or not.

    Update 14/04/2019
    Android Q Beta 2 Magisk 19 attached.
    Magisk-v19.0_Taimen_Diag
    Magisk-uninstaller-20190413


    Update 09/05/2019

    I have forked Magisk repo. Now OTA updates should work for Taimen_Diag mod.
    Testet on Android Q beta 3
    App
    https://github.com/AGagarin/magisk_files/blob/master/canary_builds/app-debug.apk
    Zip
    https://github.com/AGagarin/magisk_files/blob/master/canary_builds/magisk-debug.zip


    For Drivers search for QUD.WIN.1.1 Installer-10037.3 Setup
    For CA https://mt-tech.fi/en/modify-sony-xz-xzs-xz-premium-xz1-and-xz2-lte-a-band-combos/
    For more information about PDC tool and mbn files https://forum.xda-developers.com/oneplus-5t/how-to/guide-volte-vowifi-german-carriers-t3817542
    Command line tool to read\write EFS settings https://github.com/JohnBel/EfsTools
    8
    Able to successfully enable both Airtel India VoLTE and Airtel India VoWiFi on my Google Pixel 2 XL running Android 10 March 2020 update by following steps.

    1.Unlock bootloader
    2.Fastboot boot twrp img for temporary twrp
    3.Install twrp zip from twrp recovery for permanent twrp
    4.Flash Magisk-v19.0_Taimen_Diag.zip from twrp
    5.turn ON mobile
    5.Install app-debug.apk (Magisk) app
    6.Flash Pixel 2 Diag Port.zip Module as Magisk Module
    7.Flash VoEnabler Module as Magisk Module
    8.Reboot

    Done

    It worked for my using Pixel 2 Walleye with Android March 2020 installation, i'm going to detail more this procedure, because it's hard to do it from scratch.
    I also used information/files from here: https://forum.xda-developers.com/pixel-2/how-to/guide-enable-volte-unsupported-carriers-t3892659

    Steps with links
    0. Remove any fingerprint/pin/lock pattern from your phone and keep it that way until the end. ALSO, UNLOCKING THE BOOTLOADER WILL WIPE ALL YOUR DEVICE (apps, photos, files, accounts) BE CAREFUL AND DO A BACKUP

    1. Find the QPST installer (only available for Windows) (seems to be an internal Qualcomm software), I used version 2.7.474 from here https://qpsttool.com/qpst-tool-v2-7-474 . Save it and install it in your Windows machine.

    2. Install adb tools Windows, macOS, Linux: https://www.xda-developers.com/install-adb-windows-macos-linux/

    3. Enter Developer Mode in your Pixel: https://developer.android.com/studio/debug/dev-options#enable

    4. Unlock bootloader of Pixel 2 (this one is easy BUT IT WILL WIPE YOUR DEVICE), connect your phone to your PC (you may need to wait a few minutes for the automatic installation of drivers) and follow the procedure (you may need to run this as an Administrator) https://www.xda-developers.com/how-to-unlock-bootloader-and-root-the-google-pixel-2-and-pixel-2-xl/

    5. Fastboot boot twrp img for temporary twrp: https://aubykhan.wordpress.com/2013...t-into-twrp-or-cwm-recovery-without-flashing/

    6. Install twrp zip from twrp recovery for permanent twrp. I installed TWRP (TWRP is a recovery replacement of the official recovery inside Android phones) https://www.xda-developers.com/how-to-install-twrp/ TWRP will help you to install Magisk

    7. Flash Magisk-v19.0_Taimen_Diag.zip from twrp: You have to download the file from first post https://forum.xda-developers.com/attachment.php?attachmentid=4742296&d=1555223123 and save it in your Phone. And then open TWRP (go to recovery mode https://www.hardreset.info/devices/google/google-pixel-2/recovery-mode/ ), then you have select the install grey button in TWRP and find your Magisk file and install it, you will need to reboot your phone. Magisk is a tool that helps to modify Android behavior without root access, old times ago having root was not an issue, but right now because of security and restrictions (Netflix, DRM, etc) it's better to not root your phone. Magisk will help you to made modifications without touching too many things in your phone.

    8. Install drivers inside Windows to recognize your phone (these are special drivers, as your phone will be recognized as a Serial device for QPST) I used this for Window: https://mega.nz/#!oMEHTIbA!0g7ahr8r81Q3ue8LpEy-sfd7FTLEEQlGRi2CJfG_Kq0

    9. Download to your Android the file app-debug.apk https://forum.xda-developers.com/attachment.php?attachmentid=4742298&d=1555223123, this is the Magisk App to manage Magisk from Android. Open it to install the App.

    10. Download Pixel 2 Diag Port.zip file to your phone from here https://forum.xda-developers.com/attachment.php?attachmentid=4677339&d=1546269352 and VoEnabler to your Phone from here https://forum.xda-developers.com/attachment.php?attachmentid=4788885&d=1562579515 (this is for Pixel 2, you may need to change the VoEnabler for other Pixels, or it may work, who knows)

    11. Open the Magisk App (installed in step 9) go to Modules section, add with the yellow button at the bottom the Modules that you downloaded in the step 10, Pixel2DiagPort and VoEnabler. This will allow you yo use a setting under Settings -> Network & internet -> Mobile network -> VoLTE.

    12. Download the mbn file from here inside Windows https://forum.xda-developers.com/attachment.php?attachmentid=4691778&d=1548185827, unzip it and search for your region and your Mobile Network Operator . Android OS is split in multiple parts, the mbn have the Mobile Network operator information needed. All this procedure is to change this file!

    13. Connect the phone to your Windows PC, now open QPST tool in Windows (the name is Advanced PDC Tool and the icon is orange and grey), fingers crossed!, in the dropdown called Device you will see a Device Qualcomm... serial... choose it. Then press the button Load and select the .mbn file for your Operator (Step 13). This will allow you a new option in the list of the Advanced PDC Tool. You have to be careful and look for the one that you just added. Right-click on new loaded profile and select SetSelectedConfig - Sub0 then press Activate.

    14. Restart device and check if VoLTE is working! You may need to enable it in the preferences Settings -> Network & internet -> Mobile network -> VoLTE

    If you need more detail please let me know.

    I'm sick of the current tutorials in XDA, previously (8 years ago) everything was in this way, open for everybody, good explanations of procedures and of each new component. Please, no body is master in Android, devices, serial ports, drivers, operating systems, be more careful with your procedures!
    5
    Successfully enabled Volte and vowifi on Pixel 2 xl with Airtel India

    Able to successfully enable both Airtel India VoLTE and Airtel India VoWiFi on my Google Pixel 2 XL running Android 10 March 2020 update by following steps.

    1.Unlock bootloader
    2.Fastboot boot twrp img for temporary twrp
    3.Install twrp zip from twrp recovery for permanent twrp
    4.Flash Magisk-v19.0_Taimen_Diag.zip from twrp
    5.turn ON mobile
    5.Install app-debug.apk (Magisk) app
    6.Flash Pixel 2 Diag Port.zip Module as Magisk Module
    7.Flash VoEnabler Module as Magisk Module
    8.Reboot

    Done
    5
    Magisk-v19.0_Taimen_Diag attached to the first post.
    Works fine for me on the latest Q build.
    4
    ...Btw, can you help to make the full exact files from nokia zip including the mcfg_hw folder. It seems VoLTE is still not working by cherry picking mbn only.
    Here is it. But there is no problem on my side if I remove module from magisk. Everything works as expected, I just lost VoLTE.
    Module should replace whole mbn folder with new one, after removing it old files should be there back.
    I tried only on Pie version, don't know if there is something different with Q beta.
    If you will have more question, write PM to me to avoid spamming this thread ;)