How is RO permission set for NV (NAND) memory addresses? - Windows Mobile Development and Hacking General

I've been experimenting with Qualcomm QXDM (Extensible Diagnostic Monitor) on my Hermes. Specifically, I'm trying to change NV memory settings. A few days ago I changed some NV settings (programming it to be able to be in DIAG mode and MODEM mode simultaneously) but, as is my luck, I bricked my phone into the brickiest brick that ever was bricked. Only solution to fix was via JTAG, so instead I brought it to the ATT service center and they sent me a new one (in less than 24 hours, I might add).
Anywho, certain addresses in the NAND memory are set as read-only, and any attempt to change them results in an error. Any idea of the mechanism that does this? Can the permissions be changed without resorting to jtag?
fluxist

Related

HTC Hermes JTAG pins

Hi,
it's done!!!
Today i discovered the JTAG pins of HTC hermes.
My device got bricked and was not able to boot anymore. Not even the bootlader came up.
Anyway i decided to do some investigation, there was nothing to loose
Thanks to Lt.Cmdr.Ivan who discovered the JTAG pins on the universal hardware.
(It made the step successful!!!)
See the attachment!
(had to make a zip because high-resolution pix )
These are the testpoints to access Hermes main system Samsung MPU and recover OS bootloader!
To get access to the GSM chipset please have a look in the second post!
You may use this package to access the platform.
http://210.118.57.197/Products/Semi...or/ARM9Series/SC32442/JtagFlash_Prog_Code.zip
EDIT: If the link is not working, see attachment (backup package form samsung site, source code included)
See the documentation in the archive for information how to build a LPT adaptor, to use this software!
EDIT: The software tool has been modified to handle the /WP issue.
See attachment MSP_HERM.zip!
What ever happens to IPL/SPL on your device, it can be recovered quite easily now, using the JTAG method!
EDIT: Added Olipro's 2.10 (Hard-SPL V7) for completeness.
This is a pure binary file, ready to flash via JTAG. Thanks again to olipro for this beautiful bunch of bits!!
EDIT: Due to the numerous questions of some users how to go through this, here's what has already been written down all over the thread.
Follow these steps:
1. Disassemble your device (link to the Hermes Service-Manual is in the wiki).
2. Locate the JTAG pins on PCB (download/extract htc_hermes_jtag.zip -> look at the picture)
3. Use a very small soldering iron and attach some wires to the testpoints (only experienced users should do this!)
4. Use one of the wiggler clones (LPT-adaptor) to built up a connection to the JTAG pins using LPT port of your host pc.
Please have a look in the software documentation for the schematics (JtagFlash_Prog_Code.zip -> Source files and doc included).
Whatever your adaptor would look like, follow the pin assignment, that is used in the schematic (e.g. LPT pin 2 -> TCK, LPT pin 3 -> TDI, LPT pin 4 -> TMS, LPT pin 11 -> TDO)
5. Partly assemble your device and insert fully charged battery. Check all connections and press and hold power button on hermes (min 2sec.).
Though the device won't start if your bootloader is bricked, this step is necessary to activate internal power supply.
To check if power is O.K. measure the VCC pad (VCC ~ 3.15V).
6. Use the modifed samsung software on your host (download/extract MSP_HERM.zip -> MSP_HERM.exe is a command line tool)
Please make sure that the processor is recognized. If not check all connections again!
7. Grab IPLSPL210_OLIPRO.zip, extract it and put the file the directory where flashing software is located.
8. Use flashing software (MSP_HERM.exe) and try to reflash your NAND.
type: MSP_HERM.exe /f:IPLSPL210_OLIPRO.bin
type: 1 to choose the flash type
NAND flash type on hermes is k9f1g08 and should be recognized
type: 0 K9f1g08 Program
Start page and block must be set to 0
9. Be patient and cross fingers while flash is programmed.
Alternatively you may grab some coffee or beer and relax!
10. Enjoy the rebirth of your device.
Credits:
A warm and healthy "Thank you!" goes out to pof, cmonex, cr2, the_dipe and the others who gave useful hints or helped testing.
Regards,
scholbert
HTC Hermes GSM JTAG pins
Hi again,
after a lot of wicked things had been done with my device, i decided to lift another secret.
Anyway i spent some time to do some investigation and managed to trace the JTAG testpins of the GSM chipset on the hermes!
So it's done!
To be 100% secure, this has again to be verified with some software.
Work is in progress!
To solve the "noGSM" issue we need a bullet proof flash tool to rewrite the radio bootloader.
Hopefully we could get the necessary information to do so!
Maybe someday all these "no GSM" devices could be brought to life again...
at least if it's software related issue (e.g. broken Radio bootloader)!!!
See the attachment for the pin location!
(had to make a zip because high-resolution pix)
These are the testpoints to get access to the Qualcomm GSM chipset and possibly fix broken radio bootloader!
Information about missing signals
TRST_N = could not be found (seems to be N.C.)
RTCK = could not be found (will only be needed for special debugger)
Mode0 = N.C.
We need your help!
If anyone got information about the JTAG chain of MSM6275 (BSDL file) or similar info, please PM me!
scholbert
I have used JTAG on my linksys router when I bricked it.
It's actually pretty easy to make a cable for JTAG and uploading a ROM.
Did you actually manage to revive your tytn?
Flash access
Hi,
it seems to work fine with the program from the samsung site.
I just flashed IPL & SPL to my device.
See the screenshot
scholbert
thanks for this ill look into this. im still trying to figure out which part messed up on my phone. no power anymore not even charge light. dead. hardware? i think i burnt a capacitor coz it died while charging/connected to usb. Also i just flashed a radio rom but it was successful... before it died out. is yours the same case that it did not even show life of accepting power? thanks.
i was looking at the schematics and i think i need a technician for that but if i can revive my dead phone using that since im going to try and find the messed up capacitor anyway, ill learn and research.
Congratulations!! this is a great and useful finding
Thanks
Hi again,
thank you for adding a link to this thread in the wiki!
Unfortunately my device still won't start
There maybe anything else broken.
Anyway, the JTAG thing worked very smart, programming is quite slow though.
O.K. but that's the bit banging (i just remember, once flashed an image to the skeyepad and it took nearly half a day using an LPT adaptor).
sphynx88 said:
i was looking at the schematics and i think i need a technician for that but if i can revive my dead phone using that since im going to try and find the messed up capacitor anyway, ill learn and research.
Click to expand...
Click to collapse
@sphynx88:
What schematic are you talking about???
Do you got a schematic for hermes???
Regards,
scholbert
Scematic
Hello sphynx88,
do you have a scematic of Hermes? I'm an technican and I'm used to JTAG programming. So if you have the scematic and I can have a look at it, perhaps I can help you bringing your hermes up again.
Greetings Pudl
More info
Hi,
first i'll have to quote myself:
scholbert said:
it seems to work fine with the program from the samsung site.
I just flashed IPL & SPL to my device.
Click to expand...
Click to collapse
There are some problems with rewriting flash on my device.
After some more investigation, i found out that my device still got OLIPRO'S IPL (version 1.04) but SPL is not HARD-SPL anymore (version 2.10 "Hard-SPL")
SPL was rewritten to original bootlader (version 1.04).
I made some memory dumps using the JTAG tools and compared the output with the binary files.
IPL and SPL do not match, that's why my device is not booting anymore.
For some reason i am not able to rewrite IPL with the samsung programmer.
There are no errors, everythings seems nice, but IPL remains unchanged after programming. No idea why
Maybe there's something special on hermes hardware, that protects NAND to be rewritten per default.
O.K., now that i found out what's wrong with my device, i'll have a look in the programmers source code, to understand what's going on.
I'll keep you informed about my progress
scholbert
...after having a look around, i'm quite sure that my flash is kind of blocked.
This maybe caused by damaged hardware .
If anyone would try to flash some bits to his damaged hermes, please let me know.
This would clear up if the the software provided by Samsung may be used to flash the hermes hardware and fix broken bootloaders.
At least flash content can be read out via JTAG, that's proven .
scholbert
I have bricked my hermes too.
I will try to flash IPL and SPL with the JTAG programmer.
How can I build a bin file for the programmer from an official RUU_signed.nbh or from the extracted 00_IPL.nb and 01_SPL.nb?
Hi,
bauner said:
I have bricked my hermes too.
I will try to flash IPL and SPL with the JTAG programmer.
How can I build a bin file for the programmer from an official RUU_signed.nbh or from the extracted 00_IPL.nb and 01_SPL.nb?
Click to expand...
Click to collapse
It's sad that your Hermes got bricked .
Maybe it will be the first device revived by JTAG flashing.
Here we go:
00_IPL.nb and 01_SPL.nb are already binaries.
Refer to the memory map in the wiki to know where the contents have to be placed.
So you might flash them seperately or build one file to flash (see attachment).
To make it easier have a look in this slightly modified table, it shows the block numbers of NAND flash ( :
Code:
------------------------------------------
0x50000000 Page0
Block0 IPL
0x5001ffff Page63
------------------------------------------
0x50020000 Page0
Block1 SPL
0x5003ffff Page63
------------------------------------------
0x50040000 Page0
Block2 SPL
0x5005ffff Page63
------------------------------------------
0x50060000
... not used
0x5009ffff
------------------------------------------
0x500a0000 Page0
Block5 CID, S/N
0x500bffff Page63
------------------------------------------
0x500c0000 Page0
Block6 WLAN
0x500dffff Page63
------------------------------------------
0x500e0000 Page0
Block7 MainSplash
0x500fffff Page63
------------------------------------------
0x50100000 Page0
Block8 MainSplash
0x5011ffff Page63
------------------------------------------
0x50120000
...
Good luck !!!!
scholbert
Thanks a lot for your help I flashed my IPL/SPL an now my hermes is working again
Hey
bauner said:
Thanks a lot for your help I flashed my IPL/SPL an now my hermes is working again
Click to expand...
Click to collapse
Congratulations!!!!
So everything went fine using the provided tools?
Did you use a wiggler (clone) for the job?
Best regards,
scholbert
yes everything worked fine with this tools.
I used this Interface:
Holly Gates' Schematics for the JTAG Dongle
Im sorry to have replied for so long but i gave up on my hermes and have not been checking. ill subscribe to this thread. After crazy searching and one site leading to another i did find what i think was schematics for the hermes. a service manual. it was in chinese and i couldnt understand it but i saw one for my samsung one which was in english and i think it really is the service manual with schematics. ill try and retrace my tracks. cross fingers.
anyway, in my case, the phone died. not bricked. something inside short circuited. it was on and charging via usb then the next thing when it reached 100 coz i was pretty sure it was 90 the time i started installing apps, it just died. no turning on, no nothing not even the rlod. i opened the case and i think there might be a fuse to the left of the charger entry, maybe changing it would simply fix the whole problem. i dont know but hopefully my cpu isnt broken so i may even have two phones.
JTAG flashing proven, my device definitely broken
Hi,
...anyway, in my case, the phone died. not bricked. something inside short circuited.
Click to expand...
Click to collapse
same with my second device, sphynx88.
Something hardware related is damaged.
I may use the flash tool a 1000 times, the flash seems unaccessable for programming. Maybe the WP-pin stucks to GND on my device
Anyway it's nice to access the device via JTAG, also debuggers may be used
Have fun!
scholbert
I know what's wrong
Hi again,
can't stop my investigation and like to bring my dead hermes to life!
I started to look around and i found the WP testpoint
So i made sure what i assumed, the WP pin of flash is tied to ground.
This prevents NAND flash to be rewritten -> write protection!
I made some further measurements and found out, that there must be a general purpose pin responsible for this function. Obviously this pin is set low during basic setup, maybe it's done in IPL (after reset all pins are tied low by internal resistors).
The only way to find out which pin is responsible for write protection, is to set some of the GP output pins to high level and and measure the voltage level at the testpoint (maybe it's GPC4 because it's very close to WP).
So this goes out to pof or olipro who already done a lot reverse engineering on this platform
Any idea which pin is used for NAND write protection on hermes????
Regards,
scholbert

Fixing dead WLAN by reflashing EEPROM

Hi there,
i guess i messed up my EEPROM, as i can't connect to any (secured AND unsecured) WLAN. I flashed many roms, so i can't say when it happened. I read about fixing WLAN by flashing EEPROM / fixing MAC in it. There's a walkthrough for Hermes, Prophet and Athena, but nothing for the Wizard It would be great if someone could provide some infos on how to fix WLAN on a Wizard device. I'm familiar with mtty and such. Any help is much appreciated!
Best regards,
SpeedCore
I tried to find out, if i accidently erased the EEPROM by doing the procedure mentioned here: http://forum.xda-developers.com/showthread.php?t=299451
But it doesn't recognize the command "task 32" Maybe there are other commands for the wizard? How can i find out if i have the "no EEPROM no WLAN" issue?

[Q] Partially bricked Universal

Hi everyone! This is my first post and I would like to thank You all for great job done on this forum, I'm rather beginner but already gathered a lot of knowledge by reading various posts
My first post will be about HTC Universal, that came to me few days ago. From first look it's an amazing piece of hardware and I would like to make it working, because (obviously) it is not
Uni's characteristics:
Black O2 XDA Exec
NAND Flash - DiskOnChip G4
Uni's behaviour:
after turning on is showing bootloader screen with some artifacts and following info:
R 1.17.00
G 42.53.P8
O D. 08.81 TML
can access bootloader menu (three yes/no settings, KITL) - same artifacts are here too
combination of backlight+power+reset gives black screen
hard reset doesn't change anything, screen with O and X is ok, with no artifacts
device is not recognized by PC so I cannot flash it (dev 0000, ven 0000 on windows / cannot enumerate on linux) - USB transmit lines are ok because situation changes after choosing KITL mode (every other is unrecognized)
Already done:
I thought it may be damaged USB port, but I succesfully managed to make it work after choosing KITL mode from bootloader menu (backlight? + reset). It doesn't accept any commands through mtty but at least installed in windows as HTC Sync Device (not remember correctly?) and showed some prompt in console (KITL$ ?).
I didn't really know what KITL is so i googled for other methods of unbricking and found amazing discussion between scholbert and roglio in topic about rescuing uni from scratch via JTAG. So I remodelled my adapter to the same as Wiggler2 and connected to mainboard. However, my situation, if I understand correctly, is not the same as scholberts or roglios was. I have working IPL and partially working SPL, that is, I think I have
Is there any method of writing SPL into ram and running it in this situation? Maybe then USB will be working and let me flash new firmware? I found solutions like this for some other HTCs but I don't really know how to load something into RAM, because it looks like it is unaccessible at the moment (errors in openocd, zeroes readed by urjtag). I'm working with newest openocd version, it recognizes PXA270 without problem, same as urjtag.
Or is it possible to restore Uni via KITL mode? Maybe I try to download software required in topic about Hermes and run it at some free time, but I have to connect my old windows box to internet
I'll be very thankful for every answer and I hope that this Uni will work once again
P.S.: I'm sorry if some of statements are not understoodable, I lack possibility of using english daily and practicing it, so my english is little poor
Best Regards, Karol
#------
Ah, yes, I forgot. Not black screen after combination of backlight+power+reset, but Serial + v2.01. Does not react to USB. If I connect USB first, then reset, it's "USB v2.01" - device not recognized. The same with SD card inserted -> reset -> "USB v2.01" -> took card -> unrecognized...
Welcome to forums,
Have a read on the thread just above this one, you´ll find almost all you need
Hi!
Thank You for your answer. I have already read this and other topics regarding "stuck at bootloader" and other problems, and tried all the provided solutions, with no luck
The main problem is usb not working properly. I'd rather not suspect hardware damage, because it works in KITL mode.
#---
I've done some more research. Downloaded and installed Platform Builder, and following instruction for hermes (changing only processor type) tried to run system through KITL, but with no success, image (awfully small - about 900kB) was downloaded to device, but there was no answer from it - KITL screen have not changed.
After few tries I focused on another method - based on tomal's SDFlash_G3. I took 416 byte header found later in topic about SDFlash (OllieD's) and connected it with decrypted official nk.nbf image from O2 and later with one from tomal's rom.
My device was reacting kind of strange while trying to recognize rom from card. For first, it haven't tried at all, not until I !removed! MMC card! (instead of this later I was hovering the sd card slot pin responsible for card detect).
Then, there was two scenarios:
first, when I took card too fast after entering bootloader, it showed message about too short rom
second, where I waited some more seconds, it showed error about sections=1 and not allowing to update
So I searched about this section=1 error and found that it is incompatibility between 416 byte header and rom image - header points that there should be more sections in rom, but there is only one.
Don't really know how to change it, is there any documentation about header structure?
In topic about SDFlash_G3 there was mentioned that this method is "without 2nd device", but I haven't found anything about "with 2nd device", is it worth giving a try?
Can someone provide me with mmc/sd card image (compressed of course) with backup from G4 Universal device done with d2s command?
I'll be very thankful for any help.
Best regards, Karol

