[DEV] Dumping out the kernel, ROM, etc. - Samsung Galaxy R i9103

Let's discuss how we could dump out the kernel, ROMS, etc. from Galaxy R:
The following command would help to dump the kernel out (need su)
Code:
cat /dev/block/mmcblk0p9 > /sdcard/boot-i9103.img
The following command should help to dump the /system/ out (need su)
Code:
cat /dev/block/mmcblk0p2 > /sdcard/system-i9103.img

legion1911 said:
If you dump with su you have su in the dump, no?
How about a temporary root solution?
Click to expand...
Click to collapse
Yes, dumping out the /system/ will contain su
But what it means is just dumping the /bin/su and /system/app/Superuser.apk inclusively.
After dumping out, one can remove the su & superuser.apk to make a 'non-rooted' ROM, if necessary.

ardatdat said:
After dumping out, one can remove the su & superuser.apk to make a 'non-rooted' ROM, if necessary.
Click to expand...
Click to collapse
Please explain how to do it on Windows 7.

Sense this device is tegra we can use nvflash to dump almost any kind of stuff from device, but my problem is that when i try to read or read raw from device nvflash hangs, on this weekend i will try and see what i can debug from usbmon and maybe then i will have some clue, until the only good way is to raw copy of block partitions like you mentioned
by the way if this helps this is what i get in my bct file (dumped with bct_dump for chromeos but worked for me)
Code:
Version = 0x00020001;
BlockSize = 0x00004000;
PageSize = 0x00000200;
PartitionSize = 0x01000000;
# Bootloader used = 1;
# Bootloaders max = 4;
# BCT size = 4080;
# Hash size = 16;
# Crypto offset = 16;
# Crypto length = 4064;
# Max BCT search blocks = 64;
#
# These values are set by cbootimage using the
# bootloader provided by the Bootloader=...
# configuration option.
#
# Bootloader[0].Version = 0x00000001;
# Bootloader[0].Start block = 224;
# Bootloader[0].Start page = 0;
# Bootloader[0].Length = 1345716;
# Bootloader[0].Load address = 0x00108000;
# Bootloader[0].Entry point = 0x00108000;
# Bootloader[0].Attributes = 0x00000004;
SDRAM[0].MemoryType = NvBootMemoryType_LpDdr2;
SDRAM[0].PllMChargePumpSetupControl = 0x00000008;
SDRAM[0].PllMLoopFilterSetupControl = 0x00000000;
SDRAM[0].PllMInputDivider = 0x0000001a;
SDRAM[0].PllMFeedbackDivider = 0x00000258;
SDRAM[0].PllMPostDivider = 0x00000000;
SDRAM[0].PllMStableTime = 0x0000012c;
SDRAM[0].EmcClockDivider = 0x00000001;
SDRAM[0].EmcAutoCalInterval = 0x00000000;
SDRAM[0].EmcAutoCalConfig = 0xe0a61111;
SDRAM[0].EmcAutoCalWait = 0x00000000;
SDRAM[0].EmcPinProgramWait = 0x00000000;
SDRAM[0].EmcRc = 0x00000012;
SDRAM[0].EmcRfc = 0x00000027;
SDRAM[0].EmcRas = 0x0000000d;
SDRAM[0].EmcRp = 0x00000006;
SDRAM[0].EmcR2w = 0x00000007;
SDRAM[0].EmcW2r = 0x00000005;
SDRAM[0].EmcR2p = 0x00000003;
SDRAM[0].EmcW2p = 0x0000000b;
SDRAM[0].EmcRrd = 0x00000003;
SDRAM[0].EmcRdRcd = 0x00000006;
SDRAM[0].EmcWrRcd = 0x00000006;
SDRAM[0].EmcRext = 0x00000003;
SDRAM[0].EmcWdv = 0x00000003;
SDRAM[0].EmcQUseExtra = 0x00000006;
SDRAM[0].EmcQUse = 0x00000007;
SDRAM[0].EmcQRst = 0x00000004;
SDRAM[0].EmcQSafe = 0x00000009;
SDRAM[0].EmcRdv = 0x0000000d;
SDRAM[0].EmcRefresh = 0x0000045f;
SDRAM[0].EmcBurstRefreshNum = 0x00000000;
SDRAM[0].EmcPdEx2Wr = 0x00000004;
SDRAM[0].EmcPdEx2Rd = 0x00000004;
SDRAM[0].EmcPChg2Pden = 0x00000006;
SDRAM[0].EmcAct2Pden = 0x00000008;
SDRAM[0].EmcAr2Pden = 0x00000001;
SDRAM[0].EmcRw2Pden = 0x0000000f;
SDRAM[0].EmcTxsr = 0x0000002a;
SDRAM[0].EmcTcke = 0x00000003;
SDRAM[0].EmcTfaw = 0x0000000f;
SDRAM[0].EmcTrpab = 0x00000007;
SDRAM[0].EmcTClkStable = 0x00000007;
SDRAM[0].EmcTClkStop = 0x00000002;
SDRAM[0].EmcTRefBw = 0x000004e1;
SDRAM[0].EmcFbioCfg1 = 0x00000000;
SDRAM[0].EmcFbioDqsibDlyMsb = 0x00000000;
SDRAM[0].EmcFbioDqsibDly = 0x2f2f2f2f;
SDRAM[0].EmcFbioQuseDlyMsb = 0x00000000;
SDRAM[0].EmcFbioQuseDly = 0x2f2f2f2f;
SDRAM[0].EmcFbioCfg5 = 0x00000282;
SDRAM[0].EmcFbioCfg6 = 0x00000002;
SDRAM[0].EmcFbioSpare = 0x00000000;
SDRAM[0].EmcMrsResetDllWait = 0x00000000;
SDRAM[0].EmcMrsResetDll = 0x00000000;
SDRAM[0].EmcMrsDdr2DllReset = 0x00000000;
SDRAM[0].EmcMrs = 0x00000000;
SDRAM[0].EmcEmrsEmr2 = 0x00000000;
SDRAM[0].EmcEmrsEmr3 = 0x00000000;
SDRAM[0].EmcEmrsDdr2DllEnable = 0x00000000;
SDRAM[0].EmcEmrsDdr2OcdCalib = 0x00000000;
SDRAM[0].EmcEmrs = 0x00000000;
SDRAM[0].EmcMrw1 = 0x0001008a;
SDRAM[0].EmcMrw2 = 0x00020004;
SDRAM[0].EmcMrw3 = 0x00030002;
SDRAM[0].EmcMrwResetCommand = 0x003f0000;
SDRAM[0].EmcMrwResetNInitWait = 0x0000000a;
SDRAM[0].EmcAdrCfg1 = 0x00070303;
SDRAM[0].EmcAdrCfg = 0x01070303;
SDRAM[0].McEmemCfg = 0x00100000;
SDRAM[0].McLowLatencyConfig = 0x80000003;
SDRAM[0].EmcCfg2 = 0x00000403;
SDRAM[0].EmcCfgDigDll = 0xe0000413;
SDRAM[0].EmcCfgClktrim0 = 0x00000000;
SDRAM[0].EmcCfgClktrim1 = 0x00000000;
SDRAM[0].EmcCfgClktrim2 = 0x00000000;
SDRAM[0].EmcCfg = 0x0001ff00;
SDRAM[0].EmcDbg = 0x01000020;
SDRAM[0].AhbArbitrationXbarCtrl = 0x00010000;
SDRAM[0].EmcDllXformDqs = 0x00000010;
SDRAM[0].EmcDllXformQUse = 0x00000008;
SDRAM[0].WarmBootWait = 0x00000001;
SDRAM[0].EmcCttTermCtrl = 0x00000802;
SDRAM[0].EmcOdtWrite = 0x00000000;
SDRAM[0].EmcOdtRead = 0x00000000;
SDRAM[0].EmcZcalRefCnt = 0x00000000;
SDRAM[0].EmcZcalWaitCnt = 0x0000001b;
SDRAM[0].EmcZcalMrwCmd = 0x000a0056;
SDRAM[0].EmcMrwZqInitDev0 = 0x800a00ff;
SDRAM[0].EmcMrwZqInitDev1 = 0x400a00ff;
SDRAM[0].EmcMrwZqInitWait = 0x00000001;
SDRAM[0].EmcDdr2Wait = 0x00000000;
SDRAM[0].PmcDdrPwr = 0x00000000;
SDRAM[0].ApbMiscGpXm2CfgAPadCtrl = 0x77ffc000;
SDRAM[0].ApbMiscGpXm2CfgCPadCtrl2 = 0x08080040;
SDRAM[0].ApbMiscGpXm2CfgCPadCtrl = 0x77fffff8;
SDRAM[0].ApbMiscGpXm2CfgDPadCtrl2 = 0x00000000;
SDRAM[0].ApbMiscGpXm2CfgDPadCtrl = 0x77fffff8;
SDRAM[0].ApbMiscGpXm2ClkCfgPadCtrl = 0x77ffc000;
SDRAM[0].ApbMiscGpXm2CompPadCtrl = 0x01f1f008;
SDRAM[0].ApbMiscGpXm2VttGenPadCtrl = 0x00005500;
---------- Post added at 02:13 AM ---------- Previous post was at 01:59 AM ----------
legion1911 said:
Please explain how.
Click to expand...
Click to collapse
I think by mounting this image like a loop device in linux and deleting unneeded files from what i know SGR uses ext4 file system

Welcome SPLESH!
1) Please give us a download link for the nvflash you use and let us know about your progress.
2) "I think by mounting this image like a loop device in linux and deleting unneeded files from what i know SGR uses ext4 file system"
I do not use linux. How I do it in windows?
---------- Post added at 04:40 AM ---------- Previous post was at 03:41 AM ----------
ardatdat said:
Let's discuss how we could dump out the kernel, ROMS, etc. from Galaxy R:
The following command would help to dump the kernel out (need su)
Code:
cat /dev/block/mmcblk0p9 > /sdcard/boot-i9103.img
The following command should help to dump the /system/ out (need su)
Code:
cat /dev/block/mmcblk0p2 > /sdcard/system-i9103.img
Click to expand...
Click to collapse
Nice. How I do that on Windows 7?

legion1911 said:
Please explain how to do it on Windows 7.
Click to expand...
Click to collapse
on Windows 7 How?

Hi
Ok I will look to find a way to extract and pack it back or at least modify image itself (I do not have Windows and I will have to install it in virtualBox)
Look in this thread about magiciso (rfs and maybe ext4):
http://forum.xda-developers.com/showthread.php?t=879569
And of cause Linux reader (I can not verify it with image but i used it for real PC disk partitions):
http://www.diskinternals.com/linux-reader/
About nvflash, this thread have much info about it (it is for G Tablet but work as well on SGR, or maybe not so well but i will research more on it):
http://forum.xda-developers.com/showthread.php?t=861950
---------- Post added at 10:27 AM ---------- Previous post was at 10:06 AM ----------
To put device into nvflash mod you need:
unplug USB cable
turn device off
remove battery
press VOL_UP and VOL_DOWN and hold them
insert USB cable
press HOME for 1-2 sec
press POWER
verify device (windows should detect new device, on linux run lsusb and see for Nvidia Inc device)
release POWER, HOME, and VOL keys
on Windows install APX driver from post, on Linux run lsusb and look for Nvidia Inc device remember ID XXXX:XXXX (first part is vendor and do not change) and create udev rule for it with this line: SUBSYSTEM=="usb", ATTR{idVendor}=="0955", ATTR{idProduct}=="7f20", MODE="0660", GROUP="plugdev"
now you can run nvflash --sync (with out bootloader) just to verify it can connect

SPLESH!
I am so glad you are in this forum.
Greetings to Crimea!

May be I need use nvflash with USB JIG to be able to operate it will make one and try to operate with it on this weekend and will share my results with you guys

