[Sony Xperia XZ Premium Guides, News, & Discussion] KamilFKH:
XZ Premium Vodafone CZ Volte & WiFi calling in Pie WITHOUT bootloader unlock​

THE STORY BEHIND

As I have very poor telephone signal inside the building of our veteran garage due to combination of a garage-to-BTS distance and very thick walls of an old building and many calls to me ended up with "The number cannot be reached, try again later" and me receiving the SMS with info about missed call, I wanted to use last issued Android for my Xperia XZ Premium single SIM G8141 and to have available VoLTE and VoWiFi for my provider Vodafone CZ. Then I started to investigate, which version of the phone and which customization I have exactly. I found, that despite being located in Central Europe, my phone customization was to my surpise of South Africa (1308-5324 Customized ZA 47.2.A.10.107). To achieve activation of the VoLTE and VoWiFi I thought, it could be enough to flash the Central Europe customization (1308-5321 Customized CE1 47.2.A.10.107), as special Vodafone CZ customization was not showed by XperiCheck, and it will all work seamlessly then. I could not be wrong more. After quite weak search for the info, I downloaded and flashed that Pie CE1 customization, with skipping userdata, all TA files and persist.sin to keep all data and settings not erased, there was no VoLTE nor VoWiFi available anyway. Then I started to investigate the possibilities more intensively. What I found, there was no direct option to have VoLTE and VoWiFi activated somehow on Pie, as the temp root and modification guides was available just for Oreo. But there were some hints within those threads, that pointed me to the possibility to achieve to have that function on Pie as well. Despite there were infos, that the intended sequences did not worked for some members trying it for Pie, it was not detailed enough to be clear, how they proceed. So I started to think about that all the time and based on number of Xperia XZ1c/XZ1/XZp threads, I considered many ways how to achieve my goal. Finally, the resulted steps were none of my ideas, I just collected all the wisdome from those threads and I just put them into the right sequence, that worked for me. If being on temp root supported Oreo firmware when started, it could be a path without loosing any user data, but as I was on last Pie, I had to backup every possible data and settings and to proceed the downgrade from Pie to Oreo with factory reset. There is no known way to me to downgrade with user data being kept, as despite I was warned, I tried it and I got the "promised" bootloop of course. ;)

THE BASIC INFO

- SONY Xperia XZ1 (G8341), SONY Xperia XZ1 Compact (G8441) and SONY Xperia XZ Premium (G8141) are very similar phones with almost identical hardware. Therefore their firmwares do not differ much, at least in the text config files content manner. Hinted by XDA users, there can be the config files adapted from one of those devices to another easily. Many of them tested that for the Oreo and it worked fine for them.

- There exists Vodafone CZ customized Pie firmware for both XZ Premium friendly phones and they differ to their CE1 customized Pie firmware version just in the config settings part of oem.sin file and all modem definitions present inside in the system.sin are the same, so to change active modem, there is just config files modification needed that can be achieved through the temp root

- Using UnSin and ext4 image mounting SW investigate the files content, location and presence and try to figure out, which files could work for Your phone

- when flashing firmware, all excluded *.sin files/partitions will be not overwritten by new data and kept in the phone in current status and content. This is used in described steps to transfer changes from firmware supported by temp root to target firmware.

THE DESCRIPTION

