FORUMS
Remove All Ads from XDA

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

237 posts
Thanks Meter: 52
 
By Airpil, Senior Member on 31st December 2018, 03:46 PM
Post Reply Email Thread
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.




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/pix...gapps-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 Code:
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
Device Manager


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/refere...rConfigManager
for example
PHP Code:
<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


For Drivers search for QUD.WIN.1.1 Installer-10037.3 Setup
For CA https://mt-tech.fi/en/modify-sony-xz...a-band-combos/
For more information about PDC tool and mbn files https://forum.xda-developers.com/one...riers-t3817542
Command line tool to read\write EFS settings https://github.com/JohnBel/EfsTools
The Following 15 Users Say Thank You to Airpil For This Useful Post: [ View ] Gift Airpil Ad-Free
 
 
31st December 2018, 03:57 PM |#2  
OP Senior Member
Thanks Meter: 52
 
More
1st January 2019, 12:09 AM |#3  
Senior Member
Flag Riverside
Thanks Meter: 229
 
More
Quote:
Originally Posted by Airpil

Reserved

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....
1st January 2019, 08:13 AM |#4  
OP Senior Member
Thanks Meter: 52
 
More
Quote:
Originally Posted by i42o

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.
Attached Files
File Type: zip Pixel3.zip - [Click for QR Code] (1,012.3 KB, 90 views)
The Following User Says Thank You to Airpil For This Useful Post: [ View ] Gift Airpil Ad-Free
2nd January 2019, 09:01 AM |#5  
Senior Member
Flag Tainan
Thanks Meter: 280
 
Donate to Me
More
If this method works on Walleye or only on Taimen?
2nd January 2019, 09:49 AM |#6  
OP Senior Member
Thanks Meter: 52
 
More
Quote:
Originally Posted by jwchen119

If this method works on Walleye or only on Taimen?

Ive tested this method on my Pixel 2 XL. But the changes ive done is quite minor (important but minor) init commands are standard.
So i wouldn't be surprised if it works on Pixel 2 as well.
The Following User Says Thank You to Airpil For This Useful Post: [ View ] Gift Airpil Ad-Free
2nd January 2019, 10:09 AM |#7  
Senior Member
Flag India
Thanks Meter: 112
 
More
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 ?
3rd January 2019, 10:00 AM |#8  
OP Senior Member
Thanks Meter: 52
 
More
Quote:
Originally Posted by coolsid8

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.
The Following User Says Thank You to Airpil For This Useful Post: [ View ] Gift Airpil Ad-Free
4th January 2019, 09:06 PM |#9  
Junior Member
Thanks Meter: 8
 
More
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.
The Following 3 Users Say Thank You to pokkaf For This Useful Post: [ View ] Gift pokkaf Ad-Free
4th January 2019, 10:43 PM |#10  
Anyone try this in pixel 3?
5th January 2019, 02:59 PM |#11  
Quote:
Originally Posted by pokkaf

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?
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes