FORUMS
Remove All Ads from XDA

Carrier Firmware Sonim XP8

11 posts
Thanks Meter: 1
 
By stevecast2024, Junior Member on 6th March 2019, 12:24 AM
Post Reply Email Thread
Hello All,

I know this handset hasn't hit as popular by any means but it is a decent handset for emergency services and industrial applications. I recently purchased an unlocked Sonim XP8 that was originally purchased on the ATT network. I am wondering if there is any way I can get the Sprint firmware for this device. I tried Sonim directly but of course they just want me to purchase a new one through them. I basically just want to be able to use visual VM and WiFi Calling if possible.

Am I hoping for the impossible here?

Steve
6th March 2019, 12:27 AM |#2  
OP Junior Member
Thanks Meter: 1
 
More
Sorry.. Mod can you please move this to Q and A or a firmware forum. I didn't mean for this to be in general.
6th March 2019, 01:01 PM |#3  
Oswald Boelcke's Avatar
Forum Moderator / Recognized Translator
Flag Preserving Air Supremacy over XDA
Thanks Meter: 8,126
 
More
Quote:
Originally Posted by stevecast2024

Sorry.. Mod can you please move this to Q and A or a firmware forum. I didn't mean for this to be in general.

I'm not the moderator responsible for this forum i.e. I can't assist you. But please don't assume that moderators are able to monitor the thousands of threads and millions of posts. I just read yours by accident.
To reach out for moderator's assistance please use the "Report Post" button as described here.
12th June 2019, 01:09 AM |#4  
Member
Thanks Meter: 27
 
More
https://blog.csdn.net/zhuyong006/art...tails/85160372
HTML Code:
1. First you need to install QPST, and then confirm that there are 2 files in the QPST installation directory.

D:\Program Files (x86)\Qualcomm\QPST\bin

Fhloader.exe
QSaharaServer.exe
1
2
2. The device needs to switch to port 9008, and then execute the following command. The last COM4 is the corresponding port number of 9008.

QSaharaServer.exe -s 13:prog_emmc_ufs_firehose_Sdm660_ddr.elf -p \\.\COM4
1
If successful, there will be the following prompt under cmd:

D:\Program Files (x86)\Qualcomm\QPST\bin>QSaharaServer.exe -s 13:prog_emmc_ufs_firehose_Sdm660_ddr.elf -p \\.\COM4

QSAHARASERVER CALLED LIKE THIS: 'QSaharaServer.ex'Current working dir: D:\Program Files (x86)\Qualcomm\QPST\bin
Sahara mappings:
2: amss.mbn
6: apps.mbn
8: dsp1.mbn
10: dbl.mbn
11: osbl.mbn
12: dsp2.mbn
16: efs1.mbn
17: efs2.mbn
20: efs3.mbn
21: sbl1.mbn
22: sbl2.mbn
23: rpm.mbn
25: tz.mbn
28: dsp3.mbn
29: acdb.mbn
30: wdt.mbn
31: mba.mbn
13: prog_emmc_ufs_firehose_Sdm660_ddr.elf

11:55:12: Requested ID 13, file: "D:\Program Files (x86)\Qualcomm\QPST\bin\prog_emmc_ufs_firehose_Sdm660_ddr.elf"

11:55:13: 354736 bytes transferred in 0.235000 seconds (1.4396MBps)


3.3. gpt_main0.img generates rawprogram0.xml file

<?xml version="1.0" ?>
<data>
**<!--NOTE: This is an ** Autogenerated file **-->
**<!--NOTE: Sector size is 512bytes-->
**<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="" label="logdump" num_partition_sectors="131072" physical_partition_number="0" size_in_KB="65536.0" sparse="false" start_byte_hex="0x114082000L" start_sector="9045008 "/>
</data>







4.dump terminal EMMC partition

Fh_loader.exe --memoryname=emmc --sendxml=rawprogram0.xml --convertprogram2read --port=\\.\COM4
1
If successful, there will be the following tips:

D:\Program Files (x86)\Qualcomm\QPST\bin>fh_loader.exe --memoryname=emmc --sendxml=rawprogram0.xml --convertprogram2read --port=\\.\COM4
The Following User Says Thank You to eleotk For This Useful Post: [ View ] Gift eleotk Ad-Free
19th September 2019, 06:22 PM |#5  
Member
Thanks Meter: 7
 
More
As EDL mode on the XP8 and XP5S is easily accessible, I attempted the Sahara method in an effort to pull a full stock backup that resulted in a com error immediately after presenting "Requested ID 13, file:...".

I was able to obtain a full AT&T OTA upgrade package for Android 8.0 - XP8_ATT_USER_N10.01.75-O10.49.00.zip. Very basic method used (noted in many other XDA threads) - logcat to get URL and curl to pass in specific user-agent headers. Feel free to send me a PM if you would like a download link. I may try to run an extraction tool later on payload.bin, and if I find time, I may even play around with Sahara a bit more as well.
8th October 2019, 08:47 AM |#6  
Member
Thanks Meter: 7
 
More
Working backup method below. This took a bit of time to figure out - enjoy!

Initial Steps
1. Enter EDL mode - Power + Vol Up + Vol DN
- Sonim logo will flash briefly followed by a blank screen
- Device reflected as Qualcomm HS-USB QDLoader 9008

2. Load Sahara FH programmer
Code:
QSaharaServer.exe -p \\.\COM15 -s 13:prog_emmc_ufs_firehose_Sdm660_ddr.elf
3. Open notepad and copy XML data below
(Save alongside fh_loader.exe)

XML covers critical system data only!
Userdata and device specific (EFS) partitions are not covered.

Code:
<?xml version="1.0"?>
  <!--NOTE: This is an ** Autogenerated file **-->
  <!--NOTE: Sector size is 512bytes-->
<data>
<program start_sector="24286840" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="abl_a" filename="abl_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="24288888" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="abl_b" filename="abl_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="131072" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="7168" label="xbl_a" filename="xbl_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="138240" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="7168" label="xbl_b" filename="xbl_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="145408" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8192" label="tz_a" filename="tz_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="153600" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8192" label="tz_b" filename="tz_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="161792" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="rpm_a" filename="rpm_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="162816" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="rpm_b" filename="rpm_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="163840" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="hyp_a" filename="hyp_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="164864" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="hyp_b" filename="hyp_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="165888" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="pmic_a" filename="pmic_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="166912" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="pmic_b" filename="pmic_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="24294024" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="66848" label="splash" filename="splash.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23592960" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="keymaster_a" filename="keymaster_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23595008" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="keymaster_b" filename="keymaster_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23597056" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="cmnlib_a" filename="cmnlib_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23599104" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="cmnlib64_a" filename="cmnlib64_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23601152" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="cmnlib_b" filename="cmnlib_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23603200" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="cmnlib64_b" filename="cmnlib64_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23605248" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8192" label="mdtpsecapp_a" filename="mdtpsecapp_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23613440" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8192" label="mdtpsecapp_b" filename="mdtpsecapp_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23621632" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="65536" label="mdtp_a" filename="mdtp_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23687168" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="65536" label="mdtp_b" filename="mdtp_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23752704" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="225280" label="modem_a" filename="modem_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23977984" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="225280" label="modem_b" filename="modem_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="393216" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="131072" label="boot_b" filename="boot_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="262144" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="131072" label="boot_a" filename="boot_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="24718360" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="devcfg_a" filename="devcfg_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="24720408" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="devcfg_b" filename="devcfg_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="524288" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8388608" label="system_a" filename="system_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="8912896" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8388608" label="system_b" filename="system_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="21495808" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1048576" label="oem_a" filename="oem_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="22544384" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1048576" label="oem_b" filename="oem_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="17301504" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2097152" label="vendor_a" filename="vendor_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="19398656" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2097152" label="vendor_b" filename="vendor_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
</data>
Backup
Save emmc data to local target file(s)
Code:
fh_loader.exe --convertprogram2read --port=\\.\COM15 --sendxml=Backup.xml
Restore
Follow same steps while removing --convertprogram2read.
Code:
fh_loader.exe --port=\\.\COM15 --sendxml=Backup.xml
Using the original XML, fh-loader will crawl the working directory for file names corresponding to each entry.