The VoLTE and VoWiFi config files are in the /oem folder's subfolders. The content of the /oem folder can be kept when upgrading from lower to higher version of the Android by excluding the oem*.sin file when flashing. I disliked the idea to have oem settings from Oreo in the Pie and I tried to modify Pie's /oem folder within the Oreo firmware. Based on the info from this forum and by comparing all the firmwares content, I prepared (copied from CZ customized Pie firmware version of friendly phone G8341 XZ1) few files, that I identified to be important to change the modem file choosing by the system in XZ Premium Pie. So I prepared my own custom Oreo temp root supported CE1 customized firmware, excluded the XZp Oreo oem.sin and included the XZp Pie oem*.sin. I prepared the files to be changed in XZp Pie's /oem folder and the XZp Pie firmware with oem.sin excluded as well. I flashed first the hybrid XZp Oreo-with-Pie-oem-folder firmware to my phone successfully, started the XZp with Android Oreo. I cancelled all automatic updates, activated developer menu item and set the USB debugging ON. With using ADB I ran temp root, injected modified files into the /oem folder and set their rights. Rebooted and with temp root again I checked the injected files presence in /oem folder. Then I flashed CE1 customized XZp Pie firmware with its oem.sin excluded and rebooted XZp to Pie. I cancelled all automatic updates again and checked the modem and VoLTE settings. There was VoLTE option switch inside the service menus in blue color and actitaved with the VoWiFi option greyed out but set to ON. There the Enable VoLTE menu item appeared in the Network settings and it could be switched ON. In the Call settings, the Wi-Fi calling menu item appeared there in Advanced settings and could be activated. The service itself appeared and started to function after activating the service inside the provider Self service web portal.

THE PRINCIPLE

- I wanted VoLTE and VoWiFi for Vodafone CZ on SONY Xperia XZ Premium single SIM G8141

- To let it work, I had to modify Pie's /oem folder

- it is posible to modify it only when rooted or temp rooted

- I do not want to root it

- the only temp root is for Oreo

- I prepared and flashed hybrid firmware, Pie /oem with the Oreo main system - this trick was my only invention to this and it fortunately worked ! (y):geek:(y)

- I modified Pie /oem folder inside Oreo firmware temp root to support Pie's VoLTE and VoWiFi for Vodafone CZ

- I flashed latest Pie excluding the oem.sin to keep modified /oem settings then

- I switched the device settings ON and I activated the provider support for Vodafone CZ VoLTE and VoWiFi in Self Service portal

- Now I can enjoy Vodafone CZ VoLTE and VoWiFi on SONY Xperia XZ Premium single SIM G8141

WHAT TO DOWNLOAD

- To investigate Your phone version settings (not needed to follow my steps)

Download UnSin (UnSIN 1.13 (Win x64).zip)

Download SW for mounting and explore ext4 partition (ext2explore-2.2.71.rar)

Download the firmware for the other phones to look for setting files. In my case, it was G8341 Vodafone CZ customized Pie firmware (XZ1 G8341_Vodafone CZ_47.2.A.11.228-R2C)

- To activate VoLTE and VoWiFi for Vodafone CZ on SOMY Xperia XZ Premium single SIM G8141 (enough to follow my steps)

Download ADB (platform-tools_r33.0.2-windows.zip)

Download newflasher (newflasher_v52.zip)

Download the j4nn temp root alternative solution for G8141 (bindershell)

Download the G8141 j4nn temp root supported Oreo firmware in the same customization, as the later Pie to minimize issues (XZ Premium G8141_47.1.A.16.20 Customization CE1)

Download the G8141 CE1 customized Pie firmware (1308-5321 Customized CE1 47.2.A.10.107)

Download the G8141 Vodafone CZ customized Pie /oem fodler files (attached here as G8141_Vodafone_CZ_Modded_Pie_OEM_folder.ZIP)

THE PREPARATION

- if You want to proceed for phone different to G8141 and Vodafone CZ, check with xpericheck all three phone versions firmwares, whether there is any that contains customized version for Your provider, if there is one for Your phone, just flash that customization and You go

- if there is customized version of the firmware for Your provider for any of the other two phones, investigate the content of those firmwares oem*.sin and system*.sin files and try to match the proper files to copy/modify for Your phone (use UnSin and ext4 explorer for this task), the content of modem.conf file in oem.sin file, modem-config folder holds the short name of the modem *.mbn file in system.sin file, etc/customization/modem folder. For example, if modem.conf file contains "vodafone_czech_volte_vowifi" text, it defines using the "amss_fsg_maple_vodafone_czech_volte_vowifi_tar.mbn" modem files, that allows function of VoLTE and VoWiFi for Vodafone CZ. If Your firmware in system.sin contains modem file with the same name, You can modify /oem part of the firmware to select this modem and activate VoLTE and VoWiFi for Your phone/provider combination as well. I was inspired by Robin Banks files copied and I identified and copied several relevant files from G8341 Vodafone CZ firmware's /overlay folder as well. Try to add similar files for Your phone version as well.

