[GUIDE] Lenovo Yoga Tab 3 Plus LTE Hard Unbrick Guide - Lenovo Yoga Tab 3 Plus Guides, News, & Discussion

Code:
/*
* We are not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications.
*/
Preamble
Since I try to port Oreo to the Lenovo Yoga YTX703L I flashed and erased some partitions to get RIL working.
Maybe I mixed the partitions from one release with an another release. And after that, I rebooted the tablet.
The result was the following. The tablet power led turns on, -no vibration-, ~20 secs pause, restart (led turns off...delay...turns on).
Key combinations doesn't worked, so no recovery or even fastboot was possible. Also I weren't able to get into the deep recovery mode (HS-USB QDLoader 9008) via Power, Vol+ and Vol-.
I thought it is only a matter of time and the device would be reset into a stable state overnight - it wasn't.
Next day I thought, I have nothing to loose.....open it up.
There is an service manuel located here: YOGA TAB 3 Plus Hardware Maintenance Manual
After that I disconnected the battery and analyze the board layout about serial console, jtag or simple test points. I read, that eMMC "reset test points" are located near the eMMC. So I looked at two points near the eMMC and tried to shorten them. After reconnecting the battery, the device doesn't boots from the eMMC but goes into the HS-USB QDLoader 9008 loader. I saw them inside linux via lsusb command and dmesg log.
After that, I thought "...everything fine. Just flash a recovery into it". It wasn't that easy QFIL, Sahara, programmer...all new things to learn. The hardest thing was to learn, the programmer is device specific.
I found some russian forums, where the problem was discussed see around here. At this time, there where no solution available. So I took a mainboard change into account, but then after loooong search I found a matching one here. Thanks GD_Mekail92. You saved my tablet from trashing it!!!!! :victory:
So then I looked at the great HowTo from BigCountry907 and tried his spreadsheet.
Since I had a full backup of an other device, I ended up to generate the needed partitions from the image via sgdisk command. I was a little bit nervous, but after the programmer was accepted by the device I was happy. The remaining flash process where done really fast, since I don't flashed userdata and system - I really wanted only to go into fastboot mode the recovery the tablet by the usual images at the net (Multiflash), that flying around.
Prepare an image
This steps create an full image of the mmc storage (only sectors which are accessable via linux, since eMMC can have hidden sectors).
Insert a SDCard 64GByte
Boot into TWRP
Mount the sdcard via TWRP
Perform the following command:
Code:
dd if=/dev/block/mmcblk0 of=/sdcard1/mmcblk0.img bs=2M
Umount the sdcard via TWRP after the copy process is done
Extract partitions and prepare flash instruction file "rawboot.xml"
Download the attached file and extract it. The location is called "work folder" in further references.
This archive contains the emmc firehose programmer ( prog_emmc_firehose_8976_lite.mbn ) for the tablet as well a prepared patch0.xml which is needed for the flash process.
Also it contains some scripts to extract the partitions from the image and generate the flash instruction file (rawprogram_upgrade.xml).
Copy the image into the "work folder".
Now run the script to extract the partitions.
Code:
./genExtractPartitions.sh >extractPartitions.sh
Open the file extractPartitions.sh in an editor and verify, which partitions should be extracted from the image. E.g. you usually don't want do extract cache and userdata.
Code:
#!/bin/bash
set -v
rm -rf img
mkdir img
dd if=mmcblk0.img of=img/modem skip=131072 count=172032
dd if=mmcblk0.img of=img/fsc skip=393216 count=2
dd if=mmcblk0.img of=img/ssd skip=393218 count=16
dd if=mmcblk0.img of=img/sbl1 skip=393234 count=1024
dd if=mmcblk0.img of=img/sbl1bak skip=394258 count=1024
dd if=mmcblk0.img of=img/rpm skip=395282 count=1024
dd if=mmcblk0.img of=img/rpmbak skip=396306 count=1024
dd if=mmcblk0.img of=img/tz skip=397330 count=4096
dd if=mmcblk0.img of=img/tzbak skip=401426 count=4096
dd if=mmcblk0.img of=img/devcfg skip=405522 count=512
dd if=mmcblk0.img of=img/devcfgbak skip=406034 count=512
dd if=mmcblk0.img of=img/dsp skip=406546 count=32768
dd if=mmcblk0.img of=img/modemst1 skip=439314 count=3072
dd if=mmcblk0.img of=img/modemst2 skip=442386 count=3072
dd if=mmcblk0.img of=img/DDR skip=524288 count=64
dd if=mmcblk0.img of=img/fsg skip=524352 count=3072
dd if=mmcblk0.img of=img/sec skip=527424 count=32
dd if=mmcblk0.img of=img/splash skip=655360 count=22528
dd if=mmcblk0.img of=img/aboot skip=786432 count=2048
dd if=mmcblk0.img of=img/abootbak skip=788480 count=2048
dd if=mmcblk0.img of=img/boot skip=790528 count=131072
dd if=mmcblk0.img of=img/recovery skip=921600 count=131072
dd if=mmcblk0.img of=img/devinfo skip=1052672 count=2048
dd if=mmcblk0.img of=img/userstore skip=1179648 count=65536
dd if=mmcblk0.img of=img/system skip=1310720 count=7340032
#dd if=mmcblk0.img of=img/cache skip=8650752 count=524288
dd if=mmcblk0.img of=img/persist skip=9175040 count=65536
dd if=mmcblk0.img of=img/misc skip=9240576 count=2048
dd if=mmcblk0.img of=img/keystore skip=9242624 count=1024
dd if=mmcblk0.img of=img/config skip=9243648 count=64
dd if=mmcblk0.img of=img/oem skip=9243712 count=131072
dd if=mmcblk0.img of=img/limits skip=9437184 count=64
dd if=mmcblk0.img of=img/mota skip=9568256 count=1024
dd if=mmcblk0.img of=img/dip skip=9569280 count=2048
dd if=mmcblk0.img of=img/mdtp skip=9571328 count=65536
dd if=mmcblk0.img of=img/syscfg skip=9636864 count=1024
dd if=mmcblk0.img of=img/mcfg skip=9637888 count=8192
dd if=mmcblk0.img of=img/cmnlib skip=9699328 count=768
dd if=mmcblk0.img of=img/cmnlibbak skip=9700096 count=768
dd if=mmcblk0.img of=img/cmnlib64 skip=9700864 count=768
dd if=mmcblk0.img of=img/cmnlib64bak skip=9701632 count=768
dd if=mmcblk0.img of=img/keymaster skip=9702400 count=512
dd if=mmcblk0.img of=img/keymasterbak skip=9702912 count=512
dd if=mmcblk0.img of=img/apdp skip=9830400 count=512
dd if=mmcblk0.img of=img/msadp skip=9830912 count=512
dd if=mmcblk0.img of=img/dpo skip=9831424 count=16
dd if=mmcblk0.img of=img/userencrypt skip=9831440 count=2048
dd if=mmcblk0.img of=img/countrycode skip=9833488 count=12288
#dd if=mmcblk0.img of=img/userdata skip=9845776 count=51225551
After that, run the script to extract the partitions into the img folder (which is deleted/re-created by the script).
Code:
bash extractPartitions.sh
Now all needed partition files should be inside the img folder
Copy programmer and patch0.xml into the img folder.
Code:
cp -v res/* img/
Now generate the rawprogram file:
Code:
./genRawProgram.sh >img/rawprogram_upgrade.xml
Open the file img/rawprogram_upgrade.xml in an editor and comment out the paritions, which are left out within the extractPartitions.sh script. Otherwise QFIL can't find the partition file to flash.
Code:
<?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="gpt_main0.bin" label="PrimaryGPT" num_partition_sectors="34" physical_partition_number="0" size_in_KB="17.0" sparse="false" start_byte_hex="0x0" start_sector="0" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="gpt_backup0.bin" label="BackupGPT" num_partition_sectors="33" physical_partition_number="0" size_in_KB="16.5" sparse="false" start_byte_hex="(512*NUM_DISK_SECTORS)-16896." start_sector="NUM_DISK_SECTORS-33." />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="modem" label="modem" num_partition_sectors="172032" physical_partition_number="0" size_in_KB="86016.0" sparse="false" start_byte_hex="0x4000000" start_sector="131072" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="fsc" label="fsc" num_partition_sectors="2" physical_partition_number="0" size_in_KB="1.0" sparse="false" start_byte_hex="0xc000000" start_sector="393216" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="ssd" label="ssd" num_partition_sectors="16" physical_partition_number="0" size_in_KB="8.0" sparse="false" start_byte_hex="0xc000400" start_sector="393218" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="sbl1" label="sbl1" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0xc002400" start_sector="393234" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="sbl1bak" label="sbl1bak" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0xc082400" start_sector="394258" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="rpm" label="rpm" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0xc102400" start_sector="395282" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="rpmbak" label="rpmbak" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0xc182400" start_sector="396306" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="tz" label="tz" num_partition_sectors="4096" physical_partition_number="0" size_in_KB="2048.0" sparse="false" start_byte_hex="0xc202400" start_sector="397330" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="tzbak" label="tzbak" num_partition_sectors="4096" physical_partition_number="0" size_in_KB="2048.0" sparse="false" start_byte_hex="0xc402400" start_sector="401426" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="devcfg" label="devcfg" num_partition_sectors="512" physical_partition_number="0" size_in_KB="256.0" sparse="false" start_byte_hex="0xc602400" start_sector="405522" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="devcfgbak" label="devcfgbak" num_partition_sectors="512" physical_partition_number="0" size_in_KB="256.0" sparse="false" start_byte_hex="0xc642400" start_sector="406034" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="dsp" label="dsp" num_partition_sectors="32768" physical_partition_number="0" size_in_KB="16384.0" sparse="false" start_byte_hex="0xc682400" start_sector="406546" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="modemst1" label="modemst1" num_partition_sectors="3072" physical_partition_number="0" size_in_KB="1536.0" sparse="false" start_byte_hex="0xd682400" start_sector="439314" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="modemst2" label="modemst2" num_partition_sectors="3072" physical_partition_number="0" size_in_KB="1536.0" sparse="false" start_byte_hex="0xd802400" start_sector="442386" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="DDR" label="DDR" num_partition_sectors="64" physical_partition_number="0" size_in_KB="32.0" sparse="false" start_byte_hex="0x10000000" start_sector="524288" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="fsg" label="fsg" num_partition_sectors="3072" physical_partition_number="0" size_in_KB="1536.0" sparse="false" start_byte_hex="0x10008000" start_sector="524352" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="sec" label="sec" num_partition_sectors="32" physical_partition_number="0" size_in_KB="16.0" sparse="false" start_byte_hex="0x10188000" start_sector="527424" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="splash" label="splash" num_partition_sectors="22528" physical_partition_number="0" size_in_KB="11264.0" sparse="false" start_byte_hex="0x14000000" start_sector="655360" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="aboot" label="aboot" num_partition_sectors="2048" physical_partition_number="0" size_in_KB="1024.0" sparse="false" start_byte_hex="0x18000000" start_sector="786432" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="abootbak" label="abootbak" num_partition_sectors="2048" physical_partition_number="0" size_in_KB="1024.0" sparse="false" start_byte_hex="0x18100000" start_sector="788480" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="boot" label="boot" num_partition_sectors="131072" physical_partition_number="0" size_in_KB="65536.0" sparse="false" start_byte_hex="0x18200000" start_sector="790528" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="recovery" label="recovery" num_partition_sectors="131072" physical_partition_number="0" size_in_KB="65536.0" sparse="false" start_byte_hex="0x1c200000" start_sector="921600" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="devinfo" label="devinfo" num_partition_sectors="2048" physical_partition_number="0" size_in_KB="1024.0" sparse="false" start_byte_hex="0x20200000" start_sector="1052672" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="userstore" label="userstore" num_partition_sectors="65536" physical_partition_number="0" size_in_KB="32768.0" sparse="false" start_byte_hex="0x24000000" start_sector="1179648" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system" label="system" num_partition_sectors="7340032" physical_partition_number="0" size_in_KB="3670016.0" sparse="false" start_byte_hex="0x28000000" start_sector="1310720" />
<!-- <program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="cache" label="cache" num_partition_sectors="524288" physical_partition_number="0" size_in_KB="262144.0" sparse="false" start_byte_hex="0x108000000" start_sector="8650752" /> -->
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="persist" label="persist" num_partition_sectors="65536" physical_partition_number="0" size_in_KB="32768.0" sparse="false" start_byte_hex="0x118000000" start_sector="9175040" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="misc" label="misc" num_partition_sectors="2048" physical_partition_number="0" size_in_KB="1024.0" sparse="false" start_byte_hex="0x11a000000" start_sector="9240576" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="keystore" label="keystore" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x11a100000" start_sector="9242624" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="config" label="config" num_partition_sectors="64" physical_partition_number="0" size_in_KB="32.0" sparse="false" start_byte_hex="0x11a180000" start_sector="9243648" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="oem" label="oem" num_partition_sectors="131072" physical_partition_number="0" size_in_KB="65536.0" sparse="false" start_byte_hex="0x11a188000" start_sector="9243712" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="limits" label="limits" num_partition_sectors="64" physical_partition_number="0" size_in_KB="32.0" sparse="false" start_byte_hex="0x120000000" start_sector="9437184" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="mota" label="mota" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x124000000" start_sector="9568256" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="dip" label="dip" num_partition_sectors="2048" physical_partition_number="0" size_in_KB="1024.0" sparse="false" start_byte_hex="0x124080000" start_sector="9569280" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="mdtp" label="mdtp" num_partition_sectors="65536" physical_partition_number="0" size_in_KB="32768.0" sparse="false" start_byte_hex="0x124180000" start_sector="9571328" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="syscfg" label="syscfg" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x126180000" start_sector="9636864" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="mcfg" label="mcfg" num_partition_sectors="8192" physical_partition_number="0" size_in_KB="4096.0" sparse="false" start_byte_hex="0x126200000" start_sector="9637888" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="cmnlib" label="cmnlib" num_partition_sectors="768" physical_partition_number="0" size_in_KB="384.0" sparse="false" start_byte_hex="0x128000000" start_sector="9699328" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="cmnlibbak" label="cmnlibbak" num_partition_sectors="768" physical_partition_number="0" size_in_KB="384.0" sparse="false" start_byte_hex="0x128060000" start_sector="9700096" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="cmnlib64" label="cmnlib64" num_partition_sectors="768" physical_partition_number="0" size_in_KB="384.0" sparse="false" start_byte_hex="0x1280c0000" start_sector="9700864" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="cmnlib64bak" label="cmnlib64bak" num_partition_sectors="768" physical_partition_number="0" size_in_KB="384.0" sparse="false" start_byte_hex="0x128120000" start_sector="9701632" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="keymaster" label="keymaster" num_partition_sectors="512" physical_partition_number="0" size_in_KB="256.0" sparse="false" start_byte_hex="0x128180000" start_sector="9702400" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="keymasterbak" label="keymasterbak" num_partition_sectors="512" physical_partition_number="0" size_in_KB="256.0" sparse="false" start_byte_hex="0x1281c0000" start_sector="9702912" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="apdp" label="apdp" num_partition_sectors="512" physical_partition_number="0" size_in_KB="256.0" sparse="false" start_byte_hex="0x12c000000" start_sector="9830400" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="msadp" label="msadp" num_partition_sectors="512" physical_partition_number="0" size_in_KB="256.0" sparse="false" start_byte_hex="0x12c040000" start_sector="9830912" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="dpo" label="dpo" num_partition_sectors="16" physical_partition_number="0" size_in_KB="8.0" sparse="false" start_byte_hex="0x12c080000" start_sector="9831424" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="userencrypt" label="userencrypt" num_partition_sectors="2048" physical_partition_number="0" size_in_KB="1024.0" sparse="false" start_byte_hex="0x12c082000" start_sector="9831440" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="countrycode" label="countrycode" num_partition_sectors="12288" physical_partition_number="0" size_in_KB="6144.0" sparse="false" start_byte_hex="0x12c182000" start_sector="9833488" />
<!--
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="userdata" label="userdata" num_partition_sectors="51225551" physical_partition_number="0" size_in_KB="25612775.0" sparse="false" start_byte_hex="0x12c782000" start_sector="9845776" /> -->
</data>
Prepare device
As precondition, try to turn off device.
(Note: In my situation this wasn't possible, but since it resets itself after ~20 seconds the second method worked for me also.)
Then try this
Press PowerOn and Vol+ and Vol- at the same time (Display and PowerLED remains black / off ).
Only in case you aren't able to reach the EDL by the method above (please try that several times first!) you have to open your device and
shortcut the TP pins at the mainboard (see attached picture for details) and press PowerOn.
After the device is available as
Code:
ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)
release PowerOn button and remove the shortcut.
Flash it
The use of QFIL is described many times in detail, also here at XDA. Have a look at: [HowTo] Flash a stock ROM by m_atze
The following steps summaries the process:
Open QFIL.
Select the programmer
Select XML to configure patch0.xml and rawprogram_upgrade.xml
Press download and follow the log window
After the process is done, reset the device via PowerOn button long press ~10 seconds
Go into recovery mode and format the data partition.
Done
Firmware without special partitions
If you flashed a wrong version of the tablet, there exists a chance to return it to life with the QFIL method and the partitions of the firmwares that are flying around.
I created some files with the current firmware:
X703 L
YT-X703L_S000963_171111_ROW.7z
The F Tablet isn't supported right now, since there is no programmer available.
Note: I had to format my data partition to prevent a bootloop.
Does this help @killman?

Wow, thanks! This reduces my anxiety when flashing critical partitions
Are you sure that you need to flash RIL related partitions for Oreo? I don't have an LTE device, so I can't know, but this seems... drastic.

DerEineDa said:
Wow, thanks! This reduces my anxiety when flashing critical partitions
Are you sure that you need to flash RIL related partitions for Oreo? I don't have an LTE device, so I can't know, but this seems... drastic.
Click to expand...
Click to collapse
But think about an backup dd - image of the device you use !
I don't think, that re-flashing these partitions is neccessary.
I tried it, because it didn't work on oreo dev build. The I switched back to the stock firmware and realised that it also doesn't work. So I tried to repair it with reflashing the modemst1/modemst2 partitions (and others). But maybe my device has an fault, so the effort was for nothing.

Added some precompiled firmware images to be flashed via the QFIL method.

Quallenauge said:
Added some precompiled firmware images to be flashed via the QFIL method.
Click to expand...
Click to collapse
Thanks! Excellent work. Installation this firmware through QFIL will allow of work
fastboot even if system won't be started? Enough what the fastboot mode would appear, all the rest isn't important.

baikal0912 said:
Thanks! Excellent work. Installation this firmware through QFIL will allow of work
fastboot even if system won't be started? Enough what the fastboot mode would appear, all the rest isn't important.
Click to expand...
Click to collapse
Yes. At first you have to set the device into the recovery mode. After that you can flash the image. For convenience I created a image with all available partitions from the roms, that flying around. So after that, you have the same result (I think). You can also modify the rawboot XML file and only flash sbl1 aboot. Maybe this is sufficient for a fastboot recovery. But I see no benefit when it is intended to flashing the rom anyways.
Good luck !
I tested it on a L device.

thanks for your great work, but i have tablet 703f flashed with firmware for 703L version. i have QDloader 9008. i tried to flash with your's version for 703F, but it didn't work .. i attached log file
Code:
Validating Application Configuration
Load APP Configuration
COM:-1
PBLDOWNLOADPROTOCOL:0
PROGRAMMER:True
PROGRAMMER:D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\prog_emmc_firehose_8976_lite.mbn
RESETSAHARASTATEEMACHINE:False
SEARCHPATH:D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images
RAWPROGRAM:
rawprogram_upgrade.xml
PATCH:
patch0.xml
ACKRAWDATAEVERYNUMPACKETS:False
ACKRAWDATAEVERYNUMPACKETS:100
MAXPAYLOADSIZETOTARGETINBYTES:False
MAXPAYLOADSIZETOTARGETINBYTES:49152
DEVICETYPE:eMMC
PLATFORM:8x26
VALIDATIONMODE:0
RESETAFTERDOWNLOAD:False
MAXDIGESTTABLESIZE:8192
SWITCHTOFIREHOSETIMEOUT:30
RESETTIMEOUT:200
RESETDELAYTIME:2
FLATBUILDPATH:C:\
FLATBUILDFORCEOVERRIDE:True
QCNPATH:C:\Temp\00000000.qcn
QCNAUTOBACKUPRESTORE:False
SPCCODE:000000
ENABLEMULTISIM:False
AUTOPRESERVEPARTITIONS:False
PARTITIONPRESERVEMODE:0
PRESERVEDPARTITIONS:0
PRESERVEDPARTITIONS:
ERASEALL:False
Load ARG Configuration
Validating Download Configuration
Image Search Path: D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images
RAWPROGRAM file path: D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\rawprogram_upgrade.xml
PATCH file path:D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\patch0.xml
Programmer Path:D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\prog_emmc_firehose_8976_lite.mbn
Process Index:1
Start Download
Program Path:D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\prog_emmc_firehose_8976_lite.mbn
***** Working Folder:C:\Users\users\AppData\Roaming\Qualcomm\QFIL\COMPORT_6
Binary build date: Oct 31 2016 @ 22:51:05
QSAHARASERVER CALLED LIKE THIS: 'C:\Program Files (x86)\Qualcomm\QPST\bin\QSaharaServer.ex'Current working dir: C:\Users\users\AppData\Roaming\Qualcomm\QFIL\COMPORT_6
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: D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\prog_emmc_firehose_8976_lite.mbn
18:35:07: ERROR: function: sahara_rx_data:237 Unable to read packet header. Only read 0 bytes.
18:35:07: ERROR: function: sahara_main:924 Sahara protocol error
18:35:07: ERROR: function: main:303 Uploading Image using Sahara protocol failed
Download Fail:Sahara Fail:QSaharaServer Fail:Process fail
Finish Download

killmans said:
thanks for your great work, but i have tablet 703f flashed with firmware for 703L version. i have QDloader 9008. i tried to flash with your's version for 703F, but it didn't work .. i attached log file
Code:
Validating Application Configuration
Load APP Configuration
COM:-1
PBLDOWNLOADPROTOCOL:0
PROGRAMMER:True
PROGRAMMER:D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\prog_emmc_firehose_8976_lite.mbn
RESETSAHARASTATEEMACHINE:False
SEARCHPATH:D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images
RAWPROGRAM:
rawprogram_upgrade.xml
PATCH:
patch0.xml
ACKRAWDATAEVERYNUMPACKETS:False
ACKRAWDATAEVERYNUMPACKETS:100
MAXPAYLOADSIZETOTARGETINBYTES:False
MAXPAYLOADSIZETOTARGETINBYTES:49152
DEVICETYPE:eMMC
PLATFORM:8x26
VALIDATIONMODE:0
RESETAFTERDOWNLOAD:False
MAXDIGESTTABLESIZE:8192
SWITCHTOFIREHOSETIMEOUT:30
RESETTIMEOUT:200
RESETDELAYTIME:2
FLATBUILDPATH:C:\
FLATBUILDFORCEOVERRIDE:True
QCNPATH:C:\Temp\00000000.qcn
QCNAUTOBACKUPRESTORE:False
SPCCODE:000000
ENABLEMULTISIM:False
AUTOPRESERVEPARTITIONS:False
PARTITIONPRESERVEMODE:0
PRESERVEDPARTITIONS:0
PRESERVEDPARTITIONS:
ERASEALL:False
Load ARG Configuration
Validating Download Configuration
Image Search Path: D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images
RAWPROGRAM file path: D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\rawprogram_upgrade.xml
PATCH file path:D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\patch0.xml
Programmer Path:D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\prog_emmc_firehose_8976_lite.mbn
Process Index:1
Start Download
Program Path:D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\prog_emmc_firehose_8976_lite.mbn
***** Working Folder:C:\Users\users\AppData\Roaming\Qualcomm\QFIL\COMPORT_6
Binary build date: Oct 31 2016 @ 22:51:05
QSAHARASERVER CALLED LIKE THIS: 'C:\Program Files (x86)\Qualcomm\QPST\bin\QSaharaServer.ex'Current working dir: C:\Users\users\AppData\Roaming\Qualcomm\QFIL\COMPORT_6
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: D:\YT-X703F_S000963_171111_ROW\YT-X703F_S000963_171111_ROW\Images\prog_emmc_firehose_8976_lite.mbn
18:35:07: ERROR: function: sahara_rx_data:237 Unable to read packet header. Only read 0 bytes.
18:35:07: ERROR: function: sahara_main:924 Sahara protocol error
18:35:07: ERROR: function: main:303 Uploading Image using Sahara protocol failed
Download Fail:Sahara Fail:QSaharaServer Fail:Process fail
Finish Download
Click to expand...
Click to collapse
Can you please try another QFIL version or another PC? Seems there are issues with that version? I searched for "Sahara protocol error" and found some matches.
Also I tested on a Windows 10 system.

Quallenauge said:
Can you please try another QFIL version or another PC? Seems there are issues with that version? I searched for "Sahara protocol error" and found some matches.
Also I tested on a Windows 10 system.
Click to expand...
Click to collapse
so what was held:
1. port change, computer change (Win 10)
2. win 7
3. Change of drivers (different) change Qfil
4. absurd - shortening the path to the folder
all this did not bring any results .. the mistake is the same - in the Sahara

killmans said:
so what was held:
1. port change, computer change (Win 10)
2. win 7
3. Change of drivers (different) change Qfil
4. absurd - shortening the path to the folder
all this did not bring any results .. the mistake is the same - in the Sahara
Click to expand...
Click to collapse
Silly question....you are in 9008 mode right?
Does the device stay in this mode for long or does it perform a reset after a (short) while ?
For my L device the flash process is stable. Can you please try another firehose flasher (which is incompatible to this device), just to see if there are differences in the error log output.
Maybe the flasher is wrong (altoght the signature is right :-/ )
I tried following versions:
QPST.2.7.460
QPST.2.7.437

Quallenauge said:
Silly question....you are in 9008 mode right?
Does the device stay in this mode for long or does it perform a reset after a (short) while ?
Click to expand...
Click to collapse
device all the time in 9008 mode, turn on(tablet generally) plugging in the cable from the battery (I dismantled the tablet) After power-on, he immediately enters the 9008th

killmans said:
device all the time in 9008 mode, turn on(tablet generally) plugging in the cable from the battery (I dismantled the tablet) After power-on, he immediately enters the 9008th
Click to expand...
Click to collapse
That's sad
Seriosly, I'm curious what's the problem is.
/* ironic
Can you please buy a L tablet and can you try to flash it via QFIL ? So we can check if it is device related or not.
*/
Maybe you can try to shortcut the pins, I marked at the picture.
Also, for linux there is a sahara utility https://github.com/openpst/sahara available. I never uploaded a file with it, but I used it to check the emmc programmer.
Select a port
Press connect
Select programmer in file dialog, which opens after that.
--> In case the GUI asks for the patch.xml the programmer is right.