Disclaimer:
- Do not modify backup files.. Or at least take great caution when modifying! It's not my fault if you break anything.


Carrier Switching / Root
Carrier switching would likely work given a full image.. I personally only have AT&T devices. It works fine on GoogleFi already and with all pre-loaded Sonim management tools / carrier bloat removed, it's a truly great near-ASOP experience. So i'm content.

Root has been achieved in test! Coming soon to the XP8 root thread! Just need full system images of various build versions to use for root method validation - thus my interest in providing a solid backup option .
14th October 2019, 02:13 AM |#7  
Junior Member
Thanks Meter: 0
 
More
Quote:
Originally Posted by smokeyou

As EDL mode on the XP8 and XP5S is easily accessible, I attempted the Sahara method in an effort to pull a full stock backup that resulted in a com error immediately after presenting "Requested ID 13, file:...".

I was able to obtain a full AT&T OTA upgrade package for Android 8.0 - XP8_ATT_USER_N10.01.75-O10.49.00.zip. Very basic method used (noted in many other XDA threads) - logcat to get URL and curl to pass in specific user-agent headers. Feel free to send me a PM if you would like a download link. I may try to run an extraction tool later on payload.bin, and if I find time, I may even play around with Sahara a bit more as well.



So did you use the "prog_emmc_ufs_firehose_Sdm660_ddr.elf" from the AT&T OTA update in the command
"QSaharaServer.exe -p \\.\COM4 -s 13rog_emmc_ufs_firehose_Sdm660_ddr.elf" ?

Could you send me the DL link you mentioned? My XP8 is on Telus but what I need from the AT&T update should work anyway? Thanks
15th October 2019, 02:56 AM |#8  
Member
Thanks Meter: 7
 
More
Quote:
Originally Posted by JOchu38

So did you use the "prog_emmc_ufs_firehose_Sdm660_ddr.elf" from the AT&T OTA update in the command
"QSaharaServer.exe -p \\.\COM4 -s 13rog_emmc_ufs_firehose_Sdm660_ddr.elf" ?

Could you send me the DL link you mentioned? My XP8 is on Telus but what I need from the AT&T update should work anyway? Thanks

The backup/restore method on it's own will not work to apply an OTA update as most of the data is BDiff. Core files such as the system and boot image are full however this is not enough to EDL load in most cases. I believe a side load would work though if your starting version matches the OTA - in this case N10.01.75.
18th October 2019, 02:07 AM |#9  
Member
Thanks Meter: 2
 
More
Quote:
Originally Posted by smokeyou

Working backup method below. This took a bit of time to figure out - enjoy!

Root has been achieved in test! Coming soon to the XP8 root thread! Just need full system images of various build versions to use for root method validation - thus my interest in providing a solid backup option .

I hope you are serious and it's not a joke! Can you share more detail? Is it achievable via current firmware exploit or it's possible to install it via recovery? Is it firmware version -specific?

-albertr
19th October 2019, 04:08 AM |#10  
Member
Thanks Meter: 7
 
More
Quote:
Originally Posted by albert.r

I hope you are serious and it's not a joke! Can you share more detail? Is it achievable via current firmware exploit or it's possible to install it via recovery? Is it firmware version -specific?

-albertr

No exploits!
Please see root thread here https://forum.xda-developers.com/sho...3&postcount=18
24th October 2019, 09:48 PM |#11  
Junior Member
Thanks Meter: 0
 
More
Quote:
Originally Posted by smokeyou

Working backup method below. This took a bit of time to figure out - enjoy!

Initial Steps
1. Enter EDL mode - Power + Vol Up + Vol DN
- Sonim logo will flash briefly followed by a blank screen
- Device reflected as Qualcomm HS-USB QDLoader 9008

2. Load Sahara FH programmer