Hi
Can some one who rooted device but did not changed stock kernel post output of after su:
adb shell cat /sys/firmware/fuse/odm_production_mode > odm_production_mode.txt
adb shell cat /sys/firmware/fuse/sec_boot_dev_cfg >
sec_boot_dev_cfg.txt
adb shell cat /sys/firmware/fuse/sec_boot_dev_sel > sec_boot_dev_sel.txt
and probably all content of /sys/firmware/fuse will be useful for my investigation
I understand that this may be different among devices but just for reference this info will be interesting to look at

Some thought about partitions layout
Code:
mmc0->cid=15010056414c30304d11593326177e00
mmc0->csd=d02701320f5903fff6dbffef8a404000
mmc0->name=VAL00M
mmc0->type=MMC
mmc0->oemid=0x0100
mmc0->serial=0x59332617
mmc0->manfid=0x000015
mmc0->preferred_erase_size=524288
mmc0->erase_size=524288
mmc0->date=07/2011
mmcblk0->dev=179:0
mmcblk0->range=8
mmcblk0->ext_range=255
mmcblk0->removable=0
mmcblk0->ro=0
mmcblk0->size=15104000
mmcblk0->alignment_offset=0
mmcblk0->discard_alignment=0
mmcblk0->capability=50
p0->size=??? /bct,/pt,/flags
p1->size=24576 /efs ~11Mb
p2->size=1228800 /system ~503Mb
p3->size=638976 /cache ~307Mb
p4->size=7865344 /sdcard ~3Gb
p5->size=4096 radio? ~2Mb
p6->size=4194304 /data ~1Gb
p7->size=32768 radio? ~15Mb
p8->size=10240 recavery ~5Mb
p9->size=16384 boot ~8Mb
p10->size=16384 hidden? ~8Mb
p11->size=1048576 factoryfs? ~500Mb

It is more than a month since I played with this, but if I remember correctly, p8 is recovery, p9 is boot.
These 2 partitions need special scripts to unzip. Check here:
Code:
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack%2C_Edit%2C_and_Re-Pack_Boot_Images
System partition is probably a standard Linux partition and is easy to mount on any Linux system.
I used dd to dump them, which essentially does the same thing as cat but with more options.

Yes you are correct and p5 and p7 are both radio related so the first 10 or so mb are for low level hboot/fastboot, partition table and etc
Sent from my GT-I9103 using XDA App

Sorry did not read the kernel code p5 is MISC partition

I lost ability to play with flash (some thing happend with VOL keys) it is good that i rooted it and instlled cwm just a day beffore (we had snow and ice no the road and I fail and paranty damedjed buttons) but I will continue to work on kernel until i will get it repared (new year, and etc)

SPLESH said:
I lost ability to play with flash (some thing happend with VOL keys) it is good that i rooted it and instlled cwm just a day beffore (we had snow and ice no the road and I fail and paranty damedjed buttons) but I will continue to work on kernel until i will get it repared (new year, and etc)
Click to expand...
Click to collapse
Did you open your device to check the electronics? Because I doubt you could damage the buttons permanently by software.

No i did it in more bad way also dameged side of device not so raw but this thin thing which they use for buttons is broken i did open it and removed broken pice of plastic and fexible pcb with buttons on it glad it at least work cause i was thinking it is it will have to replace this two parts
Sent from my GT-I9103 using XDA App
---------- Post added at 05:32 PM ---------- Previous post was at 05:11 PM ----------
This part "KEY FPCB-VOLUME KEY(GT-I9103) GH59-11005A" and plastic button part they should not cost much but it is little inconvenient for me now

SPLESH said:
Some thought about partitions layout
Code:
mmc0->cid=15010056414c30304d11593326177e00
mmc0->csd=d02701320f5903fff6dbffef8a404000
mmc0->name=VAL00M
mmc0->type=MMC
mmc0->oemid=0x0100
mmc0->serial=0x59332617
mmc0->manfid=0x000015
mmc0->preferred_erase_size=524288
mmc0->erase_size=524288
mmc0->date=07/2011
mmcblk0->dev=179:0
mmcblk0->range=8
mmcblk0->ext_range=255
mmcblk0->removable=0
mmcblk0->ro=0
mmcblk0->size=15104000
mmcblk0->alignment_offset=0
mmcblk0->discard_alignment=0
mmcblk0->capability=50
p0->size=??? /bct,/pt,/flags
p1->size=24576 /efs ~11Mb
p2->size=1228800 /system ~503Mb
p3->size=638976 /cache ~307Mb
p4->size=7865344 /sdcard ~3Gb
p5->size=4096 radio? ~2Mb
p6->size=4194304 /data ~1Gb
p7->size=32768 radio? ~15Mb
p8->size=10240 recavery ~5Mb
p9->size=16384 boot ~8Mb
p10->size=16384 hidden? ~8Mb
p11->size=1048576 factoryfs? ~500Mb
Click to expand...
Click to collapse
If I use this for BoardConfig.mk , how can I convert the sizes to hex values/bytes ?

EmoBoiix3 said:
If I use this for BoardConfig.mk , how can I convert the sizes to hex values/bytes ?
Click to expand...
Click to collapse
this values are taken from:
Code:
/sys/devices/platform/sdhci-tegra.3/mmc_host/mmc0/mmc0:0001/block/mmcblk0
Code:
adb shell cat /sys/devices/platform/sdhci-tegra.3/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p*/size
And this sizes is in blocks, 2048 byte each.

Related

floating point arithmetic? - hack job workaround now included

is there a way to do floating point arithmetic in terminal?...or would bc binary need to be included since busybox does not have it? as of now you get a syntax error if using fp numbers in expression..or 0 when using division and result is a floating point.
Code:
# echo $(( 1 + 1 ))
echo $(( 1 + 1 ))
2
# echo $(( 1.0 + 1.0 ))
echo $(( 1.0 + 1.0 ))
arith: syntax error: " 1.0 + 1.0 "
# echo $(( 1 / 2 ))
echo $(( 1 / 2 ))
0
sh/bash has no native support for floating point math, so your solution must involve a binary executable. You can either use bc, or you can write a very simple C program and compile it for this platform....
i.e.,
Code:
//math.c
#include <stdlib.h>
#include <stdio.h>
int main (int argc, char ** argv){
float a = atof(argv[1]);
char op = argv[2][0];
float b = atof(argv[3]);
if (op == '+') printf("%f\n",a+b);
else if (op == '-') printf("%f\n",a-b);
else if (op == 'x') printf("%f\n",a*b);
else if (op == '/') printf("%f\n",a/b);
return 0;
}
$ ./math 1.5 + 2
3.500000
$ ./math 1.5 x 2
3.000000
$ ./math 1.5 - 2
-0.500000
$ ./math 1.5 / 2
0.750000
Oh and FYI, don't forget you can use variables in there, i.e.
$ A=1.5
$ B=2
$ OP=/
$./math $A $OP $B
0.750000
Is this the appropriate forum?
jdstankosky said:
Is this the appropriate forum?
Click to expand...
Click to collapse
Sorry, are you a moderator? :/
And yes, since this is a development matter, I'd say it falls within the DEVELOMPENT section..
lbcoder said:
sh/bash has no native support for floating point math, so your solution must involve a binary executable. You can either use bc, or you can write a very simple C program and compile it for this platform....
i.e.,
Code:
//math.c
#include <stdlib.h>
#include <stdio.h>
int main (int argc, char ** argv){
float a = atof(argv[1]);
char op = argv[2][0];
float b = atof(argv[3]);
if (op == '+') printf("%f\n",a+b);
else if (op == '-') printf("%f\n",a-b);
else if (op == 'x') printf("%f\n",a*b);
else if (op == '/') printf("%f\n",a/b);
return 0;
}
$ ./math 1.5 + 2
3.500000
$ ./math 1.5 x 2
3.000000
$ ./math 1.5 - 2
-0.500000
$ ./math 1.5 / 2
0.750000
Oh and FYI, don't forget you can use variables in there, i.e.
$ A=1.5
$ B=2
$ OP=/
$./math $A $OP $B
0.750000
Click to expand...
Click to collapse
thanks for the info. very helpful.
script workaround
i have constructed a workaround for doing fp math for determining partition sizes.
it's not pretty, but it gets the job done.
basically, it goes like this:
1. check to see if the number passed to the function is an integer
2. if not, i search the string for a "."
3. if the search turns up a "." (and units in GB) i break the number into two whole numbers (the integer portion..before the decimal, and the fraction portion after the decimal).
4. do the appropriate math on the integer section.
5. do the appropriate math on the fraction section, then divide by 10^#of digits after the decimal place.
6. add the two numbers together and voila! a hack job, floating point calculation.
Code:
ValidateSizeArg() {
# check for zero-length arg to protect expr length
[ -z "$1" ] && ShowError "zero-length argument passed to size-validator"
SIZEMB=
ARGLEN=`expr length $1`
SIZELEN=$(($ARGLEN-1))
SIZEARG=`expr substr $1 1 $SIZELEN`
SIZEUNIT=`expr substr $1 $ARGLEN 1`
# check if SIZEARG is an integer
if [ $SIZEARG -eq $SIZEARG 2> /dev/null ] ; then
# look for G
[ "$SIZEUNIT" == "G" ] && SIZEMB=$(($SIZEARG * 1024))
# look for M
[ "$SIZEUNIT" == "M" ] && SIZEMB=$SIZEARG
# no units on arg
[ -z "$SIZEMB" ] && SIZEMB=$1
# check if SIZEARG is a floating point number, GB only
elif [ `expr index "$SIZEARG" .` != 0 ] && [ "$SIZEUNIT" == "G" ] ; then
INT=`echo "$SIZEARG" | cut -d"." -f1`
FRAC=`echo "$SIZEARG" | cut -d"." -f2`
SIGDIGITS=`expr length $FRAC`
[ -z "$INT" ] && INT=0
INTMB=$(($INT * 1024))
FRACMB=$((($FRAC * 1024) / (10**$SIGDIGITS)))
SIZEMB=$(($INTMB + $FRACMB))
# it's not a valid size
else
ShowError "$1 is not a valid size"
fi
# return valid argument in MB
FUNC_RET=$SIZEMB
}
I was a basic/qbasic/gwbasic programmer in my younger days (like 12-14 yrs old)...
I feel ashamed that I have no idea of what this stuff is anymore. Thank God for guys like you.

mkbootimg created boot.img creation discrepenacy

