• 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

sampathkumar2811

Senior Member
May 27, 2013
110
23
Hyderabad
I recently changed my circles on Airtel. Now even LTE doesn't work on roaming, VoWiFi also stopped. Though I see the options available and it was working on the same ROM ( Android 11 stock + Magisk beta). Is there a known issue of this patch not working on certain conditions ?
On Roaming LTE is not working with Airtel SIM. However Vowifi is working fine . It is Airtel network issue.
 
Jun 1, 2017
18
0
Google Pixel 2 XL
Hi, I wanted to enable Airtel VoLTE and VoWiFi on my P2XL but without root. I am currently running Havoc OS 4.6, bootloader unlocked ofcourse, but without Magisk as my Standard Chartered bank app detects root even after using Magisk Hide.

I would like to know if the method outlined in 1st post of this thread is still valid and if through that method, I can edit the mbn files with root, remove the root and continue using VoLTE. Would that work?
 

somin.n

Senior Member
Feb 3, 2013
476
464
Google Pixel 2
Google Pixel 4a 5G
Hi, I wanted to enable Airtel VoLTE and VoWiFi on my P2XL but without root. I am currently running Havoc OS 4.6, bootloader unlocked ofcourse, but without Magisk as my Standard Chartered bank app detects root even after using Magisk Hide.

I would like to know if the method outlined in 1st post of this thread is still valid and if through that method, I can edit the mbn files with root, remove the root and continue using VoLTE. Would that work?
Hi! I thing, that it could wokrs like you need. You need root only for enabling diag port. So if you will be able to "upload" new mbn with PDC tool, you can remove root after that and VoLTE should stay still active. Good luck!
 
Jun 1, 2017
18
0
Google Pixel 2 XL
Hi! I thing, that it could wokrs like you need. You need root only for enabling diag port. So if you will be able to "upload" new mbn with PDC tool, you can remove root after that and VoLTE should stay still active. Good luck!
Thanks! I already tried that out by extracting mbn folder from VoLTE enabler zip, replaced it on my Vendor partition by booting into TWRP, added the lines included in system.prop file into build.prop, rebooted and its working great now. Thanks!
 

sampathkumar2811

Senior Member
May 27, 2013
110
23
Hyderabad
Hi, I wanted to enable Airtel VoLTE and VoWiFi on my P2XL but without root. I am currently running Havoc OS 4.6, bootloader unlocked ofcourse, but without Magisk as my Standard Chartered bank app detects root even after using Magisk Hide.

I would like to know if the method outlined in 1st post of this thread is still valid and if through that method, I can edit the mbn files with root, remove the root and continue using VoLTE. Would that work?
You can use bank apps even if you are rooted using magisk method. There is an option to hide root status.
 

ryandxter

Senior Member
Mar 12, 2013
278
84
The Special Region of Yogyakarta
I did everything on A11 from scratch and updated to latest magisk canary (20418) and magisk canary manager (287). Make sure to install SELinux permissive and VoLTE MBN modules.

I did not use any magisk with diag port or diag port module.
seems this not work anymore on P4 A11,

my SELinux Permissive & installed mbn modules but none works, LTE toggleable but IMS not available
 

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 ;)