Quallenauge said:
That's sad
Seriosly, I'm curious what's the problem is.
/* ironic
Can you please buy a L tablet and can you try to flash it via QFIL ? So we can check if it is device related or not.
*/
Maybe you can try to shortcut the pins, I marked at the picture.
Also, for linux there is a sahara utility https://github.com/openpst/sahara available. I never uploaded a file with it, but I used it to check the emmc programmer.
Select a port
Press connect
Select programmer in file dialog, which opens after that.
--> In case the GUI asks for the patch.xml the programmer is right.
Click to expand...
Click to collapse
i'm really sad
after connecting to the tablet, he asked 52 bytes from the image 0x0D - EHOSTDL After selecting firehose response: no response from device

Exit meta mode for lenovo tab A2107-H

Hello,
how do I create mmcblk0.img when I can't boot into TWRP? (my device [ Lenovo Yoga Tab 3 Plus LTE ] is also hardbricked, no recovery or fastboot)
Is rawprogram_upgrade.xml device specific or only model specific. If the latter please share the xml.
Thanks.

c7x43t said:
Hello,
how do I create mmcblk0.img when I can't boot into TWRP? (my device [ Lenovo Yoga Tab 3 Plus LTE ] is also hardbricked, no recovery or fastboot)
Is rawprogram_upgrade.xml device specific or only model specific. If the latter please share the xml.
Thanks.
Click to expand...
Click to collapse
If no fastboot at all comes up, you can use my pre-assembled image from the first page. Look at the section:
Firmware without special partitions
you'll find a link there. This file basically contains all what is needed to bring up the device.
Best regards.

