Hi, I come from Slovenia, EU. I read all the comments and understood that VoLTE does not work without root. Sad.
HiI found some other stuff. But it's not for the fainth of heart ;-)
In /product/etc/CarrierSettings directory you have .pb (protobuf) files which contain carrier info (read: https://source.android.com/devices/tech/config/carrierid). For example there are specific files for US networks (e.g. sprint_us.pb), networks in France (e.g. bouygues_fr.pb), networks in UK (e.g. ee_gb.pb). I would say these will be "fully" supported by Google. There are 130 files there.
Just as an example, here is the config for the bouygues_fr.pb (Bouygues network in France):
Code:canonicalName: "bouygues_fr" version: 30000000317 apns { apn { name: "Bouygues Telecom" value: "mmsbouygtel.com" type: DEFAULT type: SUPL type: MMS authtype: 1 mmsc: "http://mms.bouyguestelecom.fr/mms/wapenc" protocol: IPV6 } apn { name: "Bouygues Telecom IMS" value: "ims" type: IMS protocol: IPV4V6 userVisible: false } apn { name: "Bouygues XCAP" value: "mmsbouygtel.com" type: XCAP bearerBitmask: "3|9|10|11|14|15|20" authtype: 1 protocol: IPV6 } } configs { config { key: "carrier_certificate_string_array" textArray { item: "A0058F6467628EA2031C4C9D8519ABECB2671F6A1752B15A89369CDCB8D2952B" } } config { key: "carrier_cross_sim_ims_available_bool" boolValue: false } config { key: "carrier_default_wfc_ims_mode_int" intValue: 1 } config { key: "carrier_supports_ss_over_ut_bool" boolValue: true } config { key: "carrier_ussd_method_int" intValue: 2 } config { key: "carrier_volte_available_bool" boolValue: true } config { key: "carrier_wfc_ims_available_bool" boolValue: true } config { key: "editable_wfc_mode_bool" boolValue: false } config { key: "iwlan.child_sa_rekey_hard_timer_sec_int" intValue: 7400 } config { key: "iwlan.child_sa_rekey_soft_timer_sec_int" intValue: 7300 } config { key: "iwlan.diffie_hellman_groups_int_array" intArray { item: 14 } } config { key: "iwlan.ike_rekey_hard_timer_in_sec" intValue: 14800 } config { key: "iwlan.ike_rekey_soft_timer_sec_int" intValue: 14700 } config { key: "iwlan.key_error_policy_config_string" textValue: "[{\"ApnName\": \"*\",\"ErrorTypes\": [{\"ErrorType\": \"IKE_PROTOCOL_ERROR_TYPE\",\"ErrorDetails\": [\"9000\", \"10000\"],\"RetryArray\": [\"0\", \"0\"],\"UnthrottlingEv ents\": [\"APM_ENABLE_EVENT\", \"WIFI_DISABLE_EVENT\", \"WIFI_AP_CHANGED_EVENT\", \"WIFI_CALLING_DISABLE_EVENT\"]}, {\"ErrorType\": \"IKE_PROTOCOL_ERROR_TYPE\",\"ErrorDetails\": [\"1050 0\"],\"RetryArray\": [\"3600\", \"-1\"],\"UnthrottlingEvents\": [\"APM_ENABLE_EVENT\", \"WIFI_DISABLE_EVENT\", \"WIFI_AP_CHANGED_EVENT\", \"WIFI_CALLING_DISABLE_EVENT\"]}, {\"ErrorType\ ": \"IKE_PROTOCOL_ERROR_TYPE\",\"ErrorDetails\": [\"11002\", \"11003\"],\"RetryArray\": [],\"UnthrottlingEvents\": [\"APM_ENABLE_EVENT\", \"WIFI_DISABLE_EVENT\", \"WIFI_AP_CHANGED_EVENT \", \"WIFI_CALLING_DISABLE_EVENT\"]}]}]" } config { key: "maxImageHeight" intValue: 1944 } config { key: "maxImageWidth" intValue: 2592 } config { key: "maxMessageSize" intValue: 614400 } config { key: "show_4g_for_lte_data_icon_bool" boolValue: true } config { key: "supportHttpCharsetHeader" boolValue: false } }
As you can see in the config part, it has an indication that VoLTE is available. And when it is available, it will show the 4G icon in the status bar (instead of the LTE icon). I know that this works, because I tested with my brother's SIM card which is on that exact network.
There is one file, called '/product/etc/CarrierSettings/others.pb' (on the phone) which has carrier specs for ALL other networks in the world. However, these specs seem to be rather minimal. Not all networks are even there (I am currently on Belgian Youfone which is missing from that file). I checked, for example, for the Proximus network in Belgium and there very little configuration, e.g. no indication of VoLTE (which I know is there).
Maybe - but I'm not 100% sure - network info can be added via these files.
I fiddled around with this others.pb file. First, decompile the .pb (protobuf) into text, then modify test, then recompile the text into pb (protobuf) format, then (using a Magisk bind mount) overwrite /etc/product/CarrierSettings/others.pb on the phone.
And tada, when I refreshed the APN info, my Youfone network and APN spec were there, automatically selected by the phone.
I'm not 100% sure, but maybe VoLTE/5G can be added as well through these files.
You need to do some research. First read the article: https://source.android.com/devices/tech/config/carrierid, this explains a bit how the Carrier pb files are
You will need the protoc tool (see https://github.com/protocolbuffers/protobuf). I downloaded the source and built it from source. It allows you to decompile/recompile the pb files, e.g. on Linux:
Code:Decompile pb file into text: > protoc -I. --decode=MultiCarrierSettings carriersettings.proto < ~/pixel/raven-sd1a.210817.037/mnt/product/etc/CarrierSettings/others.pb > out.txt
The carriersettings.proto file can be downloaded from: https://github.com/daradib/carriersettings-extractor
Then edit the out.txt file, modify/add your network details, remove the last 3 lines of the file (some sort of version indicator I'm guessing), finally recompile into protobuf using:
Code:Recompile text file into protobuf: > cat out.txt | protoc --encode=MultiCarrierSettings carriersettings.proto > others.pb
You will need a Magisk module to 'replace' the others.pb file on your phone. Module is attached, download it (the original phone's 'other.pb' file is in there).
First, unzip it, then copy YOUR modified pb file, then re-zip it.
Code:> cd temp > unzip ~/replaceotherspb.zip > cp mymodifiedpbfile.pb system/product/etc/CarrierSettings/others.pb > zip -r ~/mymagisk.zip . > adb push ~/mymagisk.zip /sdcard/
Then install the module mymagisk.zip using the Magisk app. Go to settings > network > your SIM > access points, tap the 3 dots and 'refresh'. Your modified carrier details should be loaded now.
Again, I'm absolutely not an expert in this ... so can't really support ... I'm not even sure if this will allow you to activate VoLTE/5G, but worth a try. Good luck.
Pixel does not have mbn files (for your info).Hi
On my oneplus 7 pro i changed the mbn file and used the one from maxiz Malaysia and it worked. Im on Omantel network.
I checked the directory u pointed to and got wondering if we can somehow change the name of one of the existing operators files and point it to Omantel.
What i mean to say, i was thinking to use the values of for example yes_my.pb by changing it to omantel and letting the phone to refer to it instead referring others.pb
I don't have that much experience in decompiling and recompiling but from my expertise, can a magisk module be made to help change the names of the current existing files and make new files perhaps or rename the current files.
This was maybe can quickly try other operators settings.
Im currently using pixel 7 pro
Is there a way to permanently edit the "others" file. So it stays the same, even after unroot?Pixel does not have mbn files (for your info).
Magisk is not able to 'rename' files. It can mount a new file over another one (keeping the same name) or 'add' files into a directory. Rename/delete of files is not possible with Magisk.
Yes I came to know a while back from other threads that pixels are using samsung and mbn is Qualcomm.Pixel does not have mbn files (for your info).
Magisk is not able to 'rename' files. It can mount a new file over another one (keeping the same name) or 'add' files into a directory. Rename/delete of files is not possible with Magisk.
So i tried this.let me know if it worked
credits to foobar66 for the script
reuploaded the file had to delete garbage files sorry for that
How to use this file
So through this way, is there a chance to unlock pixel 6 pro verizon permanently?Now there is actually a way to enable VoLTE without root.
![]()
pixel-volte-patch/README.en.md at main · kyujin-cho/pixel-volte-patch
Rootless replacement for persist.dbg.volte_avail_ovr patch - pixel-volte-patch/README.en.md at main · kyujin-cho/pixel-volte-patchgithub.com
No.So through this way, is there a chance to unlock pixel 6 pro verizon permanently?
thanks!!! finallyNow there is actually a way to enable VoLTE without root.
![]()
pixel-volte-patch/README.en.md at main · kyujin-cho/pixel-volte-patch
Rootless replacement for persist.dbg.volte_avail_ovr patch - pixel-volte-patch/README.en.md at main · kyujin-cho/pixel-volte-patchgithub.com
canonicalName: "bouygues_fr"
version: 30000000317
apns {
apn {
name: "Bouygues Telecom"
value: "mmsbouygtel.com"
type: DEFAULT
type: SUPL
type: MMS
authtype: 1
mmsc: "http://mms.bouyguestelecom.fr/mms/wapenc"
protocol: IPV6
}
apn {
name: "Bouygues Telecom IMS"
value: "ims"
type: IMS
protocol: IPV4V6
userVisible: false
}
apn {
name: "Bouygues XCAP"
value: "mmsbouygtel.com"
type: XCAP
bearerBitmask: "3|9|10|11|14|15|20"
authtype: 1
protocol: IPV6
}
}
configs {
config {
key: "carrier_certificate_string_array"
textArray {
item: "A0058F6467628EA2031C4C9D8519ABECB2671F6A1752B15A89369CDCB8D2952B"
}
}
config {
key: "carrier_cross_sim_ims_available_bool"
boolValue: false
}
config {
key: "carrier_default_wfc_ims_mode_int"
intValue: 1
}
config {
key: "carrier_supports_ss_over_ut_bool"
boolValue: true
}
config {
key: "carrier_ussd_method_int"
intValue: 2
}
config {
key: "carrier_volte_available_bool"
boolValue: true
}
config {
key: "carrier_wfc_ims_available_bool"
boolValue: true
}
config {
key: "editable_wfc_mode_bool"
boolValue: false
}
config {
key: "iwlan.child_sa_rekey_hard_timer_sec_int"
intValue: 7400
}
config {
key: "iwlan.child_sa_rekey_soft_timer_sec_int"
intValue: 7300
}
config {
key: "iwlan.diffie_hellman_groups_int_array"
intArray {
item: 14
}
}
config {
key: "iwlan.ike_rekey_hard_timer_in_sec"
intValue: 14800
}
config {
key: "iwlan.ike_rekey_soft_timer_sec_int"
intValue: 14700
}
config {
key: "iwlan.key_error_policy_config_string"
textValue: "[{\"ApnName\": \"*\",\"ErrorTypes\": [{\"ErrorType\": \"IKE_PROTOCOL_ERROR_TYPE\",\"ErrorDetails\": [\"9000\", \"10000\"],\"RetryArray\": [\"0\", \"0\"],\"UnthrottlingEv
ents\": [\"APM_ENABLE_EVENT\", \"WIFI_DISABLE_EVENT\", \"WIFI_AP_CHANGED_EVENT\", \"WIFI_CALLING_DISABLE_EVENT\"]}, {\"ErrorType\": \"IKE_PROTOCOL_ERROR_TYPE\",\"ErrorDetails\": [\"1050
0\"],\"RetryArray\": [\"3600\", \"-1\"],\"UnthrottlingEvents\": [\"APM_ENABLE_EVENT\", \"WIFI_DISABLE_EVENT\", \"WIFI_AP_CHANGED_EVENT\", \"WIFI_CALLING_DISABLE_EVENT\"]}, {\"ErrorType\
": \"IKE_PROTOCOL_ERROR_TYPE\",\"ErrorDetails\": [\"11002\", \"11003\"],\"RetryArray\": [],\"UnthrottlingEvents\": [\"APM_ENABLE_EVENT\", \"WIFI_DISABLE_EVENT\", \"WIFI_AP_CHANGED_EVENT
\", \"WIFI_CALLING_DISABLE_EVENT\"]}]}]"
}
config {
key: "maxImageHeight"
intValue: 1944
}
config {
key: "maxImageWidth"
intValue: 2592
}
config {
key: "maxMessageSize"
intValue: 614400
}
config {
key: "show_4g_for_lte_data_icon_bool"
boolValue: true
}
config {
key: "supportHttpCharsetHeader"
boolValue: false
}
}
Decompile pb file into text:
> protoc -I. --decode=MultiCarrierSettings carriersettings.proto < ~/pixel/raven-sd1a.210817.037/mnt/product/etc/CarrierSettings/others.pb > out.txt
Recompile text file into protobuf:
> cat out.txt | protoc --encode=MultiCarrierSettings carriersettings.proto > others.pb
> cd temp
> unzip ~/replaceotherspb.zip
> cp mymodifiedpbfile.pb system/product/etc/CarrierSettings/others.pb
> zip -r ~/mymagisk.zip .
> adb push ~/mymagisk.zip /sdcard/