Code:
QSaharaServer.exe -p \\.\COM15 -s 13:prog_emmc_ufs_firehose_Sdm660_ddr.elf
3. Open notepad and copy XML data below
(Save alongside fh_loader.exe)

XML covers critical system data only!
Userdata and device specific (EFS) partitions are not covered.

Code:
<?xml version="1.0"?>
  <!--NOTE: This is an ** Autogenerated file **-->
  <!--NOTE: Sector size is 512bytes-->
<data>
<program start_sector="24286840" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="abl_a" filename="abl_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="24288888" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="abl_b" filename="abl_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="131072" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="7168" label="xbl_a" filename="xbl_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="138240" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="7168" label="xbl_b" filename="xbl_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="145408" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8192" label="tz_a" filename="tz_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="153600" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8192" label="tz_b" filename="tz_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="161792" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="rpm_a" filename="rpm_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="162816" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="rpm_b" filename="rpm_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="163840" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="hyp_a" filename="hyp_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="164864" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="hyp_b" filename="hyp_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="165888" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="pmic_a" filename="pmic_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="166912" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1024" label="pmic_b" filename="pmic_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="24294024" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="66848" label="splash" filename="splash.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23592960" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="keymaster_a" filename="keymaster_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23595008" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="keymaster_b" filename="keymaster_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23597056" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="cmnlib_a" filename="cmnlib_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23599104" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="cmnlib64_a" filename="cmnlib64_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23601152" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="cmnlib_b" filename="cmnlib_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23603200" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="cmnlib64_b" filename="cmnlib64_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23605248" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8192" label="mdtpsecapp_a" filename="mdtpsecapp_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23613440" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8192" label="mdtpsecapp_b" filename="mdtpsecapp_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23621632" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="65536" label="mdtp_a" filename="mdtp_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23687168" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="65536" label="mdtp_b" filename="mdtp_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23752704" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="225280" label="modem_a" filename="modem_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="23977984" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="225280" label="modem_b" filename="modem_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="393216" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="131072" label="boot_b" filename="boot_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="262144" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="131072" label="boot_a" filename="boot_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="24718360" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="devcfg_a" filename="devcfg_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="24720408" sparse="false" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2048" label="devcfg_b" filename="devcfg_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="524288" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8388608" label="system_a" filename="system_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="8912896" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="8388608" label="system_b" filename="system_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="21495808" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1048576" label="oem_a" filename="oem_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="22544384" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="1048576" label="oem_b" filename="oem_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="17301504" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2097152" label="vendor_a" filename="vendor_a.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
<program start_sector="19398656" sparse="true" readbackverify="false" physical_partition_number="0" partofsingleimage="false" num_partition_sectors="2097152" label="vendor_b" filename="vendor_b.img" file_sector_offset="0" SECTOR_SIZE_IN_BYTES="512"/>
</data>
Backup
Save emmc data to local target file(s)
Code:
fh_loader.exe --convertprogram2read --port=\\.\COM15 --sendxml=Backup.xml
Restore
Follow same steps while removing --convertprogram2read.
Code:
fh_loader.exe --port=\\.\COM15 --sendxml=Backup.xml
Using the original XML, fh-loader will crawl the working directory for file names corresponding to each entry.

Disclaimer:
- Do not modify backup files.. Or at least take great caution when modifying! It's not my fault if you break anything.


Carrier Switching / Root
Carrier switching would likely work given a full image.. I personally only have AT&T devices. It works fine on GoogleFi already and with all pre-loaded Sonim management tools / carrier bloat removed, it's a truly great near-ASOP experience. So i'm content.

Root has been achieved in test! Coming soon to the XP8 root thread! Just need full system images of various build versions to use for root method validation - thus my interest in providing a solid backup option .

So I have a Sprint XP8 and am looking to flash either AT&T or unlocked firmware as Sprints does not support VoLTE. I have already had Sprint unlock the phone, so would it be possible to flash a different carriers firmware??

This is great info btw - thanks!
Post Reply Subscribe to Thread

Tags
att, sonim, sonim-xp8, sprint, xp8

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

Advanced Search
Display Modes