Flashing successful but situation unchanged
Thank you very much for your detailed post. I own an unfortunately bricked Yoga Tab 3 Plus (LTE). It boots up to the Lenovo logo and stays there. Even recovery isn't accessible. I shortened the pins and managed to flash using QFIL with the files you kindly provided. Flashing completes without errors according to QFIL unfortunately when I try to reboot into recovery mode to wipe data as you suggested I encounter the old problem of booting blocked at Lenovo logo, no recovery possible.
Would it help to flash an alternative recovery partition with TWRP or alike? Could you provide the corresponding image file if you have it? Do you have other suggestions?
Thanks in advance!

Komplexa said:
Thank you very much for your detailed post. I own an unfortunately bricked Yoga Tab 3 Plus (LTE). It boots up to the Lenovo logo and stays there. Even recovery isn't accessible. I shortened the pins and managed to flash using QFIL with the files you kindly provided. Flashing completes without errors according to QFIL unfortunately when I try to reboot into recovery mode to wipe data as you suggested I encounter the old problem of booting blocked at Lenovo logo, no recovery possible.
Would it help to flash an alternative recovery partition with TWRP or alike? Could you provide the corresponding image file if you have it? Do you have other suggestions?
Thanks in advance!
Click to expand...
Click to collapse
It's not bricked if it boots to the Lenovo logo! That's the bootloader! You risked the integrity of your own device for no reason.
Hint: google "fastboot".

