I’ve come to realise this only worked for me (in NZ) if I used the SEA modem, no other firmware modems (JP, HK, EEA) worked. Therefore I’ve moved the info into the NZ VoLTE. Here is a method to try that follows the same concept, but can be done from your phone. I take no responsibility if anything happens to your device as I’ve done this without an appreciation of what results from the commands, and therefore am unaware of any negative effects that may relate occur.
Figure out where your modem is stored (modem_a):
ls -all /dev/block/bootdevice/by-name
Mine was sda37 (I’d assume all X10iii are the same). Dump the modem into an img file (this places it in the home directory:
devel-su dd if=/dev/block/sda37 of=/home/defaultuser/modem.img
Mount the .img file:
mkdir modem
enter root: devel-su
mount -o loop modem.img modem
Use a root file manager to go into the mounted modem and dump an mbn from your carrier over another one that already exists. e.g., I got a NZ (Spark) mbn and placed it here, overwriting the old one:
...\modem\image\modem_pr\mcfg\configs\mcfg_sw\generic\Russia\Beeline\Gen_3GPP\
mbn files that may work (not certain):
Pixel-Redbull-Carrier-Patch (credit: swangjang)
Mi11 - Ultra (Snapdragon 888) MBN files (credit: JazonX)
Now, using the same root file manager, edit the ver_info.txt file placed in \modem\verinfo\ folder to change the version to another value (e.g., at the bottom of the file, from "Version": "1.0" to "Version": "1.1") - this is done so the phone triggers a refresh of stored modem_config files.
Back in terminal, run:
sync
umount modem
dd if=modem.img of=/dev/block/bootdevice/by-name/modem_a
dd if=modem.img of=/dev/block/bootdevice/by-name/modem_b
sync
Then reboot and cross your fingers (it took a moment for VoLTE to kick in for me after first reboot).
Reboot.
YMMV
For reference, I flashed the EEA firmware onto my phone to try see if I could get VoLTE to work without flashing a different regions modem, and it just didn’t want to. I did find out, however, that flashing a SEA modem, rebooting, deleting all files in the /data/vendor/radio/ directory, and then rebooting again allowed VoLTE to work. Again, YMMV.
Edits: tidy ups, further info/clarifications