VoLTE and WiFi Calling Working on MetroPCS (and probably other T-Mobile MVNO's) - Sony Cross-Device General

DISCLAIMER: This will only work on Android 8.0, and may not work on some versions of 8.0 depending on the security patch date. I'm using firmware version 47.A.1.16.20 with a security patch level of 2018/09/01.
I figured out how to get VoLTE and WiFi Calling to work on MetroPCS. The XZ1C works on T-Mobile because it recognizes T-Mobile specific SIM cards and loads the appropriate files when it detects one. For whatever reason, MetroPCS has SIM cards that don't provide a sim_config_id that the phone will recognize as being part of T-Mobile. The list of sim_config_id values that are recognized are contained in a file located within the APK /oem/overlay/com.sonymobile.customizationselector-res-305.apk. Within the APK, the file is located at /res/xml/configuration_selectors.xml. The xml contents are listed below:
Code:
<?xml version="1.0" encoding="utf-8"?>
<configurations>
<configuration config_id="408">
<sim_config_id>S264.1</sim_config_id>
<sim_config_id>S264.2</sim_config_id>
<sim_config_id>S264.3</sim_config_id>
<sim_config_id>S264.4</sim_config_id>
<sim_config_id>S264.5</sim_config_id>
<sim_config_id>S264.6</sim_config_id>
<sim_config_id>S264.7</sim_config_id>
<sim_config_id>S264.8</sim_config_id>
<sim_config_id>S264.9</sim_config_id>
<sim_config_id>S264.10</sim_config_id>
<sim_config_id>S264.11</sim_config_id>
<sim_config_id>S264.12</sim_config_id>
<sim_config_id>S264.13</sim_config_id>
<sim_config_id>S264.14</sim_config_id>
<sim_config_id>S264.15</sim_config_id>
<sim_config_id>S264.16</sim_config_id>
<sim_config_id>S264.17</sim_config_id>
<sim_config_id>S264.18</sim_config_id>
<sim_config_id>S8663.1</sim_config_id>
</configuration>
</configurations>
In order to get the MetroPCS SIM recognized, you need to add one line to the bottom of the list. This changes the code to the following:
Code:
<?xml version="1.0" encoding="utf-8"?>
<configurations>
<configuration config_id="408">
<sim_config_id>S264.1</sim_config_id>
<sim_config_id>S264.2</sim_config_id>
<sim_config_id>S264.3</sim_config_id>
<sim_config_id>S264.4</sim_config_id>
<sim_config_id>S264.5</sim_config_id>
<sim_config_id>S264.6</sim_config_id>
<sim_config_id>S264.7</sim_config_id>
<sim_config_id>S264.8</sim_config_id>
<sim_config_id>S264.9</sim_config_id>
<sim_config_id>S264.10</sim_config_id>
<sim_config_id>S264.11</sim_config_id>
<sim_config_id>S264.12</sim_config_id>
<sim_config_id>S264.13</sim_config_id>
<sim_config_id>S264.14</sim_config_id>
<sim_config_id>S264.15</sim_config_id>
<sim_config_id>S264.16</sim_config_id>
<sim_config_id>S264.17</sim_config_id>
<sim_config_id>S264.18</sim_config_id>
<sim_config_id>S8663.1</sim_config_id>
[COLOR="Red"][B] <sim_config_id>S8957.1</sim_config_id>[/B][/COLOR]
</configuration>
</configurations>
If you're on a different T-Mobile MVNO that supports VoLTE and WiFi Calling, but it's not working on your XZ1C, you can probably still get this to work. You'll need to figure out what sim_config_id to use using the following command:
Code:
adb shell getprop persist.sys.sim_config_ids
This should output a value similar to S8957.1. Use your value in the configuration_selectors.xml file.
You also need to change the overlay priority in the AndroidManifest.xml file. The normal overlay has a priority of 305. I changed mine to 310, but anything over 305 should work.
Code:
<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="[B]your.package.name[/B]">
<overlay android:priority="310" android:targetPackage="com.sonymobile.customizationselector"/>
</manifest>
In order to modify this APK, I used apktool to decompile the original APK and compile the modified APK.
https://ibotpeaches.github.io/Apktool/
I followed the guide located here:
https://forum.xda-developers.com/showthread.php?t=2213985
Once the APK is built and signed, install it with adb
Code:
adb install yourapkhere.apk
This is an overlay file which works using RRO, so you need to give the file the proper permissions to run. Enter the following command:
Code:
adb shell cmd overlay enable --user 0 yourapkhere.apk
Reboot your phone and the overlay should be active.
Due to the way the phone works, you need to trick the phone into loading the correct modem binary file. It loads a default modem when it doesn't recognize a T-Mobile SIM. But it won't load the T-Mobile modem even if you install the APK. I ended up having to get an unactivated T-Mobile SIM and put that in the phone to trigger the switch. Once you trigger it, you'll get a popup saying that the phone needs to reboot to optimize for your network. After it reboots and loads the proper modem, you can shutdown, put in your MetroPCS SIM card and boot. That should do it.
There's one big caveat: This will only work on 8.0. The overlay permission model changed in 8.1+ so this change won't work on those ROM's. The fix is still good, but you'd need to use root to make the change. I'm sure there will be a way around this eventually, but I don't have one at the moment.
For more technical information, I tracked my progress trying to get my X Compact working on MetroPCS with VoLTE and WiFi Calling. There's a lot of information regarding the XZ1C in there that might be of interest.
https://forum.xda-developers.com/x-compact/how-to/trying-to-figure-how-to-enable-volte-t3877692
Theoretically, this should work for the XZ1, the XZ Premium (with proper files flashed), and possibly other Sony phones that contain the correct modem binary file. If you get it to work, please reply to the thread.

Here are some pictures showing the features working.

camdecoster said:
Here are some pictures showing the features working.
Click to expand...
Click to collapse
What program did you use to check if volte and wifi calling works or not?

Yevgen.A said:
What program did you use to check if volte and wifi calling works or not?
Click to expand...
Click to collapse
I didn't use a program, just the dialer. If LTE stays on during a call, that means VoLTE is working. A WiFi call will show the symbol seen in my picture.

Fix for Android 9?

echo124 said:
Fix for Android 9?
Click to expand...
Click to collapse
As mentioned in the OP, this fix only works on Android 8. If you're on 9, you'll have to root.

camdecoster said:
As mentioned in the OP, this fix only works on Android 8. If you're on 9, you'll have to root.
Click to expand...
Click to collapse
Great, how to apply after? Danke

echo124 said:
Great, how to apply after? Danke
Click to expand...
Click to collapse
You should be able to follow the same procedure, though you'll likely need to unlock the bootloader.

.

Related

Regulatory domain, Wifi channels 12 and 13

Hi all!
I have noticed that my Arc S does not receive AP on channels 12 and 13. After doing some searches I concluded that the Regulatory domain must be set to US which is incorrect in my case, as I live in Europe.
I tried following this guide http://forum.xda-developers.com/showthread.php?t=1067944 to enable these channels, of couse doing the necessary modifications for this to work on a SE, but with no results unfortunatly.
My phone still has a locked bootloader and I cannot try custom roms, but will a custom rom solve this problem?
Moveover I am curious to know if this is a problem of the kernel module used which is locked to 11 channels or if it is because of some setting hardcoded in android itself.
Thank you!
as i can see, for the european area the only restriction is the signal power<20db, channels 11-13 are allowed and are working in Europe! My arc S is also locked but i can see channels 11-13.
Tkx for you reply labrok!
Then I cannot understand. I verified this using an app on the market called "Wifi Analyser", and the fact is that even in the wifi connect menu, all AP with these channels are not visible.
Also in the sqllite database available with the command
# /system/bin/sqlite3 /data/data/com.android.providers.settings/databases/settin
gs.db "select * from secure"
I can see:
wifi_num_allowed_channels|11
If I try to change this number to 13, it allows the change, but whenever I deactivate/activate the wifi, the number goes back to 11..
What is the version of the firmware that you are running?
I have 4.0.2.A.0.42.
Tkx!
same version, phone is European like yous so it uses same region settings,router TP-link TL-WR1043ND WITH ddwrt and router`s region set to Canada (to gain an extra 3db of power) i can set it till channel 13 and i can see it and i can connect too, to use channel 14 i must change region to japan but channel 14 is not usable from my arc s! but channels 12-13 working, they are not so good for an N network but my phone can see them an connect to them, maybe you should try to reflash your phone!
It's good to know that it works ok and that the problem lies only in software. I have asked some other users of the Arc S/Neo and they report the same problem
Maybe with your help we can solve this problem once and for all for everyone.
If your phone is rooted all I need you to do, is send me your Wifi drivers, running the following commands on the adb shell. Adb comes with the android sdk and is located at C:\Program Files (x86)\Android\android-sdk\platform-tools and then run "adb shell" command on a command line. You also need to activate the usb debugging on your phone.
Code:
su
cp /system/lib/modules/tiwlan_drv.ko /mnt/sdcard
cp /system/lib/modules/sdio.ko /mnt/sdcard
You now should have 2 files on the root of your sdcard, sdio.ko and tiwlan_drv.ko.
Can you please send these files to me?
I will then replace them on my phone and effectively determine if the problem is actually caused by the drivers or by the Android system itself.
Thank you so much for your help!!
My friend my phone is not rooted, if there is a way to help you, but because my phone is new I cannot root it and avoid my guarrantee.
Sent from my LT18i using XDA App
Thank you anyway labrok! I will keep searching for someone that has this working and with root to see if I can solve my problem
Ok, actually I found out how you can do this without root and without touching the warranty.
I will guide you through the process.
Install the Android SDK available at http://developer.android.com/sdk/index.html
Activate the USB debugging on "Applications"->"Development"->"USB Debugging"
Then open a command line prompt on windows and go to the directory where you installed android, typically C:\Program Files\Android\android-sdk\platform-tools, with the command
Code:
cd "C:\Program Files\Android\android-sdk\platform-tools"
Copy the driver files now from the phone with the commands
Code:
adb pull /system/lib/modules/tiwlan_drv.ko
adb pull /system/lib/modules/sdio.ko
The command prompt should look like this
Code:
C:\Program Files\Android\android-sdk\platform-tools>adb pull /system/lib/modules
/tiwlan_drv.ko
4636 KB/s (973324 bytes in 0.205s)
C:\Program Files\Android\android-sdk\platform-tools>adb pull /system/lib/modules
/sdio.ko
1618 KB/s (26520 bytes in 0.016s)
Files tiwlan_drv.ko and sdio.ko should be on C:\Program Files\Android\android-sdk\platform-tools folder now. Zip them and send them to me plz
i will try, but i think is not drivers problem.More likely its region restrictions, in Greece its allowed channels from 1-13, maybe in your is different than Greece! but i will send you the drivers as soon as possible!
I'm having the same issues with Xperia Arc S in Bulgaria. The phone has set it's wifi radio to operate on channels 1-11 so any networks on channels 12, 13 and 14 aren't visible to me.
Pure Android has the option to set the regulatory domain, but SE has decided to disable (or hide) it.
Here you can see how to set it on a non-SE Android: firdouss.com/2011/07/wifi-network-android-reason/
I've asked SE to check this on their forum too:
talk.sonyericsson.com/message/127760
Thank you the_mouse_bg!
I have bootloader unlocked my Arc S and tried a few roms like CM7.2, MIUI where I can see all 13 channels fine, so from this I have concluded that the problem is really from the firmware as due to the lack of answers on this topic, I was getting really worried this could be a hardware problem from my phone..phewwww
I now have stock firmware .42 with DooMKernel installed and the regulatory domain does appear in the menu but fails to be changed
I asked in the DooMLord's kernel topic to see if I can in any way debug this problem to try to solve it as I'm still little experienced with linux android workings.
Let's see if we can solve this issue asap!!
Regulatory domain (Wi-Fi channels 12 and 13) fix for the factory (default) ROM
I managed to fix the regulatory domain in order to be able to use the wireless channels 12 and 13 in the factory ROM. I only tested this procedure in the Xperia Pro (MK16a) and using the factory GingerBread ROM, although the procedure should be similar for other Xperia models and for the ICS ROM.
Well, it still needs rooting, but for those worried about the warranty it should be better than unlocking the bootloader or installing another ROMs, because you can root your phone, apply the fix, then unroot it, and nobody will ever know the phone was once rooted unless they do a deep forensic analysis.
How the regulatory domain works in Xperia devices
Sony added a class named "com/android/server/WifiService$RegulatoryDomain" which isn't part of standard AOSP. This class checks in which country you currently are based on the current MCC (Mobile Country Code), extracted from the first 3 digits of the current PLMN. Then there is a list of MCCs of countries on which 13 Wi-Fi channels are allowed. If your MCC is on the list, it enables 13 channels, otherwise it only enables 11 channels.
If your current MCC is not on the list, your wifi_num_allowed_channels setting has no effect. It is always reseted to 11.
Note that this is an "Android framework-level lock", not a "Linux-level or driver-level lock", because if you try to run iwlist (you can build yours from this svn repo) it shows channel 12 and 13 Wi-Fi networks even without any modification to the factory ROM.
The problem
The problem is that not all countries which allow 13 Wi-Fi channels are listed in the "WifiService$RegulatoryDomain" class. Apparently, there are typo errors in some MCCs.
For example, Brazil is MCC 724, but the class lists MCC 742, which according to this listing is a non-existent MCC. So it's apparently a typo error. They typed 742 instead of 724.
Fixing it
First, root your device. I used FlashTool for this.
Then, copy /system/framework/services.jar from your device to your computer using adb. Then unpack it (unzip or 7zip or whatever), use baksmali for disassembling classes.dex, and open "com/android/server/WifiService$RegulatoryDomain.smali" in a text editor.
Look for something like:
Code:
const/16 v7, 0x24
const-string v8, "742"
aput-object v8, v6, v7
iput-object v6, p0, Lcom/android/server/WifiService$RegulatoryDomain;->mHighChannelsMccs:[Ljava/lang/String;
This is where the 13-channels-allowed MCC list is being built. The "742" is the apparently non-existent MCC. Just replace it by the MCC of your country. Look at this listing or look at the first 3 digits of the PLMN:
Code:
$ adb logcat | grep PLMN
E/WifiService( 241): Could not get PLMN!
E/WifiService( 241): Could not get PLMN!
E/WifiService( 241): Could not get PLMN!
I/WifiService( 241): PLMN = 72410
I/WifiService( 241): PLMN = 72410
In my case I just replaced "742" by "724".
Then use smali for assembling the code back to the classes.dex file, and repack the services.jar file using jar, zip or another tool.
Finally, copy your modified services.jar to your device's /system/framework/services.jar using adb, and reboot your phone. Now everything should work.
About the attached file
My modified services.jar is attached for reference. Remember it is for the Xperia Pro factory GB ROM. If you use ICS or if you have another Xperia device, you need to baksmali/modify/smali your own jar file as described above.

[Q] Sim card not found in roms cm9 L3

Hi,
I´m spanish and my sim card of Tuenti Movil don´t be detected for the phone and I haven´t got web but when I introduce the sim card of movistar the phone I have web and detecte it.
When I desactive the pIn code the phone detected the sim and I have got web but I haven´t got 3G.
Help me please.
Sorry for mi bad english.
Here are photos of jellycast V6 that is a rom based on cm9
mjgs17 said:
Hi,
I´m spanish and my sim card of Tuenti Movil don´t be detected for the phone and I haven´t got web but when I introduce the sim card of movistar the phone I have web and detecte it.
When I desactive the pIn code the phone detected the sim and I have got web but I haven´t got 3G.
Help me please.
Sorry for mi bad english.
Here are photos of jellycast V6 that is a rom based on cm9
Click to expand...
Click to collapse
r u using the right baseband (check the version number in about phone eg v10k and confirm it with lg firmware website just google it )if not then U have to flash your home country's or open europe's baseband via Kdz flasher then flash the jellycast...!
Problem
drkingtech said:
r u using the right baseband (check the version number in about phone eg v10k and confirm it with lg firmware website just google it )if not then U have to flash your home country's or open europe's baseband via Kdz flasher then flash the jellycast...!
Click to expand...
Click to collapse
I test many firmwares versions, I test open europe and firmwares of spain and always I have the problem.
The problem is in all roms based on cm9.
Sorry for my bad english
mjgs17 said:
I test many firmwares versions, I test open europe and firmwares of spain and always I have the problem.
The problem is in all roms based on cm9.
Sorry for my bad english
Click to expand...
Click to collapse
seems to be a odd problem did u try crossbreeder?
(this for the 3g btw)
http://forum.xda-developers.com/showthread.php?t=2113150
Problem
drkingtech said:
seems to be a odd problem did u try crossbreeder?
(this for the 3g btw)
http://forum.xda-developers.com/showthread.php?t=2113150
Click to expand...
Click to collapse
Thanks you but I dont understand well that is the crossbreeder my level of english isnt be very well and i dont understand this.
mjgs17 said:
Thanks you but I dont understand well that is the crossbreeder my level of english isnt be very well and i dont understand this.
Click to expand...
Click to collapse
just download cross breeder installer
http://forum.xda-developers.com/attachment.php?attachmentid=2086051&d=1372770386
crossbreeder uninstaller
http://forum.xda-developers.com/attachment.php?attachmentid=2086052&d=1372770386
copy them to the sdcard
go cwm wipe cache/dalvik cache install from sdcard-select the CrossBreeder_7.2.13.zip and flash it
reboot device
open the terminal emulator and type and check the codes given on the page
1. VALIDATION and TROUBLESHOOTING:
You can check your DNS boost functionality by running the following command:
Code:
getprop net.dns1
It should report 0.0.0.0
Then to verify Adblock you can select any one host from the blocked hosts file using the command:
Code:
tail /etc/CrossBreeder/dnrd_root/master
Pick one from there and browse to it in your browser. You should get a blank space
If you're experiencing any issues with your tethering, then you can first try and disable the tethering using:
Code:
su -c /system/etc/CrossBreeder/REMOVE_TETHER_BOOST
and rebooting.
You can re-enable it with:
Code:
su -c /system/etc/CrossBreeder/INSTALL_TETHER_BOOST
and rebooting.
Similarly if you're getting any issues with browser not reaching pages etc. then you can try and disable the entire DNS speedup functionality using:
Code:
su -c /system/etc/CrossBreeder/REMOVE_DNS_CLIENT
and rebooting.
You can re-enable it with:
Code:
su -c /system/etc/CrossBreeder/INSTALL_DNS_CLIENT
and rebooting.
Also of note is the Adblock feature. CrossBreeder now uses it's own Adblock file in /etc/CrossBreeder/dnrd_root/master ( NOTE - CHANGED FROM PREVIOUS VERSION). It also serves up these blocks in a clean blank format so you don't get an ugly 'Page not found' error instead of every ad. This is quite unique. If you want to disable Adblock to save around 3 MB of RAM on low end devices, you can run the command:
Code:
su -c /system/etc/CrossBreeder/DISABLE_ADBLOCK
You can re-enable it with:
Code:
su -c /system/etc/CrossBreeder/ENABLE_ADBLOCK
The biggest improvements are in general usability of apps, both local and network based.
2. You can check your entropy values with this tool:
http://play.google.com/store/apps/de...ndentropyavail
or use this method for more fine grained graphs: http://forum.xda-developers.com/show...php?p=38509664
You should get values moving to 4000 regularly with this mod.
Also of some use is this Lag Test app: Lag Test http://db.tt/eBHYJWYn ( Thanks MW86 ). This is for generally testing the CPU based GUI rendering functionality. The aim is to approach 60 fps, but there isn't a guaranteed correlation with CrossBreeder and your FPS result as of now. It is mostly related to your Governor but CrossBreeder certainly helps.
2. If for some reason, your entropy values aren't hovering around 4096 then the app most probably didn't start automatically. You can try and run it manually using:
Code:
su -c "/system/etc/CrossBreeder/zzCrossBreeder FORCE"
If the entropy values go up to around 4096 and stay there, it's working. CrossBreeder is now in it's separate directory and not dependent on your init.d support. You can make it run automatically on boot using an app like SManager from the Play store, just remember to check both 'BOOT' and 'ROOT' for the execution.
3. If you're still getting issues, you can run the collection script:
Code:
su -c /system/etc/CrossBreeder/CHECK_PROCS
(if it hangs you can close the window and run it again) and post the resultant /data/cb_CHECK_PROCS.log file here in this thread or anywhere else and post here pointing to it please. I will try to find a solution or post a bugfix soon.
You can also disable CrossBreeder if you have any problems using:
Code:
su -c /system/etc/CrossBreeder/DISABLE_CROSSBREEDER
4. If you tried (2) and (3) above and it still doesn't work for you or you would still like to uninstall the mod, then please flash the CrossBreeder_Uninstall.zip.
Click to expand...
Click to collapse
Hope u understand...cant get clearer than this lol..!
Problem
drkingtech said:
just download cross breeder installer
http://forum.xda-developers.com/attachment.php?attachmentid=2086051&d=1372770386
crossbreeder uninstaller
http://forum.xda-developers.com/attachment.php?attachmentid=2086052&d=1372770386
copy them to the sdcard
go cwm wipe cache/dalvik cache install from sdcard-select the CrossBreeder_7.2.13.zip and flash it
reboot device
open the terminal emulator and type and check the codes given on the page
Hope u understand...cant get clearer than this lol..!
Click to expand...
Click to collapse
Thank you I understand this

Forcing VoLTE support on Mi-A2 Pie [root] when carrier supports

Hello, Just a small hack that allows me to use the VoLTE that my provider points out is "only available on handsets purchased directly from them" (SFR in France). This got me thinking ==> If VoLTE works on their handsets and not mine then :
a) The carrier infrastructure supports VoLTE
b) The sim cards must be provisioned correctly
c) The difference would therefore be in the telephone configuration ==> I'm thinking build.prop config in their "special firmware"​
So looking through various forums - I came across the following:
https://forums.oneplus.com/threads/root-working-volte-on-stock-oxygen-3-1-0.480128/, https://forum.xda-developers.com/apps/magisk/module-v4-volte-enabler-t3649613 and https://source.android.com/devices/tech/config/carrier (to help understand what IMS is all about)
Here's what I added to the end of my build.prop [you will need root for this]:
Code:
#VoLTE - force the IMS into VoLTE provisioned mode on.
persist.dbg.ims_volte_enable=1
persist.dbg.volte_avail_ovr=1
If you don't want to do that directly in the build.prop you can do this directly from a debug shell
Code:
adb shell
$ su
# setprop persist.dbg.ims_volte_enable 1
# setprop persist.dbg.volte_avail_ovr 1
# reboot
Please note that this did indeed allow me to make/receive calls and use 4G at the same time.
I also see "HD 4G" logo appear to the left of my signal bars.
When I look at my phone config (dial *#*#4636#*#*) I see VoLTE as provisioned.
I think that these lines force the phone to use VoLTE - the risk is that this might break your 4G - you have been warned. I don't guarantee that this works for you.
Can an administrator place this in the https://forum.xda-developers.com/mi-a2/how-to forum please ?
I made this change with temporary root when i activated api for gcam, put this lines with temporary root and get OTA too
if yuou don't have root you can use *#*#86583#*#* . tested working on sfr too.
Tried that but that didn't work... This root build.prop stuff did... I have also added keys for video calling and VoWiFi but until I see those working I'm not keen to publish...
duxxyuk said:
Tried that but that didn't work... This root build.prop stuff did... I have also added keys for video calling and VoWiFi but until I see those working I'm not keen to publish...
Click to expand...
Click to collapse
VoWifi how? Whats the code?
I've got these lines on the back of my build.prop but it doesn't appear to work for me:
Code:
#WiFi calling
persist.data.iwlan.enable=true
persist.dbg.wfc_avail_ovr=1
rober788 said:
I made this change with temporary root when i activated api for gcam, put this lines with temporary root and get OTA too
Click to expand...
Click to collapse
How does a temporary root work? I can't find anything with Google.
Magisk module VoEnableer maybe the best chois.
Thanks for sharing.. it also works on mi a2 lite
Thanks, It works

[GUIDE]Enable VoLTE for unsupported carriers

Hi Let me introduce tutorial, how to enable VoLTE/VoWiFi for some other carriers. All credits goes to @Airpil for his great work with enabling diag port for Pixel 2 phones and to @topjohnwu for his original Magisk project.
UPDATE:
Here is another way by @Vortuks , how to get things working.
Code:
https://github.com/stanislawrogasik/Pixel2XL-VoLTE-VoWiFi
ANOTHER UPDATE:
On Android 11 you can use module VoLTE_enabler_pixel_2_v1_1.zip, but you will myabe need to use SeLinux permissive module too.
BIG UPDATE:
use only on PIE
for android 10 use solution with PDC tool
I created new magisk module with everything needed for enabling VoLTE. Just install VoLTE_enabler_pixel_2_v1_1.zip and enjoy.
this will work only, if there is proper *.mbn for your provider
sometimes is needed to remove/add module after updating monthly updates
sometimes is needed to toggle off/on enhanced 4g LTE mode and go to airplane mode and back
Prerequizites:
your carrier have to support this feature
and you have to enable this feature on operator's side
PC with windows
you must have some luck
Prepare your PC:
google for QPST_2.7.474 and install it
install provided drivers (if they willn't work, google for better)
from provided nokia_mbn_files.zip find the right mcfg_sw.mbn for your carrier, if there isn't any mbn for your carrier, you can try another one, but without warranty
Prepare your phone:
backup everything, what you can especially EFS partition - just for sure
root your phone with provided Magisk.zip
boot up your phone
In Magisk Manager app find and install VoEnablermodule, restart phone
there will be new settings under Settings-Network & internet-Mobile network-Advanced
connect phone to PC and set to charge only mod
in terminal emulator run this commands (this will enable diagnostic port on phone):
Code:
su
setenforce 0
setprop sys.usb.configfs 1 && setprop sys.usb.config diag,serial_cdev,rmnet_gsi,adb
Next steps:
find PDC tool from installed QPST and open
select device from drop-down menu, if it is empty, you will have to reinstall/choose another driver
click load button and find prepared mcfg_sw.mbn file
now right-click on new loaded profile and select SetSelectedConfig - Sub0
and now button Activate
activate provided VoEnabler module via MagiskManager
restart device
and now, if you are lucky one, your VoLTE is working :victory:
Final steps:
if everything is working, you should reinstall original Magisk from twrp
Troubleshhoting:
99,9% of all problems comes with wrong driver
open windows device manager and try to choose another driver for HW like:
Qualcomm HS-USB Modem 9091
Qualcomm HS-USB Diagnostics 9091
Qualcomm HS-USB WWAN Adapter 9091
Is it working?
dial *#*#4636#*#*
Phone information-3dots-IMS service status
If IMS Registration: Registered and Voice over LTE: Available you won
after update with factory images you will have to re-do this steps
Confirmed carriers:
Czech T-mobile
VoLTE - yes
VoWiFi - no
Poland Orange(confirmed by @saperkus)
VoLTE - yes
VoWiFi - yes
Poland Play(confirmed by @saperkus)
VoLTE - yes
VoWiFi - yes
Telenor Bulgariawith Telenor Danemark mbn (confirmed by @pavel5044)
VoLTE - yes
VoWiFi - no
T-Mobile Hungary (Telekom)(confirmed by @hunfatal)
VoLTE - yes
VoWiFi - no
Downloads:
Code:
Drivers:
[url]https://mega.nz/#!oMEHTIbA!0g7ahr8r81Q3ue8LpEy-sfd7FTLEEQlGRi2CJfG_Kq0[/url]
somin.n said:
Hi Let me introduce tutorial, how to enable VoLTE/VoWiFi for some other carriers. All credits goes to @Airpil for his great work with enabling diag port for Pixel 2 phones and to @topjohnwu for his original Magisk project.
Prerequizites:
your carrier have to support this feature
and you have to enable this feature on operator's side
PC with windows
you must have some luck
Prepare your PC:
google for QPST_2.7.474 and install it
install provided drivers (if they willn't work, google for better)
from provided nokia_mbn_files.zip find the right mcfg_sw.mbn for your carrier, if there isn't any mbn for your carrier, you can try another one, but without warranty
Prepare your phone:
backup everything, what you can especially EFS partition - just for sure
root your phone with provided Magisk.zip
boot up your phone
In Magisk Manager app find and install VoEnabler module, restart phone
there will be new settings under Settings-Network & internet-Mobile network-Advanced
connect phone to PC and set to charge only mod
in terminal emulator run this commands (this will enable diagnostic port on phone):
Code:
setenforce 0
setprop sys.usb.configfs 1 && setprop sys.usb.config diag,serial_cdev,rmnet_gsi,adb
Next steps:
find PDC tool from installed QPST and open
select device from drop-down menu, if it is empty, you will have to reinstall/choose another driver
click load button and find prepared mcfg_sw.mbn file
now right-click on new loaded profile and select SetSelectedConfig - Sub0
and now button Activate
and now, if you are lucky one, your VoLTE is working :victory:
Final steps:
if everything is working, you should reinstall original Magisk from twrp
Troubleshhoting:
99,9% of all problems comes with wrong driver
open windows device manager and try to choose another driver for HW like:
Qualcomm HS-USB Modem 9091
Qualcomm HS-USB Diagnostics 9091
Qualcomm HS-USB WWAN Adapter 9091
Is it working?
dial *#*#4636#*#*
Phone information-3dots-IMS service status
If IMS Registration: Registered and Voice over LTE: Available you won
Downloads:
Code:
Drivers:
[url]https://mega.nz/#!oMEHTIbA!0g7ahr8r81Q3ue8LpEy-sfd7FTLEEQlGRi2CJfG_Kq0[/url]
Click to expand...
Click to collapse
Hi I am stuck at the terminal emulator step.
when i type in "setenforce 0" the terminal says "couldn't set enforcing status to '0' invalid argument"
i tried googling and tried some stuff but no luck.
Note: Is there something to do with the kernel coz i am on Sultan Kernel and not sure if its build for only enforcing or only permissive.
please get back to me ASAP.
thankyou
royroyal said:
Hi I am stuck at the terminal emulator step.
when i type in "setenforce 0" the terminal says "couldn't set enforcing status to '0' invalid argument"
i tried googling and tried some stuff but no luck.
Note: Is there something to do with the kernel coz i am on Sultan Kernel and not sure if its build for only enforcing or only permissive.
please get back to me ASAP.
thankyou
Click to expand...
Click to collapse
Hi, yeah, my mistake :angel: You have to use "su" command first to allow root access. Full command is:
Code:
su
setenforce 0
setprop sys.usb.configfs 1 && setprop sys.usb.config diag,serial_cdev,rmnet_gsi,adb
And please, don't quote full first post
somin.n said:
Hi, yeah, my mistake :angel: You have to use "su" command first to allow root access. Full command is:
And please, don't quote full first post
Click to expand...
Click to collapse
Yes sorry for replying over the OP.
Yes i knew already to use "su" inorder to grant supersu access, but this didnt work for me and i am not able to proceed. Husssshh..
royroyal said:
Yes sorry for replying over the OP.
Yes i knew already to use "su" inorder to grant supersu access, but this didnt work for me and i am not able to proceed. Husssshh..
Click to expand...
Click to collapse
Hmm, should work? Try to write it, not copy... Try the other command without changing enfonforcing, it is maybe not necessary.
somin.n said:
Hmm, should work? Try to write it, not copy... Try the other command without changing enfonforcing, it is maybe not necessary.
Click to expand...
Click to collapse
Tried to write as well as copying, also tried without the 1st command but no luck.. and as no one has tried this yet aslo not able to know if this is happening with my device only.
royroyal said:
Tried to write as well as copying, also tried without the 1st command but no luck.. and as no one has tried this yet aslo not able to know if this is happening with my device only.
Click to expand...
Click to collapse
Interesting try to restart your phone, open windows device manager, connect phone (now should be detected some new hw), open terminal and write commands and look, if some new hw was detected or if you have some new unknown devices in device manager. You should also look to Airpil's thread for some help.
Code:
[url]https://forum.xda-developers.com/pixel-2-xl/how-to/guide-qxdm-port-activation-pixel-2-xl-t3884967[/url]
somin.n said:
Interesting try to restart your phone, open windows device manager, connect phone (now should be detected some new hw), open terminal and write commands and look, if some new hw was detected or if you have some new unknown devices in device manager. You should also look to Airpil's thread for some help.
Click to expand...
Click to collapse
Will try this and update here
Successfully enable volte on my pixel2,Thanks!
Please provide carrier details in your post guys! With that being said, has anyone got it to work on Straight Talk (Verizon or ATT sim?)
Enable VoLTE for Vodafone in India
Vodafone in India has not provisioned the Pixel 2 till yet for VoLTE despite many people getting after them. A lot of noise was generated by users when Google pointed out that they had done what was required in the Android Pie updates.
Many thanks for this guide as it has helped me to enable VoLTE on my Pixel 2. On checking with *#*#4636#*#* it shows that VoLTE is now provisioned for voice. I now need to connect to any other phone where VoLTE is working and see if it indeed connects using VoLTE.
The only problem I had was in opening the port before using QPST. I had to type in the commands a second time in the terminal and then the port opened allowing me to proceed.
almightysiman said:
Successfully enable volte on my pixel2,Thanks!
Click to expand...
Click to collapse
Hi,
did u do it over the stock rom/kernel or on any custom kernel.
and can u post every step that u did to get it done.
currently i m on pure stock 9.0 pie with locked bootloader on february security patch.
this is my previous comment over the thread..
Hi I am stuck at the terminal emulator step.
when i type in "setenforce 0" the terminal says "couldn't set enforcing status to '0' invalid argument"
i tried googling and tried some stuff but no luck.
Note: Is there something to do with the kernel coz i am on Sultan Kernel and not sure if its build for only enforcing or only permissive.
royroyal said:
Hi,
did u do it over the stock rom/kernel or on any custom kernel.
and can u post every step that u did to get it done.
currently i m on pure stock 9.0 pie with locked bootloader on february security patch.
this is my previous comment over the thread..
Hi I am stuck at the terminal emulator step.
when i type in "setenforce 0" the terminal says "couldn't set enforcing status to '0' invalid argument"
i tried googling and tried some stuff but no luck.
Note: Is there something to do with the kernel coz i am on Sultan Kernel and not sure if its build for only enforcing or only permissive.
Click to expand...
Click to collapse
I am on du rom.you should type su before setenforce 0
Hadookie said:
Please provide carrier details in your post guys! With that being said, has anyone got it to work on Straight Talk (Verizon or ATT sim?)
Click to expand...
Click to collapse
I'm back overseas now, but while I was home for the holidays I used a Straight Talk ATT sim and had no problems using the MagiskHide Props module to manually add the lines from this module:
https://forum.xda-developers.com/apps/magisk/module-v4-volte-enabler-t3649613
It was somewhat inconsistent though. Seemed to only work with certain people I called. Also, I use Google Voice when I'm home, so that may account for the inconsistency.
I haven't tried the method outlined by the OP, though. I've had a solid setup for months now and I'm a bit hesitant to try anything that might kink it up.
Edit:
Now that I think about it, I never checked the IMS Registration to be sure, so I can't be sure if it was actually working, but it would show the "HD" calling icon on the dialer screen when connected, so I just assumed it was working.
Thank you for sharing this guide.
I can confirm, that VoLTE and VoWiFi is working fine in Orange Poland and PLAY (Poland). In case of PLAY, both services are disabled by default. You have to contact with service provider and ask them to enable WiFi Calling. By enabling it, VoLTE will be also enabled.
saperkus said:
Thank you for sharing this guide.
I can confirm, that VoLTE is working in Orange Poland and VoLTE and VoWiFi is working in PLAY (Poland). In case of PLAY, both services are disabled by default. You have to contact with service provider and ask them to enable WiFi Calling. By enabling it, VoLTE will be also enabled.
Click to expand...
Click to collapse
Any chance to get WiFi calling working on Orange PL?
And will this work at all on OG Pixel?
bige93 said:
Any chance to get WiFi calling working on Orange PL?
Click to expand...
Click to collapse
It seems, that I haven't been patient enough in case of Orange PL... I have redone the tests and was able to make VoWiFi to work. There's a need to reboot the device after swapping SIM cards. After reboot, VoWiFi works fine.
bige93 said:
And will this work at all on OG Pixel?
Click to expand...
Click to collapse
You're free to check it. I've checked on Nexus 5X and it didn't work at all.
saperkus said:
It seems, that I haven't been patient enough in case of Orange PL... I have redone the tests and was able to make VoWiFi to work. There's a need to reboot the device after swapping SIM cards. After reboot, VoWiFi works fine.
You're free to check it. I've checked on Nexus 5X and it didn't work at all.
Click to expand...
Click to collapse
Do I have to use some special ("diag") version of the Magisk as it says it the 1st post? Can't find 'magisk diag' for Sailfish.
bige93 said:
Do I have to use some special ("diag") version of the Magisk as it says it the 1st post? Can't find 'magisk diag' for Sailfish.
Click to expand...
Click to collapse
This is a modded version of Magisk, which gives an ability to enable diagnostic port (normally it can't be enabled). It was prepared for Pixel 2 XL, but it also works fine with Pixel 2. I can't tell, if you need to use this version or not. Install standard Magisk version and check if you can enable this port using provided commands. If not, then it's up to you to decide, if you want to check modded version of Magisk or not.
Has anybody tried to install the modified Magisk on android Q Beta yet? I am getting error 1, it doesn't install

[Guide] How to enable wifi tethering

This guide is for academic and development purposes only and should not be used to circumvent any contracts you have with you cell carrier.
You need to be rooted in order to enable wifi tethering.
Rooting and editing your stock image voids most warranties.
Follow this guide at your own risk. (I can't take responsibility for you braking your phone)
1. Install a Build.prop editor(this isn't mandatory but I find it makes things easier) I use this one: https://play.google.com/store/apps/details?id=com.jrummy.apps.build.prop.editor&hl=en_US
2. add the following line to the build prop: net.tethering.noprovisioning=true
3. Reboot your phone
4. Profit
SAVED
dtb1987 said:
2. add the following line to the build prop: net.tethering.noprovisioning=true
Click to expand...
Click to collapse
Which section of the build prop did you put it in?
gargleblarg said:
Which section of the build prop did you put it in?
Click to expand...
Click to collapse
I normally put it at the end
dtb1987 said:
I normally put it at the end
Click to expand...
Click to collapse
Thanks, it works like a charm .
Note, if you are running Magisk, you shouldn't update the build prop directly, which modifies the system partition so you can no longer use an OTA update.
Use this Magisk function (on one line) in a shell file (any_name.sh) with execution permissions (755)...
resetprop net.tethering.noprovisioning true
Added to this directory...
/data/adb/service.d/
or if it doesn't work there, move to this directory...
/data/adb/post-fs-data.d/
I have not tested this myself, but it is how you are supposed to change build prop when using Magisk. Do your own research to make this work properly...
duh1 said:
Note, if you are running Magisk, you shouldn't update the build prop directly, which modifies the system partition so you can no longer use an OTA update.
Use this Magisk function (on one line) in a shell file (any_name.sh) with execution permissions (755)...
resetprop net.tethering.noprovisioning true
Added to this directory...
/data/adb/service.d/
or if it doesn't work there, move to this directory...
/data/adb/post-fs-data.d/
I have not tested this myself, but it is how you are supposed to change build prop when using Magisk. Do your own research to make this work properly...
Click to expand...
Click to collapse
You shouldn't OTA update a rooted phone to begin with because those updates don't account for changes you may have made. you should be downloading the updates from here: https://developers.google.com/android/images and flashing them manually
dtb1987 said:
You shouldn't OTA update a rooted phone to begin with because those updates don't account for changes you may have made. you should be downloading the updates from here: https://developers.google.com/android/images and flashing them manually
Click to expand...
Click to collapse
You can't run an OTA update on a modified boot image. You use Magisk to revert the boot image back to stock, run the update and re-root. Since it's a systemless root and you don't modify anything directly in the system image, therefore you don't have to revert back to stock system.
I was just offering a quick heads up for those who may be rooted with Magisk, on how to properly modify the build prop without modifying system directly. It's a good thing to learn since many times you'll have to modify those init scripts anyway.
How do I add it to magisk, I'm totally new to it.
Question: I currently have AT&T's (really lame) tethering plan, and my data plan is capped at 5GB data (for my business, AT&T does not offer an unlimited data plan with tethering). So I currently have the ability to turn on/off the Wifi hotspot setting in the phone Settings.
I just rooted the phone and did your update. To test success, I now have to change my plan to unlimited data (no tethering). When I do this, I should be able to still turn on/off the Wifi hotspot via the phone Settings (even though I no longer have the plan with the tethering feature)? Thank you.
issues with Android 10?
Hi, I followed these instructions and all is good.... But I'm stuck on Android 9, holding off on moving to Android 10 due to what I've read in other posts about this technique no longer working. Thought I'd check back to see if anyone has had success upgrading to Android 10 - and enabling wifi tethering via the technique mentioned above. Thanks.
Tethering on Android 10
This works for me on Android 10. It systemless-ly adds the
Code:
net.tethering.noprovisioning=true
line using the resetprop command, and it also runs
Code:
settings put global tether_dun_required 0
which prevents your phone from marking tethered data as such. This makes it harder for your carrier to throttle or block tethered data.
Just keep in mind that if your carrier really cares about tethering, they can still tell through TTL (for IPv4) or Hop Limit (for IPv6) whether or not the traffic is coming from your phone or an attached device. This can be circumvented by setting TTL/Hop Limit on the client devices to 65 before connecting to the hotspot.
DaBigGoog said:
This works for me on Android 10. It systemless-ly adds the
Code:
net.tethering.noprovisioning=true
line using the resetprop command, and it also runs
Code:
settings put global tether_dun_required 0
which prevents your phone from marking tethered data as such. This makes it harder for your carrier to throttle or block tethered data.
Just keep in mind that if your carrier really cares about tethering, they can still tell through TTL (for IPv4) or Hop Limit (for IPv6) whether or not the traffic is coming from your phone or an attached device. This can be circumvented by setting TTL/Hop Limit on the client devices to 65 before connecting to the hotspot.
Click to expand...
Click to collapse
Awesome - thank you!
saved
duh1 said:
Note, if you are running Magisk, you shouldn't update the build prop directly, which modifies the system partition so you can no longer use an OTA update.
Use this Magisk function (on one line) in a shell file (any_name.sh) with execution permissions (755)...
resetprop net.tethering.noprovisioning true
Added to this directory...
/data/adb/service.d/
or if it doesn't work there, move to this directory...
/data/adb/post-fs-data.d/
I have not tested this myself, but it is how you are supposed to change build prop when using Magisk. Do your own research to make this work properly...
Click to expand...
Click to collapse
I don't understand how to do this or what it means. I have root magisk on sm-a235f
Use this Magisk function (on one line) in a shell file (any_name.sh) with execution permissions (755)...
resetprop net.tethering.noprovisioning true

Categories

Resources