Thank you very much for your suggestion. Unfortunately I can't seem to access fastboot mode by combination of power and volume bottom and adb or fastboot don't even recognize the device. (I would never have risked the integrity of the system if I saw another way.)
Do you have any suggestion for me?
Once again: thank you very much, your help is greatly appreciated!

Komplexa said:
Thank you very much for your suggestion. Unfortunately I can't seem to access fastboot mode by combination of power and volume bottom and adb or fastboot don't even recognize the device. (I would never have risked the integrity of the system if I saw another way.)
Do you have any suggestion for me?
Once again: thank you very much, your help is greatly appreciated!
Click to expand...
Click to collapse
Have you ever really used fastboot before, or are you "just saying" (thinking it's the same as adb, as you seem to be)?
What USB vendor ID and device ID does the device present itself to the OS as, when connected to the PC and booted with the "volume up" key pressed?

Related

[Q] SDK 4 Home Screen Widget - No Activity Found!

I am new to Android SDK,but I know JAVA a little.I am on SDK v4.The problem is that,I tried to make 'HelloWidget' Home Screen Widget (with just a text box),and when I try to run the project,the console gives me
Code:
No Launcher Activity Found!
The application will only sync the package to the device!
And my app is nowhere to be found in the AVD.I had tried putting the .MAIN and Launcher in Intent filter,but no good.Here are my files:
AndroidManifest.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="removed due to newbies are not allowed to post links"
package="ax.startup"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<!-- Broadcast Receiver that will process AppWidget updates -->
<receiver android:name=".AxStartup" android:label="AxStartup">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@layout/startup_info" />
</receiver>
</application>
</manifest>
main.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="removed"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/txt1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="HELLO WORLD"
/>
</LinearLayout>
startup_info.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="removed"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/txt1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:text="ITS WORKING DUDE!"
android:minWidth="146dip"
android:minHeight="72dip"
android:updatePeriodMillis="10000"
android:initialLayout="@layout/startup_info">
<requestFocus />
</EditText>
</LinearLayout>
Java file
Code:
package ax.startup;
import android.appwidget.AppWidgetProvider;
public class AxStartup extends AppWidgetProvider {
}
I followed the tutorial from helloandroid website.
And another strange problem is that when I long press on desktop,only options to change wallpaper is coming.There is no 'Add to Home Screen' or 'Widgets' or any other menu!!!

[TOOL] Unsparse Files Joiner (Make System.img)

Hi,
Summary : Some ROM packages contain system_1.unsparse, system_2.unsparse,... files instead of system.img unpacking them would be the challenge.
I have the stock ROM files for a tablet but it is not like other ROMs with system.img.
There are some unsparse files instead of the img file:
system_1.unsparse
system_2.unsparse
...
system_10.unsparse
There is also the famous "rawprogram0.xml" which contains all the information needed to upload the *.unsparse files to the correct location on the eMMC.
Is there a way to pack all these *.unsparse files and create a single system.img file?
Does anyone know of a tool to do that?
Any hint will be useful.
:victory:I have developed a program to join these files.
Unsparse Files Joiner can be found in post 6 (Or Here)
Thanks
Morteza
inspecting rawprogram0.xml
While inspecting the ROM package, I found another XML file called rawprogram0-cust.xml.bak which looked like the original rawprogram0.xml and it contains the following line:
PHP:
<program file_sector_offset="0" filename="system.img" label="SYSTEM" num_partition_sectors="1126400" physical_partition_number="0" size_in_KB="563200.0" sparse="true" start_byte_hex="0x81ef000" start_sector="266104" />
The same line in rawprogram0.xml is changed to:
PHP:
<program file_sector_offset="0" filename="system_1.unsparse" label="SYSTEM" num_partition_sectors="262136" physical_partition_number="0" size_in_KB="4" sparse="false" start_byte_hex="136245248" start_sector="266104" />
<program file_sector_offset="0" filename="system_2.unsparse" label="SYSTEM" num_partition_sectors="16" physical_partition_number="0" size_in_KB="4" sparse="false" start_byte_hex="270462976" start_sector="528248" />
<program file_sector_offset="0" filename="system_3.unsparse" label="SYSTEM" num_partition_sectors="16" physical_partition_number="0" size_in_KB="8" sparse="false" start_byte_hex="270630912" start_sector="528576" />
<program file_sector_offset="0" filename="system_4.unsparse" label="SYSTEM" num_partition_sectors="258336" physical_partition_number="0" size_in_KB="2236" sparse="false" start_byte_hex="272408576" start_sector="532048" />
<program file_sector_offset="0" filename="system_5.unsparse" label="SYSTEM" num_partition_sectors="16" physical_partition_number="0" size_in_KB="8" sparse="false" start_byte_hex="404680704" start_sector="790392" />
<program file_sector_offset="0" filename="system_6.unsparse" label="SYSTEM" num_partition_sectors="258624" physical_partition_number="0" size_in_KB="7156" sparse="false" start_byte_hex="406458368" start_sector="793864" />
<program file_sector_offset="0" filename="system_7.unsparse" label="SYSTEM" num_partition_sectors="16" physical_partition_number="0" size_in_KB="4" sparse="false" start_byte_hex="538898432" start_sector="1052536" />
<program file_sector_offset="0" filename="system_8.unsparse" label="SYSTEM" num_partition_sectors="16" physical_partition_number="0" size_in_KB="8" sparse="false" start_byte_hex="539066368" start_sector="1052864" />
<program file_sector_offset="0" filename="system_9.unsparse" label="SYSTEM" num_partition_sectors="38248" physical_partition_number="0" size_in_KB="2608" sparse="false" start_byte_hex="540844032" start_sector="1056336" />
<program file_sector_offset="0" filename="system_10.unsparse" label="SYSTEM" num_partition_sectors="16" physical_partition_number="0" size_in_KB="8" sparse="false" start_byte_hex="673116160" start_sector="1314680" />
It seems that joining *.unsparse files would generate a single system.img file.
I will post back the results for future reference.
Morteza
After some trial and error I figured out the format of the XML file.
If you look at the attached file, I have shown the placement of the files and the empty spaces between them.
I wrote a simple program to join the unsparse files.
After joining them, I have a full working system.img file.
I mounted it under Linux and I could easily add and remove files to the img file.
If anyone is interested I can post more details.
Hello! I need to collect from unsparse files system.img. Please share program that can do it.
moza said:
After some trial and error I figured out the format of the XML file.
If you look at the attached file, I have shown the placement of the files and the empty spaces between them.
I wrote a simple program to join the unsparse files.
After joining them, I have a full working system.img file.
I mounted it under Linux and I could easily add and remove files to the img file.
If anyone is interested I can post more details.
Click to expand...
Click to collapse
Hello! I need to collect from unsparse files system.img. Please share program that can do it. Thank you so must!
Unsparse Files Joiner 1.2
Hi,
I've finalized my "Unsparse file Joiner v1.2" and you can find it attached.
"Unsparse file Joiner v1.2"
Program Description:
This program joins Unsparse files found in some ROMs (system_1.unsparse, system_2.unsparse, ...) and creates a SYSTEM.IMG file.
Join process is based on the information from the rawprogram0.xml in the same folder as the unsparse files.
How does it work:
Run the program and select the rawprogram0.xml in the first textbox.
Select the name of the file to save (Normally SYSTEM.IMG) in the second textbox
Click Join System.img and wait.
Bugs/Feedback
Please inform me of any bug or feature requests.
Regards,
Morteza Zafari
My XML file:
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_1.img" label="system" num_partition_sectors="262160" physical_partition_number="0" start_sector="461920" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_2.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="725032" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_3.img" label="system" num_partition_sectors="257312" physical_partition_number="0" start_sector="728888" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_4.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="986208" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_5.img" label="system" num_partition_sectors="258280" physical_partition_number="0" start_sector="990064" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_6.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="1248352" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_7.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="1249320" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_8.img" label="system" num_partition_sectors="257312" physical_partition_number="0" start_sector="1253176" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_9.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="1510496" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_10.img" label="system" num_partition_sectors="258280" physical_partition_number="0" start_sector="1514352" />
program not working, help
moza thank you program!
I've got system img files in 29 parts.
XML file content:
Code:
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_1.img" label="system" num_partition_sectors="262160" physical_partition_number="0" start_sector="917504" />
http://pastebin.com/xhhnAVGW
system img file sizes:
2015-04-15 05:17 134˙225˙920 system_1.img
2015-04-15 05:17 132˙108˙288 system_10.img
2015-04-15 05:17 8˙192 system_11.img
2015-04-15 05:17 8˙192 system_12.img
2015-04-15 05:17 131˙579˙904 system_13.img
2015-04-15 05:17 8˙192 system_14.img
2015-04-15 05:17 132˙108˙288 system_15.img
2015-04-15 05:17 8˙192 system_16.img
2015-04-15 05:17 8˙192 system_17.img
2015-04-15 05:17 131˙579˙904 system_18.img
2015-04-15 05:17 8˙192 system_19.img
2015-04-15 05:17 8˙192 system_2.img
2015-04-15 05:17 132˙108˙288 system_20.img
2015-04-15 05:17 8˙192 system_21.img
2015-04-15 05:17 8˙192 system_22.img
2015-04-15 05:17 71˙991˙296 system_23.img
2015-04-15 05:17 8˙192 system_24.img
2015-04-15 05:17 8˙192 system_25.img
2015-04-15 05:17 8˙192 system_26.img
2015-04-15 05:17 8˙192 system_27.img
2015-04-15 05:17 8˙192 system_28.img
2015-04-15 05:17 8˙192 system_29.img
2015-04-15 05:17 131˙579˙904 system_3.img
2015-04-15 05:17 8˙192 system_4.img
2015-04-15 05:17 132˙108˙288 system_5.img
2015-04-15 05:17 8˙192 system_6.img
2015-04-15 05:17 8˙192 system_7.img
2015-04-15 05:17 131˙579˙904 system_8.img
2015-04-15 05:17 8˙192 system_9.img
When i'm trying to join the files with your program i've got error:
Unexpected/Unsupported Exception
Value cannot be zero
Parameter name: item
Click to expand...
Click to collapse
I've tried to rename files to:
system_1.unsparse
But i've got the same error.
My request is to add support to choose which partiton files to join (group by the same label for example label="userdata", label="cache",label="system") and calculate sectors for single img file after join parts (like in your rawprogram0-cust.xml.bak file).
Could you make it more universal?
moza said:
Hi,
I've finalized my "Unsparse file Joiner v1.2" and you can find it attached.
"Unsparse file Joiner v1.2"
Program Description:
This program joins Unsparse files found in some ROMs (system_1.unsparse, system_2.unsparse, ...) and creates a SYSTEM.IMG file.
Join process is based on the information from the rawprogram0.xml in the same folder as the unsparse files.
How does it work:
Run the program and select the rawprogram0.xml in the first textbox.
Select the name of the file to save (Normally SYSTEM.IMG) in the second textbox
Click Join System.img and wait.
Bugs/Feedback
Please inform me of any bug or feature requests.
Regards,
Morteza Zafari
Click to expand...
Click to collapse
Thanks for this tool! I ran into a problem when applying this to large roms. When it's almost done, it gives the error:
************** Exception Text **************
System.OverflowException: Value was either too large or too small for an Int32.
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at UnsparseFilesJoiner.Form1.JoinFiles() in C:\Users\MoZa\Desktop\UnsparseROMPacker\UnsparseROMPacker\Form1.vb:line 41
at UnsparseFilesJoiner.Form1.btnBuildSystemImg_Click(Object sender, EventArgs e) in C:\Users\MoZa\Desktop\UnsparseROMPacker\UnsparseROMPacker\Form1.vb:line 129
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
First of all, thanks for your tool.
But .... It isn't working fine for me. Maybe because like nikpop, my files are named system_1.img, system_2.img, etc . Also I"ve got two xml, weirdly enough one named rawprogram_unsparse.xml ( http://pastebin.com/CDeeMJQz ) which doens't make sense regarding system.img, and a rawprogram0.xml.bak (yes, .bak ... for whatever reason) which makes sense ( http://pastebin.com/KeEKnmJB ) . So I decided to give it a try and rename rawprogram_unsparse.xml to rawprogram0.xml then use your program. And it crashed, here's the log : http://pastebin.com/Gt4rJh3L
PS : if you want to get the file I'm using, you can get the .exe (within the .zip) from here http://support-fr.wikomobile.com/update-744-rainbow-lite-4g (click the "Télécharger le fichier d'installation" button under "V.23 Android LOLLIPOP : ") and then proceed to extract the .exe with UniExtract, rom files are located under RAINBOW LITE 4G_V23/rom .
Good luck with your program, I hope you'll manage to adapt/fix it . See ya
tosiaczus said:
moza thank you program!
I've got system img files in 29 parts.
XML file content:
Code:
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_1.img" label="system" num_partition_sectors="262160" physical_partition_number="0" start_sector="917504" />
http://pastebin.com/xhhnAVGW
system img file sizes:
2015-04-15 05:17 134˙225˙920 system_1.img
2015-04-15 05:17 132˙108˙288 system_10.img
2015-04-15 05:17 8˙192 system_11.img
2015-04-15 05:17 8˙192 system_12.img
2015-04-15 05:17 131˙579˙904 system_13.img
2015-04-15 05:17 8˙192 system_14.img
2015-04-15 05:17 132˙108˙288 system_15.img
2015-04-15 05:17 8˙192 system_16.img
2015-04-15 05:17 8˙192 system_17.img
2015-04-15 05:17 131˙579˙904 system_18.img
2015-04-15 05:17 8˙192 system_19.img
2015-04-15 05:17 8˙192 system_2.img
2015-04-15 05:17 132˙108˙288 system_20.img
2015-04-15 05:17 8˙192 system_21.img
2015-04-15 05:17 8˙192 system_22.img
2015-04-15 05:17 71˙991˙296 system_23.img
2015-04-15 05:17 8˙192 system_24.img
2015-04-15 05:17 8˙192 system_25.img
2015-04-15 05:17 8˙192 system_26.img
2015-04-15 05:17 8˙192 system_27.img
2015-04-15 05:17 8˙192 system_28.img
2015-04-15 05:17 8˙192 system_29.img
2015-04-15 05:17 131˙579˙904 system_3.img
2015-04-15 05:17 8˙192 system_4.img
2015-04-15 05:17 132˙108˙288 system_5.img
2015-04-15 05:17 8˙192 system_6.img
2015-04-15 05:17 8˙192 system_7.img
2015-04-15 05:17 131˙579˙904 system_8.img
2015-04-15 05:17 8˙192 system_9.img
When i'm trying to join the files with your program i've got error:
I've tried to rename files to:
system_1.unsparse
But i've got the same error.
My request is to add support to choose which partiton files to join (group by the same label for example label="userdata", label="cache",label="system") and calculate sectors for single img file after join parts (like in your rawprogram0-cust.xml.bak file).
Could you make it more universal?
Click to expand...
Click to collapse
I am having the same problem using the joiner.
I get the error message:
System.ArgumentNullException: Der Wert darf nicht NULL sein.
Parametername: item
bei System.Windows.Forms.ListBox.ObjectCollection.AddInternal(Object item)
bei System.Windows.Forms.ListBox.ObjectCollection.Add(Object item)
Any ideas how to fix this? Are there any other possibilities to join the files?
I got these files from our supplier for special industrial handhelds and want to change some files in the original system.img. But I find no way to join these system_x.unsparse files to a usable img.
Hi, I am very interested in your tool, I have a ROM for a Wiko TOMMY downloaded from official website and I'm stuck with rawprogram_unsparse.xml
Could you please share the source code of your software, I would like to "translate" the soft for Linux users. Thanks !
I have 41 unparse files from Lenovo Tab 2 A10-30F. At the end i get also error when parsing those files.
Code:
System.OverflowException: Aritmeettinen toiminto aiheutti ylivuodon.
kohteessa UnsparseFilesJoiner.Form1.JoinFiles() at file C:\Users\MoZa\Desktop\UnsparseROMPacker\UnsparseROMPacker\Form1.vb:line 8
kohteessa UnsparseFilesJoiner.Form1.btnBuildSystemImg_Click(Object sender, EventArgs e) at file C:\Users\MoZa\Desktop\UnsparseROMPacker\UnsparseROMPacker\Form1.vb:line 129
For sparse system_1.jmg's
https://forum.xda-developers.com/an...ide-how-to-unpack-repack-system1-img-t3567741
error running your program on Windows 10.
Hello. I got Lenovo A6010 and needed to create system.img from multiple .img files, so tried your software. It gave me an error, unfortunately:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: item
at System.Windows.Forms.ListBox.ObjectCollection.AddInternal(Object item)
at UnsparseFilesJoiner.Form1.AnalyzeXML() in C:\Users\MoZa\Desktop\UnsparseROMPacker\UnsparseROMPacker\Form1.vb:line 96
at UnsparseFilesJoiner.Form1.btnBuildSystemImg_Click(Object sender, EventArgs e) in C:\Users\MoZa\Desktop\UnsparseROMPacker\UnsparseROMPacker\Form1.vb:line 127
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.6.127.1 built by: NETFXREL3STAGE
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
UnsparseFilesJoiner
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Lidia/Downloads/UnsparseFilesJoiner.v1.2/UnsparseFilesJoiner.exe
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 10.0.0.0
Win32 Version: 14.6.79.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.6.79.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1099.0 built by: NETFXREL4STAGE
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1068.2 built by: NETFXREL3STAGE
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.6.79.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 4.0.0.0
Win32 Version: 4.6.79.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.6.1064.2 built by: NETFXREL3STAGE
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
---------------------------------------------------------------------------------
dunno why(?...)
this is my first few lines from rawprogram0.xml
<?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="NON-HLOS.bin" label="modem" num_partition_sectors="131072" physical_partition_number="0" size_in_KB="65536.0" sparse="false" start_byte_hex="0x4000000" start_sector="131072" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="sbl1.mbn" label="sbl1" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x8000000" start_sector="262144" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="sbl1.mbn" label="sbl1bak" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x8080000" start_sector="263168" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="emmc_appsboot.mbn" label="aboot" num_partition_sectors="2048" physical_partition_number="0" size_in_KB="1024.0" sparse="false" start_byte_hex="0x8100000" start_sector="264192" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="emmc_appsboot.mbn" label="abootbak" num_partition_sectors="2048" physical_partition_number="0" size_in_KB="1024.0" sparse="false" start_byte_hex="0x8200000" start_sector="266240" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="rpm.mbn" label="rpm" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x8300000" start_sector="268288" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="rpm.mbn" label="rpmbak" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x8380000" start_sector="269312" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="tz.mbn" label="tz" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x8400000" start_sector="270336" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="tz.mbn" label="tzbak" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x8480000" start_sector="271360" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="hyp.mbn" label="hyp" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x8500000" start_sector="272384" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="hyp.mbn" label="hypbak" num_partition_sectors="1024" physical_partition_number="0" size_in_KB="512.0" sparse="false" start_byte_hex="0x8580000" start_sector="273408" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="" label="pad" num_partition_sectors="2048" physical_partition_number="0" size_in_KB="1024.0" sparse="false" start_byte_hex="0x8600000" start_sector="274432" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="" label="modemst1" num_partition_sectors="3072" physical_partition_number="0" size_in_KB="1536.0" sparse="false" start_byte_hex="0x8700000" start_sector="276480" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="" label="modemst2" num_partition_sectors="3072" physical_partition_number="0" size_in_KB="1536.0" sparse="false" start_byte_hex="0x8880000" start_sector="279552" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="" label="misc" num_partition_sectors="2048" physical_partition_number="0" size_in_KB="1024.0" sparse="false" start_byte_hex="0x8a00000" start_sector="282624" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="" label="fsc" num_partition_sectors="2" physical_partition_number="0" size_in_KB="1.0" sparse="false" start_byte_hex="0x8b00000" start_sector="284672" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="" label="ssd" num_partition_sectors="16" physical_partition_number="0" size_in_KB="8.0" sparse="false" start_byte_hex="0x8b00400" start_sector="284674" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="splash.img" label="splash" num_partition_sectors="20480" physical_partition_number="0" size_in_KB="10240.0" sparse="false" start_byte_hex="0x8b02400" start_sector="284690" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="" label="DDR" num_partition_sectors="64" physical_partition_number="0" size_in_KB="32.0" sparse="false" start_byte_hex="0xc000000" start_sector="393216" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="" label="fsg" num_partition_sectors="3072" physical_partition_number="0" size_in_KB="1536.0" sparse="false" start_byte_hex="0xc008000" start_sector="393280" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="sec.dat" label="sec" num_partition_sectors="32" physical_partition_number="0" size_in_KB="16.0" sparse="false" start_byte_hex="0xc188000" start_sector="396352" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="boot.img" label="boot" num_partition_sectors="65536" physical_partition_number="0" size_in_KB="32768.0" sparse="false" start_byte_hex="0xc18c000" start_sector="396384" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_1.img" label="system" num_partition_sectors="262160" physical_partition_number="0" start_sector="461920" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_2.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="725032" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_3.img" label="system" num_partition_sectors="257336" physical_partition_number="0" start_sector="728888" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_4.img" label="system" num_partition_sectors="258280" physical_partition_number="0" start_sector="990064" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_5.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="1248352" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_6.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="1249320" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_7.img" label="system" num_partition_sectors="257312" physical_partition_number="0" start_sector="1253176" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_8.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="1510496" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_9.img" label="system" num_partition_sectors="258280" physical_partition_number="0" start_sector="1514352" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_10.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="1772640" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_11.img" label="system" num_partition_sectors="16" physical_partition_number="0" start_sector="1773608" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_12.img" label="system" num_partition_sectors="257312" physical_partition_number="0" start_sector="1777464" />
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="system_13.img" label="system" num_partition_sectors="16"
moza said:
Hi,
I've finalized my "Unsparse file Joiner v1.2" and you can find it attached.
"Unsparse file Joiner v1.2"
Program Description:
This program joins Unsparse files found in some ROMs (system_1.unsparse, system_2.unsparse, ...) and creates a SYSTEM.IMG file.
Join process is based on the information from the rawprogram0.xml in the same folder as the unsparse files.
How does it work:
Run the program and select the rawprogram0.xml in the first textbox.
Select the name of the file to save (Normally SYSTEM.IMG) in the second textbox
Click Join System.img and wait.
Bugs/Feedback
Please inform me of any bug or feature requests.
Regards,
Morteza Zafari
Click to expand...
Click to collapse
Failed
moza said:
Hi,
I've finalized my "Unsparse file Joiner v1.2" and you can find it attached.
"Unsparse file Joiner v1.2"
Program Description:
This program joins Unsparse files found in some ROMs (system_1.unsparse, system_2.unsparse, ...) and creates a SYSTEM.IMG file.
Join process is based on the information from the rawprogram0.xml in the same folder as the unsparse files.
How does it work:
Run the program and select the rawprogram0.xml in the first textbox.
Select the name of the file to save (Normally SYSTEM.IMG) in the second textbox
Click Join System.img and wait.
Bugs/Feedback
Please inform me of any bug or feature requests.
Regards,
Morteza Zafari
Click to expand...
Click to collapse
GIving me Success message
Files have been joined
Buy i can't find system.img
arithmetic overflow joining 92 files

[AOSP] Nougat r1

Hello everyone!
Trying to port AOSP Nougat for Sony Z Ultra.
I made the same things on developer android.
http://forum.xda-developers.com/devdb/project/dl/?id=20250
Code:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
Code:
sudo update-alternatives --config java
sudo update-alternatives --config javac
Code:
sudo apt-get install git-core gnupg flex bison gperf build-essential
zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache
libgl1-mesa-dev libxml2-utils xsltproc unzip
Code:
mkdir ~/bin
PATH=~/bin:$PATH
Code:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
Code:
repo init -u https://android.googlesource.com/platform/manifest -b android-7.0.0_r1
repo sync -jX number of cpus
Code:
mkdir .repo/local_manifests
Code:
inside .repo/local_manifets type nano sony.xml
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote name="sony" fetch="git://github.com/sonyxperiadev/" />
<remove-project name="platform/hardware/qcom/camera" />
<project path="device/sony/sepolicy" name="device-sony-sepolicy" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/amami" name="device-sony-amami" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/aries" name="device-sony-aries" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/castor" name="device-sony-castor" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/castor_windy" name="device-sony-castor_windy" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/common" name="device-sony-common" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/common-headers" name="device-sony-common-headers" groups="device" remote="sony" revision="aosp/LA.BR.1.3.3_rb2.14" />
<project path="device/sony/common-kernel" name="vendor-sony-kernel" groups="device" remote="sony" revision="aosp/LA.BR.1.3.3_rb2.14" />
<project path="device/sony/honami" name="device-sony-honami" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/kanuti" name="device-sony-kanuti" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/ivy" name="device-sony-ivy" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/karin" name="device-sony-karin" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/karin_windy" name="device-sony-karin_windy" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/kitakami" name="device-sony-kitakami" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/leo" name="device-sony-leo" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/loire" name="device-sony-loire" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/rhine" name="device-sony-rhine" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/satsuki" name="device-sony-satsuki" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/scorpion" name="device-sony-scorpion" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/scorpion_windy" name="device-sony-scorpion_windy" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/suzu" name="device-sony-suzu" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/shinano" name="device-sony-shinano" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/sirius" name="device-sony-sirius" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/sumire" name="device-sony-sumire" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/suzuran" name="device-sony-suzuran" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/togari" name="device-sony-togari" groups="device" remote="sony" revision="m-mr1" />
<project path="device/sony/tulip" name="device-sony-tulip" groups="device" remote="sony" revision="m-mr1" />
<project path="hardware/qcom/camera" name="camera" groups="device" remote="sony" revision="aosp/LA.BR.1.3.3_rb2.14" />
<project path="kernel/sony/msm" name="kernel" groups="device" remote="sony" revision="aosp/LA.BR.1.3.3_rb2.14" />
<project path="vendor/qcom/opensource/dataservices" name="vendor-qcom-opensource-dataservices" groups="device" remote="sony" revision="master" />
<project path="vendor/sony-oss/thermanager" name="thermanager" groups="device" remote="sony" revision="master" />
<project path="vendor/sony-oss/macaddrsetup" name="macaddrsetup" groups="device" remote="sony" revision="master" />
<project path="vendor/sony-oss/timekeep" name="timekeep" groups="device" remote="sony" revision="master" />
</manifest>
Code:
repo sync -j10
Code:
source build/envsetup.sh
lunch name_of_togari
make -j2
When I copied the files from sonyxperiadev into this repo folder, I got issues. I am seeing which one are making that.
Through jack building I made this:
Code:
export ANDROID_JACK_EXTRA_ARGS="--verbose debug --sanity-checks on -D
sched.runner=single-threaded"
prebuilts/misc/linux-x86/ccache/ccache -M 80G
export USE_CCACHE=1
export CCACHE_DIR=$home/.ccache
Then I will post them here to fix them with the community.
ROM download uploaded. If boot.img doesn't work flash the file from here.
Thanx a lot.
XDA:DevDB Information
AOSP android-7.0.0_r1, ROM for the Sony Xperia Z Ultra
Contributors
astronfestmon, astronfestmon
ROM OS Version: 6.0.x Marshmallow
ROM Kernel: Linux 3.4.x
Version Information
Status: Testing
Created 2016-08-28
Last Updated 2016-08-28
Hey how much RAM your building PC have? you have to callibrate them
more infos u get there : https://android.googlesource.com/pl...f-you-experience-Jack-compilations-failing-on
If there's any way i can help tell me, as i also try to compile it in next days :highfive:
P.S. do you use Ubuntu 16.04 LTS? if yes u need to fix some things If u need it then tell me
Your PDesire
PDesire said:
Hey how much RAM your building PC have? you have to callibrate them
more infos u get there : https://android.googlesource.com/pl...f-you-experience-Jack-compilations-failing-on
If there's any way i can help tell me, as i also try to compile it in next days :highfive:
P.S. do you use Ubuntu 16.04 LTS? if yes u need to fix some things If u need it then tell me
Your PDesire
Click to expand...
Click to collapse
I'm using 16.04 LTS and I have 6 gb ram in a hp pavillion 15 a new one.
Thanx.
which binaries do you use?
matze19999 said:
which binaries do you use?
Click to expand...
Click to collapse
From android 5.1 on the site developer world sony
Sent from my Nexus 5 using Tapatalk
astronfestmon said:
From android 5.1 on the site developer world sony
Click to expand...
Click to collapse
You are using Android 5.1 binaries with Android n?
Yes. I count find others.
Sent from my Nexus 5 using Tapatalk
Why not 6.0 binaries?
I couldn't find it.
Sent from my Nexus 5 using Tapatalk
astronfestmon said:
I couldn't find it.
Click to expand...
Click to collapse
http://developer.sonymobile.com/downloads/software-binaries/
Than
Sent from my Nexus 5 using Tapatalk
Well here is sweet smell of nougat coming for z ultra
PDesire said:
Hey how much RAM your building PC have? you have to callibrate them
more infos u get there : https://android.googlesource.com/pl...f-you-experience-Jack-compilations-failing-on
If there's any way i can help tell me, as i also try to compile it in next days :highfive:
P.S. do you use Ubuntu 16.04 LTS? if yes u need to fix some things If u need it then tell me
Your PDesire
Click to expand...
Click to collapse
You sir are the real MVP thanx for porting nougat
I got the build successful. I will flash it today. Testing today and tomorrow. Then I will give photos after testing.
Thanx
astronfestmon said:
I got the build successful. I will flash it today. Testing today and tomorrow. Then I will give photos after testing.
Thanx
Click to expand...
Click to collapse
Sounds good. Waiting for new Android 7 experience on togari
Testing
android n works very good
Great
Sent from my Nexus 5 using Tapatalk
O couldnt flash boot.img well.
How do you do that?
Sent from my Nexus 5 using Tapatalk
https://www.androidfilehost.com/?fid=24591000424961941
try this kernel

Carrier Firmware Sonim XP8

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
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.
stevecast2024 said:
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.
Click to expand...
Click to collapse
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.
https://blog.csdn.net/zhuyong006/article/details/85160372
HTML:
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
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.
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 .
smokeyou said:
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.
Click to expand...
Click to collapse
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
JOchu38 said:
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
Click to expand...
Click to collapse
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.
smokeyou said:
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 .
Click to expand...
Click to collapse
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
albert.r said:
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
Click to expand...
Click to collapse
No exploits!
Please see root thread here https://forum.xda-developers.com/showpost.php?p=80585313&postcount=18
smokeyou said:
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 .
Click to expand...
Click to collapse
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!
Hello, smokeyou!
Please, can you provide prog_emmc_ufs_firehose_Sdm660_ddr.elf file which you're using? I'm stuck with this:
Code:
01:40:45: EVENT: RECEIVED <-- SAHARA_READ_DATA
01:40:45: INFO: function: start_image_transfer_64bit:1196 start_image_transfer_64bit: Offset 8192
01:40:45: INFO: function: start_image_transfer_64bit:1197 start_image_transfer_64bit: Offset 0x2000
01:40:45: INFO: function: start_image_transfer_64bit:1198 start_image_transfer_64bit: Length 2760
01:40:45: INFO: function: start_image_transfer_64bit:1199 start_image_transfer_64bit: Length 0xAC8
01:40:45: INFO: function: tx_data:204 Transmitting 2760 bytes
01:40:45: INFO: function: print_buffer:369 First few bytes: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
01:40:45: INFO: function: print_buffer:376 Last few bytes: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
01:40:45: INFO: function: tx_data:236 Total bytes sent so far: 7696
01:40:45: ERROR: function: rx_data:247 Error occurred while reading from COM port
01:40:45: ERROR: function: sahara_main:924 Sahara protocol error
01:40:45: ERROR: function: main:303 Uploading Image using Sahara protocol failed
Will try to run QPST on another PC tomorrow, but now I have no ideas what's happening. It's always broke on sending 7696 bytes, in every my try. Maybe I'm using wrong ELF?
smokeyou said:
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 .
Click to expand...
Click to collapse
geeque said:
Hello, smokeyou!
Please, can you provide prog_emmc_ufs_firehose_Sdm660_ddr.elf file which you're using? I'm stuck with this:
Code:
01:40:45: EVENT: RECEIVED <-- SAHARA_READ_DATA
01:40:45: INFO: function: start_image_transfer_64bit:1196 start_image_transfer_64bit: Offset 8192
01:40:45: INFO: function: start_image_transfer_64bit:1197 start_image_transfer_64bit: Offset 0x2000
01:40:45: INFO: function: start_image_transfer_64bit:1198 start_image_transfer_64bit: Length 2760
01:40:45: INFO: function: start_image_transfer_64bit:1199 start_image_transfer_64bit: Length 0xAC8
01:40:45: INFO: function: tx_data:204 Transmitting 2760 bytes
01:40:45: INFO: function: print_buffer:369 First few bytes: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
01:40:45: INFO: function: print_buffer:376 Last few bytes: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
01:40:45: INFO: function: tx_data:236 Total bytes sent so far: 7696
01:40:45: ERROR: function: rx_data:247 Error occurred while reading from COM port
01:40:45: ERROR: function: sahara_main:924 Sahara protocol error
01:40:45: ERROR: function: main:303 Uploading Image using Sahara protocol failed
Will try to run QPST on another PC tomorrow, but now I have no ideas what's happening. It's always broke on sending 7696 bytes, in every my try. Maybe I'm using wrong ELF?
Click to expand...
Click to collapse
Edit.. Files are now available in the repository under FlashTools.zip.
https://androidfilehost.com/?fid=4349826312261641937
Is the line of code in the backup xml right? why arre boot a and boot b swapped?
[email protected] said:
Is the line of code in the backup xml right? why arre boot a and boot b swapped?
Click to expand...
Click to collapse
Good catch!! I wrote that by hand before I made the GPT parser tool.
I'll update the main post shortly. Method will be changed to use the GPTConsole application in order to generate a rawprogram0.xml automatically based on live device GPT data.
If you want to get a head start before the main post is updated. The files are available now - link below.
https://androidfilehost.com/?fid=4349826312261641937
Unlock XP8 Sprint
smokeyou said:
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 .
Click to expand...
Click to collapse
Is it possible to somehow unlock my XP8 Sprint from binding to a SIM card?
Has anyone who has gained root rights, observed that the fingerprint scanner stopped working?
Anyway, please, specify Android OS verson, build number and mobile carrier (to whom the phone was tied).
Thanks in advance!
Has there been any further progress made with the root process of the XP8? I'd love to enhance and tweak this phone.
darkphoenix2012 said:
Has there been any further progress made with the root process of the XP8?
Click to expand...
Click to collapse
Please, read this thread.
Firmware Backup
smokeyou said:
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 .
Click to expand...
Click to collapse
I'm struggling to figure this out. Maybe because I don't have basic lingo understanding. I have a Verizon and Sprint XP8's I want to backup. Really want to go no-carrier unlocked version to use dual-SIM! I have not even seen one of these manufacturer unlocked versions yet. Do they really exist? lol. My limiting factor is the CDMA support. My understanding is that AT LEAST the sprint phone would have the hardware, maybe the Verizon? But why would they make the hardware different per device?

Help Modify settings.apk MIUI 8 6.9.29

help, I want to disable or hide the button light switch option. is it possible to do that in modifying settings.apk on miui 8. Thanks
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/key_settings"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<PreferenceCategory android:title="@string/screen_key_press" android:key="screen_key_press">
<ListPreference android:entries="@arRay/screen_key_press_action" android:title="@string/app_switch_key" android:key="menu_press" android:dialogTitle="@string/screen_key_press_action" android:entryValues="@arRay/screen_key_press_action_value" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/screen_key_long_press" android:key="screen_key_long_press">
<ListPreference android:entries="@arRay/screen_key_long_press_action" android:title="@string/app_switch_key" android:key="menu_long_press" android:dialogTitle="@string/screen_key_long_press_action" android:entryValues="@arRay/screen_key_long_press_action_value" />
<ListPreference android:entries="@arRay/screen_key_long_press_action" android:title="@string/home_key" android:key="home_long_press" android:dialogTitle="@string/screen_key_long_press_action" android:entryValues="@arRay/screen_key_long_press_action_value" />
<ListPreference android:entries="@arRay/screen_key_long_press_action" android:title="@string/back_key" android:key="back_long_press" android:dialogTitle="@string/screen_key_long_press_action" android:entryValues="@arRay/screen_key_long_press_action_value" />
<ListPreference android:entries="@arRay/screen_key_long_press_timeout" android:title="@string/screen_key_long_press_timeout" android:key="screen_key_long_press_timeout" android:dialogTitle="@string/screen_key_long_press_timeout" android:entryValues="@arRay/screen_key_long_press_timeout_value" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/under_keyguard" android:key="under_keyguard">
<CheckBoxPreference android:title="@string/disable_power_key_long_press_under_keyguard" android:key="disable_power_long_press" />
<CheckBoxPreference android:title="@string/pref_volume_wake_title" android:key="pref_volume_wake" android:summary="@string/pref_volume_wake_summary" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/convenience_key_category_title" android:key="convenience_key">
<CheckBoxPreference android:title="@string/fp_nav_center_back_to_home_title" android:key="pref_fingerprint_nav_center_to_home" />
</PreferenceCategory>
<CheckBoxPreference android:title="@string/pref_button_light" android:key="pref_button_light" android:summary="@string/pref_button_light_summary" />
<ListPreference androidersistent="false" android:entries="@arRay/button_light_timeout_entries" android:title="@string/button_light_timeout" android:key="button_light_timeout" android:dependency="pref_button_light" android:dialogTitle="@string/button_light_timeout" android:entryValues="@arRay/button_light_timeout_value" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/status_bar_screen_button_key" android:key="screen_button_category">
<Preference android:title="@string/status_bar_key_position_custom" android:key="screen_button_custom" android:fragment="com.android.settings.screenkey.ScreenKeySettings" />
</PreferenceCategory>
</PreferenceScreen>
I already decompiled the settings.apk and found the xml file key_settings.xml. im wondering which string on the xml file i will delete or modify to disable the menu for button light switch option.

Categories

Resources