- Prepare the XZ Premium single SIM G8141 temp root supported Oreo firmware into folder "01 not full Oreo downgrade with Pie OEM"

- exclude the Oreo oem.sin to allow using Pie oem.sin

- exclude the following Oreo firmware files as well: see content of the folder "01b not used Oreo files" (for the list see attachement file G8141_Vodafone_CZ_mod_FoldersContent.TXT)

- do not exclude userdata.sin when downgrading or else You get the bootloop (tested by myself :cool:)

- copy inside the folder the Pie's oem*.sin (oem_X-FLASH-CUST-42E5.sin)

- copy inside the folder the newflasher.exe file (to ease the process)

- extract ADB files into its folder, c:\platform-tools\ in my case

- copy content of the "02 adb push files" folder into c:\platform-tools\, extract it from the attached G8141_Vodafone_CZ_Modded_Pie_OEM_folder.ZIP

- copy bindershell file from j4nn for Oreo temp root into c:\platform-tools\

- Prepare the XZ Premium single SIM G8141 last Pie firmware into folder "03 Pie flash without OEM"

- exclude the Pie oem.sin

- exclude the following Pie firmware files as well: see content of the folder "03b_not_used_Pie_files" (for the list see attachement file G8141_Vodafone_CZ_mod_FoldersContent.TXT)

- copy inside the folder the newflasher.exe file too

- check both firmware folders to have their boot_delivery.xml file in boot folder and partition_delivery.xml file in partition folder for the flash to end correctly

- check the G8141_Vodafone_CZ_mod_FoldersContent.TXT and compare the folders' content to match

THE STEPS (Windows PC)

#01 - have Your phone charged, all data and settings backed up (including trim areas) and all phone drivers installed, this is a good way to start

#02 - go to "01 not full Oreo downgrade with Pie OEM" folder and run newflasher.exe inside, it will open a command line window, stay in this window

#03 - switch off the phone, hold volume down key and connect it to PC, wait for green LED ilumination and release volume down button

#04 - type 'n' + ENTER to skip install of GordonGate flash driver (You have them already installed, see step #01)

#05 - type 'p' + ENTER for poweroff after flash

#06 - type 'n' + ENTER to skip of dump trim area backup and the Oreo with Pie oem.sin flash will start, wait several minutes for process to finish

#07 - when flash finished, disconnect phone, close command line window

#08 - switch ON the phone and start Oreo system fully, disable any automatic updates ASAP, to stay on temp root supported firmware version of the Oreo

#09 - become a Developer and in Developer menu switch USB debugging ON

#10 - connect the phone to PC and allow connection

#11 - go to c:\platform-tools\ in Explorer and using SHIFT+right click open e.g. first PowerShell window from this folder

#12 - in PowerShell window type 'adb push bindershell /data/local/tmp' and press ENTER to copy bindershell file to the phone

#13 - if You do not have ADB fully installed and You just have drivers copied into the c:\platform-tools\ folder, type the command like this './adb push bindershell /data/local/tmp', add the './' before ADB commands in future, if this error repeats

#14 - in PowerShell window type 'adb shell' (or add ./ in the front of the command again) and press ENTER to run shell in the phone, the command prompt will change from PC:/platform-tools> to the name of Your phone, e.g. G8141:/ $

#15 - get a simple temp root shell according j4nn HOWTO

G8141:/ $ cd /data/local/tmp
G8141:/data/local/tmp $ chmod 755 ./bindershell
G8141:/data/local/tmp $ ./bindershell