Hi,
I have noticed a discrepancy which I am unable to understand and appreciate if someone can provide a clarification in case they have noticed the same issue. I tried to split (using unmkbootimg) boot.img (from Xiaomi Mi MAX update ROMs) and merged it back (using mkbootimg) and found that the newly made boot.img was smaller by 1354 bytes. Appreciate your reply if I am missing anything.
% ls -l boot.img ../boot.img
-rw-rw-r-- 1 skanduru skanduru 12924234 Jan 1 2009 ../boot.img
-rw-rw-r-- 1 skanduru skanduru 12922880 Jan 15 01:07 boot_new.img
% cat output.txt
# kernel written to 'kernel' (10172221 bytes)
# ramdisk written to 'ramdisk.cpio.gz' (2746601 bytes)
# To rebuild this boot image, you can use the command:
mkbootimg --base 0 --pagesize 2048 --kernel_offset 0x80008000 --ramdisk_offset 0x81000000 --second_offset 0x80f00000 --tags_offset 0x80000100 --cmdline
'console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom msm_rtb.filter=0x237 ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci
lpm_levels.sleep_disabled=1 earlyprintk ramoops_memreserve=4M' --kernel kernel --ramdisk ramdisk.cpio.gz -o boot_new.img
A bindiff of the two images shows that the original boot.img has some stuff (1354 bytes) appended at the bottom which makes the difference. The net result is the boot_new.img doesn't boot up. Just wondering if someone has seen this issue.
boot image to try
The link to boot.img image to try out mkbootimg issue. We can see that @C53000, the original boot.img has extra stuff (1374 bytes).
Image can be downloaded from (Couldn't update it in the previous query)
s000 DOT tinyupload DOT com/?file_id=42124441031490820660
skanduru said:
The link to boot.img image to try out mkbootimg issue. We can see that @C53000, the original boot.img has extra stuff (1374 bytes).
Image can be downloaded from (Couldn't update it in the previous query)
s000 DOT tinyupload DOT com/?file_id=42124441031490820660
Click to expand...
Click to collapse
Could be an issue with Xiaomi image as it doesn't specify second_bootloader size, but appends it. Tried this change and it works. Not sure if it might be the case for potentially other manufacturer's boot.img. Posting it if it could be of some use.
--- a/mkbootimg/unmkbootimg.c
+++ b/mkbootimg/unmkbootimg.c
@@ -80,6 +80,30 @@ int usage(void)
return 1;
}
+int maybe_fix_second_image_size(boot_img_hdr *hdr, void *file_data)
+{
+ int offset = ((hdr->kernel_size + hdr->ramdisk_size
+ + 2*hdr->page_size - 1) / hdr->page_size) * hdr->page_size;
+ char *second_image = ((char *)file_data + offset);
+ u_int16_t *s = (u_int16_t *) second_image;
+ int is_second_image_true = 0;
+
+ if (s[0]) {
+ /*
+ * Second_image does exist ! Calculate the size and fix the
+ * size in hdr.
+ */
+ int size = 0;
+ while (s[0]) {
+ size += 2;
+ s++;
+ }
+ hdr->second_size = size;
+ is_second_image_true = 1;
+ }
+ return is_second_image_true;
+}
+
int main(int argc, char **argv)
{
void *file_data = 0;
@@ -160,7 +184,13 @@ int main(int argc, char **argv)
hdr->ramdisk_size);
}
- if(hdr->second_size != 0) {
+ /*
+ * Even though the second_size is 0, some vendors may place secondary
+ * image there, for ex. Xiaomi. In such a case do calculate the size
+ * based on termination with a null.
+ * XXX: Temp fix.
+ */
+ if(hdr->second_size != 0 || maybe_fix_second_image_size(hdr, file_data)) {
offset = ((hdr->kernel_size + hdr->ramdisk_size
+ 2*hdr->page_size - 1) / hdr->page_size) * hdr->page_size;
if (save_file(second_fn, &((char *)file_data)[offset],

How To Open tumbdata3 file?

I have tumbdata3 file. How can I recover or extract images in it?
xeeks said:
I have tumbdata3 file. How can I recover or extract images in it?
Click to expand...
Click to collapse
You probably mean ".THUMBDATA3-xxxx" which provides the "android thumbnail index".
If you want to extract single images as jpg files, I have bad news for you - its not possible.
How about with this code?
#!s/usr/bin/python
"""extract files from Android thumbdata3 file"""
f=open('thumbdata3.dat','rb')
tdata = f.read()
f.close()
ss = '\xff\xd8'
se = '\xff\xd9'
count = 0
start = 0
while True:
x1 = tdata.find(ss,start)
if x1 < 0:
break
x2 = tdata.find(se,x1)
jpg = tdata[x1:x2+1]
count += 1
fname = 'extracted%d03.jpg' % (count)
fw = open(fname,'wb')
fw.write(jpg)
fw.close()
start = x2+2
LS.xD said:
You probably mean ".THUMBDATA3-xxxx" which provides the "android thumbnail index".
If you want to extract single images as jpg files, I have bad news for you - its not possible.
Click to expand...
Click to collapse
Is there anyway to view it?
xeeks said:
How about with this code?
#!s/usr/bin/python
"""extract files from Android thumbdata3 file"""
f=open('thumbdata3.dat','rb')
tdata = f.read()
f.close()
ss = '\xff\xd8'
se = '\xff\xd9'
count = 0
start = 0
while True:
x1 = tdata.find(ss,start)
if x1 < 0:
break
x2 = tdata.find(se,x1)
jpg = tdata[x1:x2+1]
count += 1
fname = 'extracted%d03.jpg' % (count)
fw = open(fname,'wb')
fw.write(jpg)
fw.close()
start = x2+2
Click to expand...
Click to collapse
Where did you find it?
LS.xD said:
Where did you find it?
Click to expand...
Click to collapse
Google Search. My question is does it work?

Lg d3 d850 autoboot

I spent some time trying to figure out how to make my old G3 autoboot on charger so I could use it like a navigator in a car.
So here you go:
Patient: LG G3 D850 MM 6.0 30A
Requirements: rooted device.
in a nutshell - add following bold lines into the section [INIT|_CHARGING] of the /system/vendor/etc/chargerimages/chargerlogo.ini
[INIT_CHARGING]
POWER_OFF = NOT_CONNECTED_BL_LOW
REBOOT = NOT_CONNECTED_BL_NOT_LOW
NOT_BOOT_CHARGING = CHARGING_BL_LOW
NOT_BOOT_CHARGING = NOT_CHARGING_BL_LOW
NORMAL_CHARGING = CHARGING_BL_MID
NORMAL_CHARGING = NOT_CHARGING_BL_MID
FULL_CHARGING = CHARGING_BL_MAX
FULL_CHARGING = CHARGING_FULL
FULL_CHARGING = NOT_CHARGING_BL_MAX
WARNING_TEMPERATURE_BL_LOW = COLD_OVERHEAT_BL_LOW
WARNING_TEMPERATURE_BL_NOT_LOW = COLD_OVERHEAT_BL_NOT_LOW
INSERT_BATTERY = NOT_EXIST_BATTERY
WIRELESS_NOT_BOOT_CHARGING = CHARGING_WIRELESS_BL_LOW
REBOOT = CHARGING_WIRELESS_BL_NOT_LOW
INVALID_BATTERY = INVAILD_BATTERY_BL_LOW
INVALID_BATTERY = INVAILD_BATTERY_BL_NOT_LOW
DUMMY_BATTERY = DUMMY_BATTERY_BL_NONE
REBOOT = CHARGING_BL_LOW
REBOOT = CHARGING_BL_MID
REBOOT = CHARGING_BL_MAX
REBOOT = CHARGING_FULL
REBOOT = AUTOBOOT
More detailed steps:
adb pull /system/vendor/etc/chargerimages/chargerlogo.ini ./chargerlogo.ini
add the lines into chargerlogo.ini
adb push ./chargerlogo.ini /sdcard/chargerlogo.ini
adb shell
adb su
mount -o rw,remount,rw /system
cp /sdcard/chargerlogo.ini /system/vendor/etc/chargerimages/chargerlogo.ini
reboot
btw, if you are not familiar with all that stuff, you can just simulate event 'NOT_CONNECTED_BL_NOT_LOW' to power it up without touching power button:
- power on the car.
- wait 2-3 sec for static battery logo appeared.
- power off the car for 2-3 secs and you can power on/start engine right after that.
- LG will start in a few seconds.
Corund said:
I spent some time trying to figure out how to make my old G3 autoboot on charger so I could use it like a navigator in a car.
So here you go:
Patient: LG G3 D850 MM 6.0 30A
Requirements: rooted device.
in a nutshell - add following bold lines into the section [INIT|_CHARGING] of the /system/vendor/etc/chargerimages/chargerlogo.ini
[INIT_CHARGING]
POWER_OFF = NOT_CONNECTED_BL_LOW
REBOOT = NOT_CONNECTED_BL_NOT_LOW
NOT_BOOT_CHARGING = CHARGING_BL_LOW
NOT_BOOT_CHARGING = NOT_CHARGING_BL_LOW
NORMAL_CHARGING = CHARGING_BL_MID
NORMAL_CHARGING = NOT_CHARGING_BL_MID
FULL_CHARGING = CHARGING_BL_MAX
FULL_CHARGING = CHARGING_FULL
FULL_CHARGING = NOT_CHARGING_BL_MAX
WARNING_TEMPERATURE_BL_LOW = COLD_OVERHEAT_BL_LOW
WARNING_TEMPERATURE_BL_NOT_LOW = COLD_OVERHEAT_BL_NOT_LOW
INSERT_BATTERY = NOT_EXIST_BATTERY
WIRELESS_NOT_BOOT_CHARGING = CHARGING_WIRELESS_BL_LOW
REBOOT = CHARGING_WIRELESS_BL_NOT_LOW
INVALID_BATTERY = INVAILD_BATTERY_BL_LOW
INVALID_BATTERY = INVAILD_BATTERY_BL_NOT_LOW
DUMMY_BATTERY = DUMMY_BATTERY_BL_NONE
REBOOT = CHARGING_BL_LOW
REBOOT = CHARGING_BL_MID
REBOOT = CHARGING_BL_MAX
REBOOT = CHARGING_FULL
REBOOT = AUTOBOOT
More detailed steps:
adb pull /system/vendor/etc/chargerimages/chargerlogo.ini ./chargerlogo.ini
add the lines into chargerlogo.ini
adb push ./chargerlogo.ini /sdcard/chargerlogo.ini
adb shell
adb su
mount -o rw,remount,rw /system
cp /sdcard/chargerlogo.ini ./chargerlogo.ini
reboot
btw, if you are not familiar with all that stuff, you can just simulate event 'NOT_CONNECTED_BL_NOT_LOW' to power it up without touching power button:
- power on the car.
- wait 2-3 sec for static battery logo appeared.
- power off the car for 2-3 secs and you can power on/start engine right after that.
- LG will start in a few seconds.
Click to expand...
Click to collapse
Nice....
I have had to do similar to my tablets I run in my cars dash
was looking for this, could only find nexus and Samsung devices. Thanks a million
Corund said:
I spent some time trying to figure out how to make my old G3 autoboot on charger so I could use it like a navigator in a car.
So here you go:
Patient: LG G3 D850 MM 6.0 30A
Requirements: rooted device.
in a nutshell - add following bold lines into the section [INIT|_CHARGING] of the /system/vendor/etc/chargerimages/chargerlogo.ini
[INIT_CHARGING]
POWER_OFF = NOT_CONNECTED_BL_LOW
REBOOT = NOT_CONNECTED_BL_NOT_LOW
NOT_BOOT_CHARGING = CHARGING_BL_LOW
NOT_BOOT_CHARGING = NOT_CHARGING_BL_LOW
NORMAL_CHARGING = CHARGING_BL_MID
NORMAL_CHARGING = NOT_CHARGING_BL_MID
FULL_CHARGING = CHARGING_BL_MAX
FULL_CHARGING = CHARGING_FULL
FULL_CHARGING = NOT_CHARGING_BL_MAX
WARNING_TEMPERATURE_BL_LOW = COLD_OVERHEAT_BL_LOW
WARNING_TEMPERATURE_BL_NOT_LOW = COLD_OVERHEAT_BL_NOT_LOW
INSERT_BATTERY = NOT_EXIST_BATTERY
WIRELESS_NOT_BOOT_CHARGING = CHARGING_WIRELESS_BL_LOW
REBOOT = CHARGING_WIRELESS_BL_NOT_LOW
INVALID_BATTERY = INVAILD_BATTERY_BL_LOW
INVALID_BATTERY = INVAILD_BATTERY_BL_NOT_LOW
DUMMY_BATTERY = DUMMY_BATTERY_BL_NONE
REBOOT = CHARGING_BL_LOW
REBOOT = CHARGING_BL_MID
REBOOT = CHARGING_BL_MAX
REBOOT = CHARGING_FULL
REBOOT = AUTOBOOT
More detailed steps:
adb pull /system/vendor/etc/chargerimages/chargerlogo.ini ./chargerlogo.ini
add the lines into chargerlogo.ini
adb push ./chargerlogo.ini /sdcard/chargerlogo.ini
adb shell
adb su
mount -o rw,remount,rw /system
cp /sdcard/chargerlogo.ini /system/vendor/etc/chargerimages/chargerlogo.ini
reboot
btw, if you are not familiar with all that stuff, you can just simulate event 'NOT_CONNECTED_BL_NOT_LOW' to power it up without touching power button:
- power on the car.
- wait 2-3 sec for static battery logo appeared.
- power off the car for 2-3 secs and you can power on/start engine right after that.
- LG will start in a few seconds.
Click to expand...
Click to collapse
When i try to copy i always get an error saying "tmp-mksh: /sdcard/chargerlogo.ini: not found" even though when i do a ls i see the file sitting there
127|[email protected]:/ $ ls -l /sdcard/
ls -l /sdcard/
drwxrwx--- root sdcard_r 2014-12-31 19:08 Alarms
drwxrwx--x root sdcard_r 2017-12-10 20:12 Android
drwxrwx--- root sdcard_r 2018-12-11 08:46 AutoGuard
drwxrwx--- root sdcard_r 2014-12-31 19:08 DCIM
drwxrwx--- root sdcard_r 2018-12-30 03:02 Download
drwxrwx--- root sdcard_r 2014-12-31 19:08 LGBackup
drwxrwx--- root sdcard_r 2014-12-31 19:08 Movies
drwxrwx--- root sdcard_r 2014-12-31 19:08 Music
drwxrwx--- root sdcard_r 2014-12-31 19:08 Notifications
drwxrwx--- root sdcard_r 2017-12-25 08:32 Pictures
drwxrwx--- root sdcard_r 2014-12-31 19:08 Podcasts
drwxrwx--- root sdcard_r 2014-12-31 19:09 Ringtones
drwxrwx--- root sdcard_r 2017-12-21 01:16 Tasker
drwxrwx--- root sdcard_r 2018-11-16 02:00 WhatsApp
drwxrwx--- root sdcard_r 2017-12-23 01:55 backups
-rwxrwx--- root sdcard_r 2925 2018-12-30 09:37 chargerlogo.ini
drwxrwx--- root sdcard_r 2017-12-10 07:13 media
drwxrwx--- root sdcard_r 2017-12-10 07:13 smartconfig
Corund said:
I spent some time trying to figure out how to make my old G3 autoboot on charger so I could use it like a navigator in a car.
So here you go:
Patient: LG G3 D850 MM 6.0 30A
Requirements: rooted device.
in a nutshell - add following bold lines into the section [INIT|_CHARGING] of the /system/vendor/etc/chargerimages/chargerlogo.ini
[INIT_CHARGING]
POWER_OFF = NOT_CONNECTED_BL_LOW
REBOOT = NOT_CONNECTED_BL_NOT_LOW
NOT_BOOT_CHARGING = CHARGING_BL_LOW
NOT_BOOT_CHARGING = NOT_CHARGING_BL_LOW
NORMAL_CHARGING = CHARGING_BL_MID
NORMAL_CHARGING = NOT_CHARGING_BL_MID
FULL_CHARGING = CHARGING_BL_MAX
FULL_CHARGING = CHARGING_FULL
FULL_CHARGING = NOT_CHARGING_BL_MAX
WARNING_TEMPERATURE_BL_LOW = COLD_OVERHEAT_BL_LOW
WARNING_TEMPERATURE_BL_NOT_LOW = COLD_OVERHEAT_BL_NOT_LOW
INSERT_BATTERY = NOT_EXIST_BATTERY
WIRELESS_NOT_BOOT_CHARGING = CHARGING_WIRELESS_BL_LOW
REBOOT = CHARGING_WIRELESS_BL_NOT_LOW
INVALID_BATTERY = INVAILD_BATTERY_BL_LOW
INVALID_BATTERY = INVAILD_BATTERY_BL_NOT_LOW
DUMMY_BATTERY = DUMMY_BATTERY_BL_NONE
REBOOT = CHARGING_BL_LOW
REBOOT = CHARGING_BL_MID
REBOOT = CHARGING_BL_MAX
REBOOT = CHARGING_FULL
REBOOT = AUTOBOOT
More detailed steps:
adb pull /system/vendor/etc/chargerimages/chargerlogo.ini ./chargerlogo.ini
add the lines into chargerlogo.ini
adb push ./chargerlogo.ini /sdcard/chargerlogo.ini
adb shell
adb su
mount -o rw,remount,rw /system
cp /sdcard/chargerlogo.ini /system/vendor/etc/chargerimages/chargerlogo.ini
reboot
btw, if you are not familiar with all that stuff, you can just simulate event 'NOT_CONNECTED_BL_NOT_LOW' to power it up without touching power button:
- power on the car.
- wait 2-3 sec for static battery logo appeared.
- power off the car for 2-3 secs and you can power on/start engine right after that.
- LG will start in a few seconds.
Click to expand...
Click to collapse
Could you please upload the "chargerimages" folder? After having flashed a ROM I do not have it :/
Folder location
Hi, I cant find this folder. My current ROM is Lingeage OS 16 android 9. Are you Know where to look tis folder? Many thanks
Thanks for sollution.
My LG G2 Mini now AutoBoot after plug charger
I use ES File Explorer to edit "chargerlogo.ini" and after save it's work perfect.
Hi. I have modified the chargerlogo.ini. Works well after battery charge is less than 100%
When the battery is at 100% the autoboot does not work.
Could someone help me to solve this problem?
Thank you
Alexander
Corund said:
I spent some time trying to figure out how to make my old G3 autoboot on charger so I could use it like a navigator in a car.
So here you go:
Patient: LG G3 D850 MM 6.0 30A
Requirements: rooted device.
in a nutshell - add following bold lines into the section [INIT|_CHARGING] of the /system/vendor/etc/chargerimages/chargerlogo.ini
[INIT_CHARGING]
POWER_OFF = NOT_CONNECTED_BL_LOW
REBOOT = NOT_CONNECTED_BL_NOT_LOW
NOT_BOOT_CHARGING = CHARGING_BL_LOW
NOT_BOOT_CHARGING = NOT_CHARGING_BL_LOW
NORMAL_CHARGING = CHARGING_BL_MID
NORMAL_CHARGING = NOT_CHARGING_BL_MID
FULL_CHARGING = CHARGING_BL_MAX
FULL_CHARGING = CHARGING_FULL
FULL_CHARGING = NOT_CHARGING_BL_MAX
WARNING_TEMPERATURE_BL_LOW = COLD_OVERHEAT_BL_LOW
WARNING_TEMPERATURE_BL_NOT_LOW = COLD_OVERHEAT_BL_NOT_LOW
INSERT_BATTERY = NOT_EXIST_BATTERY
WIRELESS_NOT_BOOT_CHARGING = CHARGING_WIRELESS_BL_LOW
REBOOT = CHARGING_WIRELESS_BL_NOT_LOW
INVALID_BATTERY = INVAILD_BATTERY_BL_LOW
INVALID_BATTERY = INVAILD_BATTERY_BL_NOT_LOW
DUMMY_BATTERY = DUMMY_BATTERY_BL_NONE
REBOOT = CHARGING_BL_LOW
REBOOT = CHARGING_BL_MID
REBOOT = CHARGING_BL_MAX
REBOOT = CHARGING_FULL
REBOOT = AUTOBOOT
More detailed steps:
adb pull /system/vendor/etc/chargerimages/chargerlogo.ini ./chargerlogo.ini
add the lines into chargerlogo.ini
adb push ./chargerlogo.ini /sdcard/chargerlogo.ini
adb shell
adb su
mount -o rw,remount,rw /system
cp /sdcard/chargerlogo.ini /system/vendor/etc/chargerimages/chargerlogo.ini
reboot
btw, if you are not familiar with all that stuff, you can just simulate event 'NOT_CONNECTED_BL_NOT_LOW' to power it up without touching power button:
- power on the car.
- wait 2-3 sec for static battery logo appeared.
- power off the car for 2-3 secs and you can power on/start engine right after that.
- LG will start in a few seconds.
Click to expand...
Click to collapse
Hello,
I reopen the post because I try to autoboot my Lg g2 mini on charger. I have add:
REBOOT = CHARGING_BL_LOW
REBOOT = CHARGING_BL_MID
REBOOT = CHARGING_BL_MAX
REBOOT = CHARGING_FULL
after "DUMMY_BATTERY = DUMMY_BATTERY_BL_NONE" but smartphone doesn't autoboot when charger is plug.
My question is: I just need to insert
REBOOT = CHARGING_BL_LOW
REBOOT = CHARGING_BL_MID
REBOOT = CHARGING_BL_MAX
REBOOT = CHARGING_FULL
in the file chargerlogo.ini, or I need to do something else?
This steps how and where can i use it? Otherwise: what they are for and where I need to use them?
adb pull /system/vendor/etc/chargerimages/chargerlogo.ini ./chargerlogo.ini
add the lines into chargerlogo.ini
adb push ./chargerlogo.ini /sdcard/chargerlogo.ini
adb shell
adb su
mount -o rw,remount,rw /system
cp /sdcard/chargerlogo.ini /system/vendor/etc/chargerimages/chargerlogo.ini
reboot
Thanks
Pumpkin_PL said:
Thanks for sollution.
My LG G2 Mini now AutoBoot after plug charger
I use ES File Explorer to edit "chargerlogo.ini" and after save it's work perfect.
Click to expand...
Click to collapse
Hi, you added just this'?
REBOOT = CHARGING_BL_LOW
REBOOT = CHARGING_BL_MID
REBOOT = CHARGING_BL_MAX
REBOOT = CHARGING_FULL
because my lg g2 mini doesn't boot automatically after charger. Any suggestion? Thanks
marco0608 said:
Hi, you added just this'?
REBOOT = CHARGING_BL_LOW
REBOOT = CHARGING_BL_MID
REBOOT = CHARGING_BL_MAX
REBOOT = CHARGING_FULL
because my lg g2 mini doesn't boot automatically after charger. Any suggestion? Thanks
Click to expand...
Click to collapse
Yes, work now. I don't know because I didn't try yet, but I think that you can try to stop charge at 99%.

Stock ROM or Update Zip for Verizon Ellipsis 8 (QTAQZ3)

I'm sorry if this isn't the best spot to post this. I haven't found a forum dedicated to this device.
I'm looking for a direct download of the stock ROM, or at least the update zip for Android 5.1.1 (or perhaps any update zip), for the Verizon Ellipsis 8 (QTAQZ3). I have soft bricked it (doesn't get past the Verizon splash/loading screen). I want to attempt to unbrick it & am not having success finding many resources. It does not have a custom recovery installed & I have not found a successful way to unbrick it yet.
It is not under warranty. I am the second owner, it was given to me (I managed to brick it within a few hours of receiving it). I have tried the following:
Launching recovery & reformatting to factory defaults & cache (multiple times).
Restarting in safe mode by holding volume down with power (does the same thing, doesn't get past splash screen).
Removing back of device & disconnecting battery (for at least an hour or more).
I'm not sure what else to do other than try to flash the original stock ROM or try re-installing the 5.1.1 update via sideload in the recovery menu. But I haven't been able to find any direct downloads for the aforementioned. If anyone has either of these, or knows where I can get one of them, I would really appreciate a link. I have looked around on Verizon's support website. I understand that the manufacturer of the device is Quanta Computer (I can't post links yet: quantatw dot com), But I couldn't find any information on this specific device from their site.
Edit: I have also read through some threads here on the XDA forums, but haven't found a working solution. I manged to brick it by using Kingo Root.
Edit: On another note, I have gone into the recovery & selected "apply update from ADB", which brings up the prompt "Now send the package you want to apply to the device with 'adb sideload <filename>'...". However, ADB on my system (Linux) is not recognizing the device:
Code:
$ adb devices
List of devices attached
$ adb shell
error: device '(null)' not found
When it is stuck on the boot/splash screen, my system recognizes it as "QTAQZ3", but cannot mount it (and ADB still does not recognize it). The error reported is "Unable to mount QTAQZ3, Unable to open MTP device '[usb:002,x]'". Though, I cannot seem to find its file under /dev.
Edit: Ah, just found its device file /dev/libmtp-2-2, which is a symlink to /dev/bus/usb/002/x ("x" changes every time I plug it in or restart it).
Code:
$ lsusb
...
Bus 002 Device x: ID 0408:3882 Quanta Computer, Inc.
...
Edit: I forgot about another thing I tried. I found this comment on Reddit: "Whats worked for me is when you do the factory reset and its stuck on that splash screen is to hold the power and both volume buttons until it turns off and then power it back on." Did not work for me though.
i have platform and firmware,test ok!
ChinaHeart said:
i have platform and firmware,test ok!
Click to expand...
Click to collapse
Can you make the firmware available?
Please I have the same problem, I tried to upgrade the system with the ota to android marshmallow but I was rooted and boom.....softbrick. There is a lot of people with the same problem
AntumDeluge said:
I'm looking for a direct download of the stock ROM, or at least the update zip for Android 5.1.1 (or perhaps any update zip), for the Verizon Ellipsis 8 (QTAQZ3). I have soft bricked it (doesn't get past the Verizon splash/loading screen). I want to attempt to unbrick it & am not having success finding many resources. It does not have a custom recovery installed & I have not found a successful way to unbrick it yet
Click to expand...
Click to collapse
I have a QTAQZ3 currently running 4.2.2. I captured the OTA url and downloaded an update bin file. I'm not exactly sure how bins compare to flashable zips, nor do I know what to do with a bin file. It seems as though this file has been hard to come by. I am hoping that by posting it, someone with the right know-how can help us fix all these bricked tablets.
https://drive.google.com/open?id=1LmyrA3eGcVL3sCMB3okBdsoqA0Gv5RZE
I've done some digging around to look for flash tools for devices that use Marvell processors. This tablet uses the Marvell PXA1088LTE. I found a download tool that is supposed to be for Marvell devices, but I've never used anything quite like it before. I've included a link to the package below. Upon installing the drivers, I was able to get my computer to recognize the device as a WTPTP device with a PXA1088 processor. The flash tool, however, uses .blf files that I've never seen before. I downloaded some firmware for a device (HiSense X8T) with the same processor as our device. I found that the program MATLAB was the only program I have access to that was able to read .blf files. The .blf for this other device looks like this inside:
Code:
[BLF_Version]
Blf_Version_Number = V2.1.0
[UE_Options]
UE_Boot_Option = 0
[Flash_Properties]
Max_Upload_Split_Size = 0x20000000
Max_FBF_Split_Size = 0x40000000
Flash_Family = eMMC
Spare_Area_Size = 0
Data_Area_Size = 0
FBF_Sector_Size = 4096
[Flash_Options]
ProductionMode = 0
Skip_Blocks_Number =
Erase_All_Flash = 0
Reset_BBT = 0
[TIM_Configuration]
Number_of_Images = 15
Number_of_Keys = 0
Boot_Flash_Signature = 0x4D4D4308
Processor_Type = PXA1920
OEM_UniqueID = 0x4f524312
Issue_Date = 0x20130115
Version = 0x00030400
Trusted = 0
[Reserved_Data]
CUST
1st Custom Value = 0x00000000
End_CUST
End_Reserved_Data
[Extended_Reserved_Data]
Consumer_ID
CID = TBRI
PID = DDR1
End_Consumer_ID
DDR_Initialization
DDR_PID = DDR1
DDROperations
DDR_INIT_ENABLE = 0x00000001
DDR_MEMTEST_ENABLE = 0x00000000
End_DDROperations
Instructions
WRITE = <0xD42828E8,0x00000003>
WRITE = <0xC0100010,0x000D0001> ;DDR_MEM_ADDR_MAP0
WRITE = <0xC0100014,0x200D0001> ;DDR_MEM_ADDR_MAP1
WRITE = <0xC0100020,0x0000A430> ;DDR_SDRAM_CFG0
WRITE = <0xC0100024,0x0000A430> ;DDR_SDRAM_CFG1
WRITE = <0xC0100050,0x900450A1> ;DDR_SDRAM_CTRL1
WRITE = <0xC0100054,0x00000000> ;DDR_SDRAM_CTRL2
WRITE = <0xC0100058,0x20808115> ;DDR_SDRAM_CTRL4
WRITE = <0xC0100060,0x03000000> ;DDR_SDRAM_CTRL7
WRITE = <0xC0100064,0x04040000> ;DDR_SDRAM_CTRL13
WRITE = <0xC0100080,0x4CDA0065> ;DDR_SDRAM_TIMING1
WRITE = <0xC0100084,0x94860345> ;DDR_SDRAM_TIMING2
WRITE = <0xC0100088,0x2038381B> ;DDR_SDRAM_TIMING3
WRITE = <0xC010008C,0x302AFC9C> ;DDR_SDRAM_TIMING4
WRITE = <0xC0100090,0x20110144> ;DDR_SDRAM_TIMING5
WRITE = <0xC0100094,0x0242418F> ;DDR_SDRAM_TIMING6
WRITE = <0xC0100098,0x00008801> ;?DDR_SDRAM_TIMING7
WRITE = <0xC0100100,0x000FF1FC> ;?EXCLUSIVE_MONITOR_CTRL
WRITE = <0xC0100220,0x00004455> ;DDR_PHY_CTRL3
WRITE = <0xC0100230,0x13300AA9> ;DDR_PHY_CTRL7
WRITE = <0xC0100234,0x03300AA0> ;DDR_PHY_CTRL8
WRITE = <0xC0100238,0x000000AA> ;DDR_PHY_CTRL9
WRITE = <0xC010023C,0x0011311C> ;DDR_PHY_CTRL10
WRITE = <0xC0100240,0x00300008> ;DDR_PHY_CTRL11
WRITE = <0xC0100248,0xF0218000> ;DDR_PHY_CTRL13
WRITE = <0xC010024C,0x80000000> ;DDR_PHY_CTRL14
WRITE = <0xC0100300,0x00000000> ;DDR_PHY_DATA_BYTE_SEL
WRITE = <0xC0100304,0x00400003> ;DDR_PHY_DLL_CTRL
WRITE = <0xC0100300,0x00000001> ;DDR_PHY_DATA_BYTE_SEL
WRITE = <0xC0100304,0x00400003> ;DDR_PHY_DLL_CTRL
WRITE = <0xC0100300,0x00000002> ;DDR_PHY_DATA_BYTE_SEL
WRITE = <0xC0100304,0x00400003> ;DDR_PHY_DLL_CTRL
WRITE = <0xC0100300,0x00000003> ;DDR_PHY_DATA_BYTE_SEL
WRITE = <0xC0100304,0x00400003> ;DDR_PHY_DLL_CTRL
WRITE = <0xC010024C,0x20000000> ;DDR_PHY_CTRL14
WRITE = <0xC010024C,0x40000000> ;DDR_PHY_CTRL14
WRITE = <0xC010023C,0x0010311C> ;DDR_PHY_CTRL10
WRITE = <0xC0100380,0x00000100> ;DDR_PHY_WL_SEL
WRITE = <0xC0100384,0x00050002> ;DDR_PHY_WL_CTRL0
WRITE = <0xC0100380,0x00000101> ;DDR_PHY_WL_SEL
WRITE = <0xC0100384,0x00050002> ;DDR_PHY_WL_CTRL0
WRITE = <0xC0100380,0x00000102> ;DDR_PHY_WL_SEL
WRITE = <0xC0100384,0x00050002> ;DDR_PHY_WL_CTRL0
WRITE = <0xC0100380,0x00000103> ;DDR_PHY_WL_SEL
WRITE = <0xC0100384,0x00050002> ;DDR_PHY_WL_CTRL0
WRITE = <0xC0100380,0x00000200> ;DDR_PHY_WL_SEL
WRITE = <0xC0100384,0x00050002> ;DDR_PHY_WL_CTRL0
WRITE = <0xC0100380,0x00000201> ;DDR_PHY_WL_SEL
WRITE = <0xC0100384,0x00050002> ;DDR_PHY_WL_CTRL0
WRITE = <0xC0100380,0x00000202> ;DDR_PHY_WL_SEL
WRITE = <0xC0100384,0x00050002> ;DDR_PHY_WL_CTRL0
WRITE = <0xC0100380,0x00000203> ;DDR_PHY_WL_SEL
WRITE = <0xC0100384,0x00050002> ;DDR_PHY_WL_CTRL0
WRITE = <0xC0100380,0x00000100> ;DDR_PHY_WL_SEL
WRITE = <0xC0100388,0x00000005> ;DDR_PHY_WL_CTRL1
WRITE = <0xC010038C,0x00000002> ;DDR_PHY_WL_CTRL2
WRITE = <0xC0100380,0x00100100> ;DDR_PHY_WL_SEL
WRITE = <0xC0100388,0x00000005> ;DDR_PHY_WL_CTRL1
WRITE = <0xC010038C,0x00000000> ;DDR_PHY_WL_CTRL2
WRITE = <0xC0100380,0x00200100> ;DDR_PHY_WL_SEL
WRITE = <0xC0100388,0x00000005> ;DDR_PHY_WL_CTRL1
WRITE = <0xC010038C,0x00000002> ;DDR_PHY_WL_CTRL2
WRITE = <0xC0100380,0x00000200> ;DDR_PHY_WL_SEL
WRITE = <0xC0100388,0x00000005> ;DDR_PHY_WL_CTRL1
WRITE = <0xC010038C,0x00000002> ;DDR_PHY_WL_CTRL2
WRITE = <0xC0100380,0x00100200> ;DDR_PHY_WL_SEL
WRITE = <0xC0100388,0x00000005> ;DDR_PHY_WL_CTRL1
WRITE = <0xC010038C,0x00000000> ;DDR_PHY_WL_CTRL2
WRITE = <0xC0100380,0x00200200> ;DDR_PHY_WL_SEL
WRITE = <0xC0100388,0x00000005> ;DDR_PHY_WL_CTRL1
WRITE = <0xC010038C,0x00000002> ;DDR_PHY_WL_CTRL2
WRITE = <0xC0100160,0x00000001> ;DDR_USER_INIT_CMD0
WAIT_FOR_BIT_SET = <0xC0100008,0x00000001,0x00001000>
WRITE = <0xC0100164,0x0302003F> ;DDR_USER_INIT_CMD1
WRITE = <0xC0100164,0x03020001> ;DDR_USER_INIT_CMD1
WRITE = <0xC0100164,0x03020002> ;DDR_USER_INIT_CMD1
WRITE = <0xC0100164,0x03020003> ;DDR_USER_INIT_CMD1
WRITE = <0xC0100160,0x03001000> ;DDR_USER_INIT_CMD0
WAIT_FOR_BIT_SET = <0xC0100004,0x00000010,0x00001000>
PP_TABLEHEADER = <0xC01001C8,0xC01001CC,0xC01001C0> ;DDR_TABLEHEADER FOR PRODUCT POINT
PP_WRITE = <0x80000000,0x0002024C,0x00000000> ;Table0 for DCLK resume from stop ([email protected])
PP_WRITE = <0x20000000,0x0000024C,0x00000020> ;Table1 for DCLK resume from stop ([email protected])
PP_WRITE = <0x40000000,0x0000024C,0x00000021>
PP_WRITE = <0x80000000,0x0002024C,0x00000022>
PP_WRITE = <0x20802115,0x00000058,0x00000040> ;DDR 156MHZ table
PP_WRITE = <0x488A0065,0x00000080,0x00000041>
PP_WRITE = <0x42330155,0x00000084,0x00000042>
PP_WRITE = <0x20161612,0x00000088,0x00000043>
PP_WRITE = <0x302A643D,0x0000008C,0x00000044>
PP_WRITE = <0x20070082,0x00000090,0x00000045>
PP_WRITE = <0x00F0E49C,0x00000094,0x00000046>
PP_WRITE = <0x00004455,0x00000220,0x00000047>
PP_WRITE = <0x13300AA9,0x00000230,0x00000048>
PP_WRITE = <0x03300AA0,0x00000234,0x00000049>
PP_WRITE = <0x000000AA,0x00010238,0x0000004A>
PP_WRITE = <0x80000000,0x0000024C,0x0000004B>
PP_WRITE = <0x00000000,0x00000300,0x0000004C>
PP_WRITE = <0x00400003,0x00000304,0x0000004D>
PP_WRITE = <0x00000001,0x00000300,0x0000004E>
PP_WRITE = <0x00400003,0x00000304,0x0000004F>
PP_WRITE = <0x00000002,0x00000300,0x00000050>
PP_WRITE = <0x00400003,0x00000304,0x00000051>
PP_WRITE = <0x00000003,0x00000300,0x00000052>
PP_WRITE = <0x00400003,0x00000304,0x00000053>
PP_WRITE = <0x40000000,0x0000024C,0x00000054>
PP_WRITE = <0x00000002,0x00020068,0x00000055>
PP_WRITE = <0x00000000,0x00000000,0x00000056>
PP_WRITE = <0x20806115,0x00000058,0x00000060> ;DDR 312MHZ table
PP_WRITE = <0x4CD40065,0x00000080,0x00000061>
PP_WRITE = <0x74650295,0x00000084,0x00000062>
PP_WRITE = <0x202C2C1B,0x00000088,0x00000063>
PP_WRITE = <0x302AC47A,0x0000008C,0x00000064>
PP_WRITE = <0x200E0103,0x00000090,0x00000065>
PP_WRITE = <0x01D1C538,0x00000094,0x00000066>
PP_WRITE = <0x00004455,0x00000220,0x00000067>
PP_WRITE = <0x13300AA9,0x00000230,0x00000068>
PP_WRITE = <0x03300AA0,0x00000234,0x00000069>
PP_WRITE = <0x000000AA,0x00010238,0x0000006A>
PP_WRITE = <0x80000000,0x0000024C,0x0000006B>
PP_WRITE = <0x00000000,0x00000300,0x0000006C>
PP_WRITE = <0x00400003,0x00000304,0x0000006D>
PP_WRITE = <0x00000001,0x00000300,0x0000006E>
PP_WRITE = <0x00400003,0x00000304,0x0000006F>
PP_WRITE = <0x00000002,0x00000300,0x00000070>
PP_WRITE = <0x00400003,0x00000304,0x00000071>
PP_WRITE = <0x00000003,0x00000300,0x00000072>
PP_WRITE = <0x00400003,0x00000304,0x00000073>
PP_WRITE = <0x40000000,0x0000024C,0x00000074>
PP_WRITE = <0x00000002,0x00020068,0x00000075>
PP_WRITE = <0x00000000,0x00000000,0x00000076>
PP_WRITE = <0x20808115,0x00000058,0x00000080> ;400MHZ DDR table
PP_WRITE = <0x4CDA0065,0x00000080,0x00000081>
PP_WRITE = <0x94860345,0x00000084,0x00000082>
PP_WRITE = <0x2038381B,0x00000088,0x00000083>
PP_WRITE = <0x302AFC9C,0x0000008C,0x00000084>
PP_WRITE = <0x20110144,0x00000090,0x00000085>
PP_WRITE = <0x0242418F,0x00000094,0x00000086>
PP_WRITE = <0x00004455,0x00000220,0x00000087>
PP_WRITE = <0x13300AA9,0x00000230,0x00000088>
PP_WRITE = <0x03300AA0,0x00000234,0x00000089>
PP_WRITE = <0x000000AA,0x00010238,0x0000008A>
PP_WRITE = <0x00000000,0x00000300,0x0000008B>
PP_WRITE = <0x00000618,0x00000304,0x0000008C>
PP_WRITE = <0x00000001,0x00000300,0x0000008D>
PP_WRITE = <0x00000618,0x00000304,0x0000008E>
PP_WRITE = <0x00000002,0x00000300,0x0000008F>
PP_WRITE = <0x00000618,0x00000304,0x00000090>
PP_WRITE = <0x00000003,0x00000300,0x00000091>
PP_WRITE = <0x00000618,0x00000304,0x00000092>
PP_WRITE = <0x20000000,0x0000024C,0x00000093>
PP_WRITE = <0x40000000,0x0000024C,0x00000094>
PP_WRITE = <0x80000000,0x0000024C,0x00000095>
PP_WRITE = <0x00000002,0x00020068,0x00000096>
PP_WRITE = <0x00000000,0x00000000,0x00000097>
PP_WRITE = <0x03020001,0x00000164,0x000000E0>
PP_WRITE = <0x03020002,0x00000164,0x000000E1>
PP_WRITE = <0x03020003,0x00000164,0x000000E2>
PP_WRITE = <0x00000000,0x00020068,0x000000E3>
PP_WRITE = <0x00000000,0x00000000,0x000000E4>
End_Instructions
End_DDR_Initialization
Image_Maps
NUM_MAPS = 3
1_Image_Map_Info
1_Image_ID = 0x54494D31
1_Image_Type = PRIMARYIMAGE
1_Flash_Address_Lo = 0x0000200000
1_Flash_Address_Hi = 0x00000000
1_Partition = 0x0
1_End_Image_Map_Info
2_Image_Map_Info
2_Image_ID = 0x54494D32
2_Image_Type = RECOVERYIMAGE
2_Flash_Address_Lo = 0x0000280000
2_Flash_Address_Hi = 0x00000000
2_Partition = 0x0
2_End_Image_Map_Info
3_Image_Map_Info
3_Image_ID = 0x54494D33
3_Image_Type = CPIMAGE
3_Flash_Address_Lo = 0x0000300000
3_Flash_Address_Hi = 0x00000000
3_Partition = 0x00000000
3_End_Image_Map_Info
End_Image_Maps
End_Extended_Reserved_Data
[Image_List]
1_Image_Enable = 1
1_Image_Tim_Included = 1
1_Image_Image_ID = 0x54494D48
1_Image_Next_Image_ID = 0x4F424D49
1_Image_Path = ntim_helan_lte.bin
1_Image_Flash_Entry_Address = 0x0000000000
1_Image_Load_Address = 0xD1000000
1_Image_Type = RAW
1_Image_ID_Name = TIMH
1_Image_Erase_Size =
1_Image_Partition_Number = 1
1_Image_Size_To_CRC_in_bytes = 0
1_Image_Hash_Algorithm_ID = SHA-160
1_Image_Image_Size_To_Hash_in_bytes = 0xFFFFFFFF
2_Image_Enable = 1
2_Image_Tim_Included = 1
2_Image_Image_ID = 0x4F424D49
2_Image_Next_Image_ID = 0x50475054
2_Image_Path = obm.bin
2_Image_Flash_Entry_Address = 0x0000020000
2_Image_Load_Address = 0xD1002000
2_Image_Type = RAW
2_Image_ID_Name = OBMI
2_Image_Erase_Size =
2_Image_Partition_Number = 1
2_Image_Size_To_CRC_in_bytes = 0
2_Image_Hash_Algorithm_ID = SHA-160
2_Image_Image_Size_To_Hash_in_bytes = 0xFFFFFFFF
3_Image_Enable = 1
3_Image_Tim_Included = 0
3_Image_Image_ID = 0x50475054
3_Image_Next_Image_ID = 0x52424C49
3_Image_Path = primary_gpt_4g
3_Image_Flash_Entry_Address = 0x0000000000
3_Image_Load_Address = 0xFFFFFFFF
3_Image_Type = RAW
3_Image_ID_Name = PGPT
3_Image_Erase_Size =
3_Image_Partition_Number = 0
3_Image_Size_To_CRC_in_bytes = 0
3_Image_Hash_Algorithm_ID =
3_Image_Image_Size_To_Hash_in_bytes =
4_Image_Enable = 0
4_Image_Tim_Included = 0
4_Image_Image_ID = 0x52424C49
4_Image_Next_Image_ID = 0x4F534C52
4_Image_Path = ReliableData.bin
4_Image_Flash_Entry_Address = 0x0000080000
4_Image_Load_Address = 0xFFFFFFFF
4_Image_Type = RAW
4_Image_ID_Name = RBLI
4_Image_Erase_Size =
4_Image_Partition_Number = 0
4_Image_Size_To_CRC_in_bytes = 0
4_Image_Hash_Algorithm_ID =
4_Image_Image_Size_To_Hash_in_bytes =
5_Image_Enable = 1
5_Image_Tim_Included = 3
5_Image_Image_ID = 0x4F534C52
5_Image_Next_Image_ID = 0x5A494D52
5_Image_Path = u-boot.bin
5_Image_Flash_Entry_Address = 0x0000400000
5_Image_Load_Address = 0x09000000
5_Image_Type = RAW
5_Image_ID_Name = OSLR
5_Image_Erase_Size = 0x00100000
5_Image_Partition_Number = 0
5_Image_Size_To_CRC_in_bytes = 0
5_Image_Hash_Algorithm_ID = SHA-160
5_Image_Image_Size_To_Hash_in_bytes = 0xFFFFFFFF
6_Image_Enable = 1
6_Image_Tim_Included = 0
6_Image_Image_ID = 0x5A494D52
6_Image_Next_Image_ID = 0x4F534C4F
6_Image_Path = recovery.img
6_Image_Flash_Entry_Address = 0x0000500000
6_Image_Load_Address = 0x01400000
6_Image_Type = RAW
6_Image_ID_Name = ZIMR
6_Image_Erase_Size =
6_Image_Partition_Number = 0
6_Image_Size_To_CRC_in_bytes = 0
6_Image_Hash_Algorithm_ID = SHA-160
6_Image_Image_Size_To_Hash_in_bytes = 0xFFFFFFFF
7_Image_Enable = 1
7_Image_Tim_Included = 2
7_Image_Image_ID = 0x4F534C4F
7_Image_Next_Image_ID = 0x5A494D47
7_Image_Path = u-boot.bin
7_Image_Flash_Entry_Address = 0x0000F00000
7_Image_Load_Address = 0x09000000
7_Image_Type = RAW
7_Image_ID_Name = OSLO
7_Image_Erase_Size = 0x00100000
7_Image_Partition_Number = 0
7_Image_Size_To_CRC_in_bytes = 0
7_Image_Hash_Algorithm_ID = SHA-160
7_Image_Image_Size_To_Hash_in_bytes = 0xFFFFFFFF
8_Image_Enable = 1
8_Image_Tim_Included = 0
8_Image_Image_ID = 0x5A494D47
8_Image_Next_Image_ID = 0x53595359
8_Image_Path = boot.img
8_Image_Flash_Entry_Address = 0x0001000000
8_Image_Load_Address = 0x00107FC0
8_Image_Type = RAW
8_Image_ID_Name = ZIMG
8_Image_Erase_Size =
8_Image_Partition_Number = 0
8_Image_Size_To_CRC_in_bytes = 0
8_Image_Hash_Algorithm_ID = SHA-160
8_Image_Image_Size_To_Hash_in_bytes = 0xFFFFFFFF
9_Image_Enable = 1
9_Image_Tim_Included = 0
9_Image_Image_ID = 0x53595359
9_Image_Next_Image_ID = 0x41524249
9_Image_Path = system.img
9_Image_Flash_Entry_Address = 0x0002000000
9_Image_Load_Address = 0xFFFFFFFF
9_Image_Type = SPARSE
9_Image_ID_Name = SYSY
9_Image_Erase_Size =
9_Image_Partition_Number = 0
9_Image_Size_To_CRC_in_bytes = 0
9_Image_Hash_Algorithm_ID =
9_Image_Image_Size_To_Hash_in_bytes =
10_Image_Enable = 1
10_Image_Tim_Included = 4
10_Image_Image_ID = 0x41524249
10_Image_Next_Image_ID = 0x47524249
10_Image_Path = HL_LTG_DL_DKB.bin
10_Image_Flash_Entry_Address = 0x0034A00000
10_Image_Load_Address = 0xFFFFFFFF
10_Image_Type = RAW
10_Image_ID_Name = ARBI
10_Image_Erase_Size =
10_Image_Partition_Number = 0
10_Image_Size_To_CRC_in_bytes = 0
10_Image_Hash_Algorithm_ID = SHA-160
10_Image_Image_Size_To_Hash_in_bytes = 0xFFFFFFFF
11_Image_Enable = 1
11_Image_Tim_Included = 4
11_Image_Image_ID = 0x47524249
11_Image_Next_Image_ID = 0x52464249
11_Image_Path = HL_DL_M09_Y0_AI_SKL_Flash.bin
11_Image_Flash_Entry_Address = 0x0035500000
11_Image_Load_Address = 0xFFFFFFFF
11_Image_Type = RAW
11_Image_ID_Name = GRBI
11_Image_Erase_Size =
11_Image_Partition_Number = 0
11_Image_Size_To_CRC_in_bytes = 0
11_Image_Hash_Algorithm_ID = SHA-160
11_Image_Image_Size_To_Hash_in_bytes = 0xFFFFFFFF
12_Image_Enable = 1
12_Image_Tim_Included = 4
12_Image_Image_ID = 0x52464249
12_Image_Next_Image_ID = 0x4E564D49
12_Image_Path = Skylark_LTG.bin
12_Image_Flash_Entry_Address = 0x00359C0000
12_Image_Load_Address = 0xFFFFFFFF
12_Image_Type = RAW
12_Image_ID_Name = RFBI
12_Image_Erase_Size =
12_Image_Partition_Number = 0
12_Image_Size_To_CRC_in_bytes = 0
12_Image_Hash_Algorithm_ID = SHA-160
12_Image_Image_Size_To_Hash_in_bytes = 0xFFFFFFFF
13_Image_Enable = 1
13_Image_Tim_Included = 0
13_Image_Image_ID = 0x4E564D49
13_Image_Next_Image_ID = 0x55535259
13_Image_Path = nvm.img
13_Image_Flash_Entry_Address = 0x0036A00000
13_Image_Load_Address = 0xFFFFFFFF
13_Image_Type = SPARSE
13_Image_ID_Name = NVMI
13_Image_Erase_Size =
13_Image_Partition_Number = 0
13_Image_Size_To_CRC_in_bytes = 0
13_Image_Hash_Algorithm_ID =
13_Image_Image_Size_To_Hash_in_bytes =
14_Image_Enable = 1
14_Image_Tim_Included = 0
14_Image_Image_ID = 0x55535259
14_Image_Next_Image_ID = 0x53475054
14_Image_Path = userdata_4g.img
14_Image_Flash_Entry_Address = 0x0059A00000
14_Image_Load_Address = 0xFFFFFFFF
14_Image_Type = SPARSE
14_Image_ID_Name = USRY
14_Image_Erase_Size =
14_Image_Partition_Number = 0
14_Image_Size_To_CRC_in_bytes = 0
14_Image_Hash_Algorithm_ID =
14_Image_Image_Size_To_Hash_in_bytes =
15_Image_Enable = 1
15_Image_Tim_Included = 0
15_Image_Image_ID = 0x53475054
15_Image_Next_Image_ID = 0x54494D31
15_Image_Path = secondary_gpt_4g
15_Image_Flash_Entry_Address = 0xFFFFFFFFFF
15_Image_Load_Address = 0xFFFFFFFF
15_Image_Type = RAW
15_Image_ID_Name = SGPT
15_Image_Erase_Size =
15_Image_Partition_Number = 0
15_Image_Size_To_CRC_in_bytes = 0
15_Image_Hash_Algorithm_ID =
15_Image_Image_Size_To_Hash_in_bytes =
I thought we may be able to edit the files and create a flashable file for this program. I initially attempted to edit the .blf file to flash backup images I have gathered from a working QTAQZ3 (running 4.2.2). The flash caused the program to crash with no results. I then attempted to flash the blf file for the HS X8T (likely not advised, but the tablet is already broken, so it was worth a shot). This flash actually responded with program errors and output this log here:
Code:
Getting type of Device
Get Device Type
---
Platform ready status: 0
Getting Version...
---
Platform ready status: 0
Version: 3307
Date: 1152013
Processor: HEL4E
Version: 3307
Date: 01152013
Processor: HELN
Open an BootLoader Device
Get type of device successfully
Enter BootLoader Thread
Enter WTPTPDownload
Begin ParseTim
ParseTim opened TIM file: C:\Users\nehem\Downloads\ONTIM_Marvell_MultiDL 1.3.0.61\temp\FBF_Ntimheader.bin, 54494D48
Number of Images listed in TIM: 2
TIM image ID list:
Begin OpenUsbPort
Original Preamble Mode
Begin DownloadImage:
---
Platform ready status: 0
DownLoading file: C:\Users\nehem\Downloads\ONTIM_Marvell_MultiDL 1.3.0.61\temp\FBF_Ntimheader.bin
---
Platform ready status: 0
Return flag in Dataheader CMD: 4,FDSwitch is 1
*******NOTE:: Fast Download is NOW activated!
uiRemainingBytes is 0....
Last Data
ReadDownloadFileThread return....
Read USB in data command
Download data finished
---
Platform ready status: 0
Begin DownloadImage:
Sending Preamble...
---
Platform ready status: 0
Getting Version...
---
Platform ready status: 0
Version: 3307
Date: 1152013
Processor: HEL4E
---
Platform ready status: 0
DownLoading file: C:\Users\nehem\Downloads\ONTIM_Marvell_MultiDL 1.3.0.61\temp\FBF_h.bin
Return flag in Dataheader CMD: 4,FDSwitch is 1
*******NOTE:: Fast Download is NOW activated!
uiRemainingBytes is 681132032....
ReadDownloadFileThread return....
Last Data
Read USB in data command
Download data finished
---
Platform ready status: 0
Enter Burning flash....
WTPTP Notification: Platform is busy 0x1
WTPTP Notification: Platform is busy ,Notification code is :0x1
WTPTP Error: InvalidSecureBootMethodError : Errorcode is 0x63
GetWtpMessage failed
Abnormal Termination in BootLoader
close BootLoader USB handle
BootLoader Thread Completed!
I'm really hoping that someone with the right knowledge might be able to decipher what's going on here.
Link for flash tool: https://drive.google.com/file/d/1Gb_erExHXMmEzWHl01qRxUdCuX_ggSQj/view?usp=sharing
njmcinty said:
I've done some digging around to look for flash tools for devices that use Marvell processors. This tablet uses the Marvell PXA1088LTE. I found a download tool that is supposed to be for Marvell devices, but I've never used anything quite like it before. I've included a link to the package below. Upon installing the drivers, I was able to get my computer to recognize the device as a WTPTP device with a PXA1088 processor.
Click to expand...
Click to collapse
Good idea/good work on this. I hadn't thought to look for a flash tool for similar devices (though I haven't tried all that hard to unbrick my tablet).
The flash tool, however, uses .blf files that I've never seen before. I downloaded some firmware for a device (HiSense X8T) with the same processor as our device.
Click to expand...
Click to collapse
Can you share the link to this firmware?
I found that the program MATLAB was the only program I have access to that was able to read .blf files. The .blf for this other device looks like this inside:
Code:
Boot_Flash_Signature = 0x4D4D4308
Processor_Type = PXA1920
OEM_UniqueID = 0x4f524312
Issue_Date = 0x20130115
Version = 0x00030400
Click to expand...
Click to collapse
It's likely just a plaintext file - just a coincidence that MATLAB wanted to digest it without complaining (guessing this is on Windows?). Anyway, it looks like it just specifies how/where to load the various images contained in the firmware you downloaded. It is may be possible to hack it to work with different firmware, but I'm worried a bit about the bits that I snipped out from above - if that Boot_Flash_Signature or the UniqueID is generated from something that is flashed on the device, it might be difficult/impossible to hack a file that will play nice with the QTAQZ3.
I initially attempted to edit the .blf file to flash backup images I have gathered from a working QTAQZ3 (running 4.2.2).
Click to expand...
Click to collapse
Do you have those backup files available? Those will be necessary in order to figure out how to hack up the blf file to properly flash the image (if that is indeed possible).
I then attempted to flash the blf file for the HS X8T (likely not advised, but the tablet is already broken, so it was worth a shot). This flash actually responded with program errors and output this log here:
Code:
Enter Burning flash....
WTPTP Notification: Platform is busy 0x1
WTPTP Notification: Platform is busy ,Notification code is :0x1
WTPTP Error: InvalidSecureBootMethodError : Errorcode is 0x63
GetWtpMessage failed
Abnormal Termination in BootLoader
close BootLoader USB handle
BootLoader Thread Completed!
Click to expand...
Click to collapse
This is somewhat promising, in that it looks like it attempted to flash, but that the system was busy. Was your device spinning at the Verizon boot screen, or sitting at the Factory Reset menu that you get when you power on while holding the volume button? If it was actually trying to boot (i.e. sitting at the Verizon screen) then that may be why this returned busy.
I must say, I never expected to hear back from anyone of this post. By now, if anyone was really that attached to their old verizon tablet, they could have bought another off ebay for $30. Nevertheless, it is nice to see there is another person who hasn't COMPLETELY given up hope on their device.
Can you share the link to this firmware?
Click to expand...
Click to collapse
Yes, eventually. It's actually on my old computer at my parent's house. I thought I had it backed-up on my OneDrive, but I do not. I'll be visiting again shortly, so I will grab it then and upload it. I would share the link to the site I originally downloaded it from, but my feverous googling escapade is no longer in my retrievable browser history.
It is may be possible to hack it to work with different firmware, but I'm worried a bit about the bits that I snipped out from above - if that Boot_Flash_Signature or the UniqueID is generated from something that is flashed on the device, it might be difficult/impossible to hack a file that will play nice with the QTAQZ3.
Click to expand...
Click to collapse
Completely valid concerns. I remember there being another device that used a similar hardware set (HP CoolPad or something, found firmware repair videos on YouTube). In the videos, people were using the same flash tool, with very similar files. The blf file from the two devices only had minor differences (eMMc size, RAM... ) if I recall correctly. If interested, I can look into those videos again. I may have made a spreadsheet at some point indicating differences in the two, but I'll have to look for it. To address your concern, I cannot recall if these identifiers were the same or different.
Do you have those backup files available?
Click to expand...
Click to collapse
Same answer as above, I'll grab them next time I am home. I can't recall what method I used to pull them, but I remember it being a pain with this device, so I hope the images I have are valid. If not, With guidance, I may be able to acquire more as I still have the working tablet.
Was your device spinning at the Verizon boot screen, or sitting at the Factory Reset menu that you get when you power on while holding the volume button?
Click to expand...
Click to collapse
Interesting question, more interesting answer: neither. If I recall correctly, to get to the stock recovery on this device, you held power and volume up. To get the device to be recognized as the WTPTP device, I had to either hold the volume down button and plug in the USB OR hold the power and the volume down, then plug in USB. Both of these may have worked, but my memory fails me. The device screen did not light up or change when I entered this mode. There was only a chime on my PC indicating a device was connected, and a listing for WTPTP device in Device Manager.
I'll work on getting the requested files, but until then, it may be helpful for me to review what I've done already. I also found some GitHub pages from that mention these devices or similar ones.
https://github.com/android-Marvell: This may contain helpful tools. I may have tried playing around with this, but I'm not a programmer and barely know what GitHub is lol.
https://github.com/jonthn4411/aabs: This is a fork of another page I found that appears to be gone know. Has information that looks like it might relate to our SoC.
PS: According to this press briefing, it looks like our SoC (PXA1088LTE) is commonly called PXA1920, so if you see any differences, this may be why.
njmcinty said:
I must say, I never expected to hear back from anyone of this post. By now, if anyone was really that attached to their old verizon tablet, they could have bought another off ebay for $30. Nevertheless, it is nice to see there is another person who hasn't COMPLETELY given up hope on their device.
Click to expand...
Click to collapse
I have been periodically checking for new info on this thing since I softbricked it in 2017 - this is the only actual promising thread I've seen the whole time... Unfortunately, I recently moved and can't locate my bricked tablet right now - honestly I may have thrown it away during the move because I've burned so much time trying to fix it. If I don't end up finding it, I'll likely burn $30+ to grab a couple non-bricked ones to play with (they weren't nearly that cheap/readily available when I bricked mine, IIRC). At this point I'm willing to shell out the cash just to claim victory over the stupid thing.
Yes, eventually. It's actually on my old computer at my parent's house. I thought I had it backed-up on my OneDrive, but I do not. I'll be visiting again shortly, so I will grab it then and upload it. I would share the link to the site I originally downloaded it from, but my feverous googling escapade is no longer in my retrievable browser history.
...
Same answer as above, I'll grab them next time I am home. I can't recall what method I used to pull them, but I remember it being a pain with this device, so I hope the images I have are valid. If not, With guidance, I may be able to acquire more as I still have the working tablet.
Click to expand...
Click to collapse
Sounds good - no rush obviously (doubt anybody else cares at this point), but it would be good to have a valid image/descriptor file to try to tear apart.
Completely valid concerns. I remember there being another device that used a similar hardware set (HP CoolPad or something, found firmware repair videos on YouTube). In the videos, people were using the same flash tool, with very similar files. The blf file from the two devices only had minor differences (eMMc size, RAM... ) if I recall correctly. If interested, I can look into those videos again. I may have made a spreadsheet at some point indicating differences in the two, but I'll have to look for it. To address your concern, I cannot recall if these identifiers were the same or different.
Click to expand...
Click to collapse
The videos could certainly be helpful. Let me know if you find those. Even if those fields are somehow generated from something on the device, we might be able to coax the flash tool into divulging the information we need - it has to know where to find the stuff, after all.
Interesting question, more interesting answer: neither. If I recall correctly, to get to the stock recovery on this device, you held power and volume up. To get the device to be recognized as the WTPTP device, I had to either hold the volume down button and plug in the USB OR hold the power and the volume down, then plug in USB. Both of these may have worked, but my memory fails me. The device screen did not light up or change when I entered this mode. There was only a chime on my PC indicating a device was connected, and a listing for WTPTP device in Device Manager.
Click to expand...
Click to collapse
Good to know! The flash failing with "device busy" makes me want to think the device wasn't in the correct state or something, but, depending on the complexity of the executable (and my ability to remember how to live-debug on Windows) we might be able to glean some more information about what's going on by tearing into the flashing program.
I'll work on getting the requested files, but until then, it may be helpful for me to review what I've done already. I also found some GitHub pages from that mention these devices or similar ones.
<URL removed>: This may contain helpful tools. I may have tried playing around with this, but I'm not a programmer and barely know what GitHub is lol.
Click to expand...
Click to collapse
Well, you seem to be more capable than many who dabble with this stuff, so I'd take that as a point of pride, despite not being a programmer I'm quite well acquainted with banging on low-level hardware stuff, so hopefully with a little more research and hackery we can get closer to a solution.
<URL removed>: This is a fork of another page I found that appears to be gone know. Has information that looks like it might relate to our SoC.
PS: According to <URL removed> press briefing, it looks like our SoC (PXA1088LTE) is commonly called PXA1920, so if you see any differences, this may be why.
Click to expand...
Click to collapse
Cool - I'll take a look at those, and maybe get a couple tablets ordered. Even if I can't get a bricked one (odd to think about wanting a bricked tablet), having a working one could very well lead to a way to unbrick them. I wish I'd seen this thread back in January, because I certainly would've kept better track of the tablet if I had
---------- Post added at 05:04 PM ---------- Previous post was at 04:39 PM ----------
If I don't end up finding it, I'll likely burn $30+ to grab a couple non-bricked ones to play with (they weren't nearly that cheap/readily available when I bricked mine, IIRC). At this point I'm willing to shell out the cash just to claim victory over the stupid thing.
Click to expand...
Click to collapse
Just ordered two tablets - one working, one with a boot loop. They were depressingly close in price for the one being damaged and non-working, but whatever. If I defeat the thing it will be worth it.
njmcinty said:
I have a QTAQZ3 currently running 4.2.2. I captured the OTA url and downloaded an update bin file. I'm not exactly sure how bins compare to flashable zips, nor do I know what to do with a bin file. It seems as though this file has been hard to come by. I am hoping that by posting it, someone with the right know-how can help us fix all these bricked tablets.
https://drive.google.com/open?id=1LmyrA3eGcVL3sCMB3okBdsoqA0Gv5RZE
Click to expand...
Click to collapse
Hi there. I'm new. Great post and questions. I too have bricked my tablet and trying to find resolution. I just downloaded your bin file. Thank you so much. Can you provide a site or pdf instruction on how to install on my tablet.
TheJokerscousin said:
Can you provide a site or pdf instruction on how to install on my tablet.
Click to expand...
Click to collapse
Unfortunately, if you look closely at the previous replies, we haven't figured out a way to install the OTA update binary onto a bricked tablet - in fact, I'm not sure if there is one. I've been waiting for the full backup that njmcinty mentioned, but they haven't gotten back about that yet. I do have a functional tablet available, along with 2 bricked ones to test on. I haven't taken the time yet to try to back up my functional one as I believe the process to do so could lead to it being bricked as well...
bxlentpartyon said:
Unfortunately, if you look closely at the previous replies, we haven't figured out a way to install the OTA update binary onto a bricked tablet - in fact, I'm not sure if there is one. I've been waiting for the full backup that njmcinty mentioned, but they haven't gotten back about that yet. I do have a functional tablet available, along with 2 bricked ones to test on. I haven't taken the time yet to try to back up my functional one as I believe the process to do so could lead to it being bricked as well...
Click to expand...
Click to collapse
Thank you. I apologize but The thread was long and I just signed up. If I come across anything I'll post. Thanks again.
Thank you @TheJokerscousin! This was the bump I needed to get these files uploaded. Sorry for the delay, I grabbed them and just never got around to uploading them! I'll include the link below. If there are any other files necessary, there's a chance I missed something, but I can add it to the upload. Sounds like we may have company as far as people interested in fixing these tablets. I'm going to try and look through my earlier notes to see if I can pick up where I left off months ago....
14.92 GB folder on MEGA
20 files
mega.nz
Thanks for uploading this! I'm downloading it now, hopefully it will prove useful.
FYI, I hadn't looked at this stuff in a while, but I did hack around a bit on Friday and I have a couple ideas (or starts at ideas, at least) to try to get a backup or OTA update flashed to the device.
I'm busy today, but I'll try and come back and list the stuff I did try, and what progress I make (if any) at some point later this week.
I may try an organize some of those files a little more cleanly. When I grabbed them, I just started dragging and dropping. The mess may be a little hard to navigate. One thing I am still looking for is a firmware I have for a device (HS-X8T). I should have it soon, and I'll add it to the drop. If I recall correctly, that Lenovo A788T device, who's firmware I included in the dump, uses the same processor as well.
No worries on the organization - I can tell what's what for the most part. I played with this a lot yesterday, and was able to get the phone tablet recognized on a Windows machine that I cobbled together, but I couldn't get the Marvell flash program to detect the phone tablet.
The Windows machine I was using totally sucks, so it was painful to try to troubleshoot the issue further. I'm gonna set up a better one this weekend and hopefully learn a little bit more.
Thanks again for providing the files. Maybe with another hundred or so hours of effort we'll be able to save a few people $30, haha.
bxlentpartyon said:
No worries on the organization - I can tell what's what for the most part. I played with this a lot yesterday, and was able to get the phone tablet recognized on a Windows machine that I cobbled together, but I couldn't get the Marvell flash program to detect the phone tablet.
The Windows machine I was using totally sucks, so it was painful to try to troubleshoot the issue further. I'm gonna set up a better one this weekend and hopefully learn a little bit more.
Thanks again for providing the files. Maybe with another hundred or so hours of effort we'll be able to save a few people $30, haha.
Click to expand...
Click to collapse
Any progress? I'm a bit out of my depth but obviously have the same issue. It's not a disaster if this never gets resolved as mentioned but it's always alluring when something is broken that needs fixed like this.
UmpquaRiver said:
Any progress? I'm a bit out of my depth but obviously have the same issue. It's not a disaster if this never gets resolved as mentioned but it's always alluring when something is broken that needs fixed like this.
Click to expand...
Click to collapse
I had played with this quite a bit a couple weeks ago, but I sort of hit a wall. I was able to get the Marvell flash tool that you provided to recognize my tablet and attempt to flash it, but I ended up hitting the exact same error that you were seeing (not super surprising).
After doing some investigation, I think that the error occurs because the flash tool sees that the previous boot had failed, so it considers the tablet to be in an invalid state for flashing. I gathered this from a Marvell document written about a similar SOC to the one used in the tablets in question.
Anyway, at this point, I think this is going to require some more significant hackery to get working. We either need to somehow trick the tool into thinking that the tablet is in a valid state (which may not even work), or we need to somehow get the tablet to write a valid boot state to its NVRAM, which would hopefully achieve the same effect. I'm writing this off the top of my head, so my wording/terminology might not be dead on. The point is, tablets stuck in a boot loop don't appear to want to flash with this tool, at least not without banging on them to some degree.
I haven't given up on this, but I also haven't had any time to work on it recently. I've got some ideas on how to move forward, but they involve tearing apart the flash tool binary and trying to get an idea of how it works, which is apparently fairly difficult on Windows. I'm pretty skilled at this sort of thing on Linux, but there seem to be very few freely available tools for this kind of stuff on Windows, and many of them are clunky, at best... I'm going to try to spend some time on this again sometime soon.
bxlentpartyon said:
I had played with this quite a bit a couple weeks ago, but I sort of hit a wall. I was able to get the Marvell flash tool that you provided to recognize my tablet and attempt to flash it, but I ended up hitting the exact same error that you were seeing (not super surprising).
After doing some investigation, I think that the error occurs because the flash tool sees that the previous boot had failed, so it considers the tablet to be in an invalid state for flashing. I gathered this from a Marvell document written about a similar SOC to the one used in the tablets in question.
Anyway, at this point, I think this is going to require some more significant hackery to get working. We either need to somehow trick the tool into thinking that the tablet is in a valid state (which may not even work), or we need to somehow get the tablet to write a valid boot state to its NVRAM, which would hopefully achieve the same effect. I'm writing this off the top of my head, so my wording/terminology might not be dead on. The point is, tablets stuck in a boot loop don't appear to want to flash with this tool, at least not without banging on them to some degree.
I haven't given up on this, but I also haven't had any time to work on it recently. I've got some ideas on how to move forward, but they involve tearing apart the flash tool binary and trying to get an idea of how it works, which is apparently fairly difficult on Windows. I'm pretty skilled at this sort of thing on Linux, but there seem to be very few freely available tools for this kind of stuff on Windows, and many of them are clunky, at best... I'm going to try to spend some time on this again sometime soon.
Click to expand...
Click to collapse
Any progress on this tablet?
I have the QTAZ3 and it's boot looped
Hello? Sorry plz, i not very good speak eng.. But, Have you made any progress in your search? It's just that there was also a problem that the above tablet simply does not pull version 5.1. So I was redirected here, from the 4PDA site. So I need at least a firmware version 4.4.4. Is there such a..?

Categories

Resources