SOLVED: FAKE IMEI after flash, shows 00000000

Hello all,
as title today flashed my phone to get new 7.8 dynamic rom
flash goes well
but after hard reset the phone shows invalid sim card
and imei shows 000000000 (code *#06#)
any idea?
i found a guide here to use QPST but is for samsung SIII
and the 8700 have different engineering menu code...
Please save me ((
***SOLVED***
the solution is app diagnosis
enter in diagnosis dialling the code ##634##
then *#7284#
and select
Modem, Usb Diag
restart the phone and follow the guide here
thanks to Hero for the guide
This may be little bit nooby but discussing on flashing imei's is not a bit illegal-ish? It's not like jailbreaking or any kind of alteration don't you think?
i think so,
in fact i posted a link and not the entire guide
... in any case, it's not so easy to change the imei on your phone and make it functionally.
you need an imei code there is not in use in your country by another phone
and an imei phone a phone like yours according with product type.
there is a function called:
"auto provisioning"
you see you receive, with some carriers, automatic mms and internet configuration at first access?
gsm cell identify and decrpt your imei and give this info to carrier.
hope this can helps

[Q] QXDM issue now...

Working on the LTE bands (VZW s5 -> ATT sim). I was able to get QPST to see my s5 and perform a back up. The QPST Programmer can also see and read from my phone.
The problem is I launch QXDM (as admin) and it doesn't connect through. Just states "No Connection". All of the ID's on the NV Browser are greyed out. I have been unable to find anything like this so far and was wondering if anyone else had the same issue and was able to fix it. If I find the fix I'll reply here with what I found.
QxDM Production build 03.12.714
I would have asked in the QPST thread but it was locked.
Found it but just in case...
"File > Load Items" gives you the screen to connect into your device.

Categories

Resources