#16 - You will know to have a temp root, when the prompt character changes from $ to # (like G8441:/data/local/tmp #), keep this first PowerShell window open

#17 - open a second PowerShell window from the same folder as the first one (c:\platform-tools\) using SHIFT+right click

#18 - in the second PowerShell window type 'adb push OEM /data/local/tmp' and ENTER to copy your modified files from c:\platform-tools\OEM folder on the PC to /data/local/tmp/OEM folder in the phone (in case of error add the './' before the command), after finishing, You can close this second PowerShell window

#19 - activate the first PowerShell window with the temp root still active and type following commands (these are the Robin Banks commands he wrote in the post #13 modified for my XZ Premium single SIM Vodafone CZ version)

mount -o rw,remount /oem
chown root.root /data/local/tmp/OEM
cd /data/local/tmp/OEM
cp -R * /oem
chmod 755 /oem/modem-config
chmod 644 /oem/modem-config/modem.conf
chmod 755 /oem/overlay
chmod 644 /oem/overlay/android-res-305.apk
chmod 644 /oem/overlay/com.android.carrierconfig-res-305.apk
chmod 644 /oem/overlay/com.android.settings-res-305.apk
chmod 644 /oem/overlay/com.android.systemui-res-305.apk
chmod 755 /oem/system-properties/
chmod 644 /oem/system-properties/config.prop

#20 - for You own setup, remember to set rights 755 for any folder name and rights 644 for any file name copied from /data/local/tmp/OEM to /oem folder inside the phone

#21 - Done. Reboot the phone into the Oreo with now modified Pie /oem folder. Close PowerShell window.

#22 - You can repeat temp root now to check, If Your files are really present inside the phone /oem folder and You proceeded well.

#23 - do not panic, if You check the Service info/Software info menu item now by dialing *#*#7378423#*#* and there is still recent modem *.mbn file selected, do not care about it as it is prepared for Pie and You are still on Oreo firmware now

#24 - go to "03_Pie_flash_without_OEM" folder and run newflasher.exe inside, it will open a command line window, stay in this window

#25 - switch off the phone, hold volume down key and connect it to PC, wait for green LED ilumination and release volume down button

#26 - type 'n' + ENTER to skip install of GordonGate flash driver

#27 - type 'p' + ENTER for poweroff after flash

#28 - type 'n' + ENTER to skip of dump trim area backup and Pie without oem.sin flash will start, wait several minutes for process to finish

#29 - when flash finished, disconnect phone, close command line window, now there is complete Pie system with VoLTE and VoWiFi modified /oem folder installed on Your device and all should work from now on

#30 - switch ON the phone and start Pie system, disable any automatic updates ASAP to keep Your modification in tact and not overwritten by future possible updates, if You want, regularly check for the firmware updates manualy and if there is a newer firmware You want to run, be prepared to proceed the whole this procedure again with newer firmware and test if it works for it as well

THE CREDITS

- j4nn for the XZp temp root alternative

- Robin Banks for the original How To

- chris_j26 for information in his [GUIDE] Enable VoLTE for your non operator handset thread (this needs Unlocked BL)

- pbarrette for the info to flash the cust-reset.ta file to clear the device current carrier customization information

- and credits for the SW creators (UnSin 1.13 - IgorEisberg, newflasher v52 - munjeni, Ext2Explore - rcrajesh & regmi_manish)

- and all the others forgotten...

THE DOWNLOAD

Here You can find

files list with the folders structure for all steps described above and compressed modified OEM folder to push to G8141 XZp single SIM Vodafone CZ

- all files used by me listed with their folder structure in TXT file

- a zip file with XZ Premium single SIM OEM folder modified for Vodafone CZ VoLTE & VoWiFi

- pictures

01 original ZA customization info

02 target CE1 customization info before MOD

03 final CE1 modded to CZ customization info after MOD

04 *#*#4636#*#* telephone info after MOD

05 WiFi calling menu item after MOD