[DEV] USB-BRICK FIX - Restore USB function on your bricked Desire

The Professor

Senior Member
Jan 23, 2008
272
5
0
Kubino was spot on - the misc overwrite was what caused the issue. If you modify a misc.img to include your CID and flash it back to mtd0, you will restore functionality. I can confirm that USB, BT, FM, recovery all work again on my Desire. The only thing we're not certain about is whether the ROM value in misc.img matters at all, but it doesn't appear to.

Stupid amounts of props go to IEF and adam235 at MoDaCo and kubino here. Thanks to all of you, so much.

MOD EDIT:
below is the post, as this was a combined effort, we don't need to link to modaco.....

As most of you know, people have been hard at work to fix the USB issues we've been seeing due to recovery setting us into USB debugmode.

After unsuccessful attempts to change the kernel commandline , eg. to:

board_bravo.disable_uart3=0
board_bravo.usb_h2w_sw=0

we've been successful in discovering (with the help of XDA-developers) that these switches are stored in the first NAND partition, mtd0, or 'misc'.

You must be rooted to try the following, it seems you can't write to mtd0 without root.
Do step 1 again if you have to.

Also, SD card functionality has to work. For this, do 'fastboot oem enableqxdm 0' in fastboot mode.



Steps involved:

1. Find out your CID. Go into fastboot mode, and do 'fastboot oem boot'.

The log will say something like the following:

CODE
#INFOTAG:Ramdisk OK
#INFOTAG:smi ok, size = 0
#INFOTAG:hwid 0x0
#INFOTAG:skuid 0x21F04
#INFOTAG:hero panel = 0x0
#INFOTAG:engineerid = 0x0
#INFOMCP dual-die
#INFOMCP dual-die
#INFOTAG:mono-die = 0x0
#INFODevice CID is not super CID
#INFOCID is HTC__E11


In this specific case, the CID is HTC__E11.

2. Get the following mtd0.img from the attached files below

Edit this image to the CID you found above with a hex editor.

Optionally, you can use this CID generator by stevebrush instead. Untested by me, but it should work properly.
//Edit: Updated link location for stevebrush. Thanks a ton for the generator!

3. Get flash_image from the attached files below
Move this to /data/ , and flash the modified image using:

"/data/flash_image misc /data/mtd0.img"

You can move both mtd0.img and flash_image by putting it on your sdcard, and issueing the following command in a terminal emulator:

'cat /sdcard/flash_image > /data/flash_image'
'cat /sdcard/mtd0.img > /data/mtd0.img'

You might have to do 'chmod u+x /data/flash_image' before you run the commands (or chmod 755 /data/flash_image)



4. Repeat step 3 a couple of times if it doesn't seem to work well.

5. All done! Reboot, you should have normal usb connectivity. Post your 'fastboot oem boot' log and intermediate steps if it fails.


Credits:

-kubino @ XDA for providing us with the 'misc' information
-TheProfessor @ irc.freenode.net #modaco for being the first test subject + debugging
-adam235 @ irc.freenode.net #modaco for being a test subject as well + debugging
-SgtDavePwnage @ irc.freenode.net #modaco -> moral support + debugging

-DrMon @ irc.freenode.net #modaco -> being brave enough to test on his non-bricked device!
 

Attachments

Last edited:

PascalMARTIN

New member
May 6, 2010
1
0
0
That's great news !
Good work to all !

Now that you know what the problem was, any chance to fix what was causing it in the recovery / flashing / rooting / anything process, to avoid bricking in the future (even if usb-bricking doesn't seem to be much of a problem anymore) ?
 

kubino99

Senior Member
Apr 14, 2008
244
28
0
That's great news !
Good work to all !

Now that you know what the problem was, any chance to fix what was causing it in the recovery / flashing / rooting / anything process, to avoid bricking in the future (even if usb-bricking doesn't seem to be much of a problem anymore) ?
at least we've learned how to enter debug mode on Desire :)
 

shawe_ewahs

Senior Member
Jun 20, 2009
324
15
0
People, if you have a different CID and need to hex edit the file, share here and say also for what CID is edited and for what ROM number.
 
Last edited:

mardox

Senior Member
Feb 2, 2010
69
0
0
does this fix everything? i sent my desire for repar yeserday DOH! i was just wondering if this will fix the super battery drain that happens after a brick?
 

The Professor

Senior Member
Jan 23, 2008
272
5
0
does this fix everything? i sent my desire for repar yeserday DOH! i was just wondering if this will fix the super battery drain that happens after a brick?
This fixes everything. Obviously we can't be 100% sure on battery life yet, but now that we're out of the debug mode, I can't imagine it would continue. I'll report back after a day.
 

The Professor

Senior Member
Jan 23, 2008
272
5
0
If you've flashed and not run into issues, it might be worth checking out your misc.img in a hex editor anyway just to see what state it's in. It should start with your CID and contain some other strings, including a ROM version. Make sure it's still good.
 

kubino99

Senior Member
Apr 14, 2008
244
28
0
Thats what haykuro asked me too. Is it possible to use jtag this way?
I think we can do lot of things via qualcomm diag devices but I don't know yet how :( If there is anyone who know how to use/connect the device to QPST/QXDM I'm sure we can do a lot with that.
 

alpinux

Senior Member
Feb 6, 2008
148
8
0
I think we can do lot of things via qualcomm diag devices but I don't know yet how :( If there is anyone who know how to use/connect the device to QPST/QXDM I'm sure we can do a lot with that.
I also tried to get in contact with cmonex. She (and others) did the sspl and the hspl for the htc hd2...
 

ieftm

Retired Recognized Developer
Apr 17, 2008
291
1,761
0
I'm currently working on a serial cable interface for the HTC Desire.

Unfortunately, my electronics skills are 'teh sux0rs' , so it could take while :D
 

kubino99

Senior Member
Apr 14, 2008
244
28
0
I'm currently working on a serial cable interface for the HTC Desire.

Unfortunately, my electronics skills are 'teh sux0rs' , so it could take while :D
it shouldn't be neccessary because when you enter debug mode (previous called as USB brick ;-) ) you get 3 serial devices :

Code:
Qualcomm HS-USB Modem 9002
Qualcomm HS-USB Diagnostics 9002 (COMx)
Qualcomm HS-USB NMEA 9002 (COMx)
but unfortunately I don't know about anyone who successfully connected the QPST tools.
 

alpinux

Senior Member
Feb 6, 2008
148
8
0
it shouldn't be neccessary because when you enter debug mode (previous called as USB brick ;-) ) you get 3 serial devices :

Code:
Qualcomm HS-USB Modem 9002
Qualcomm HS-USB Diagnostics 9002 (COMx)
Qualcomm HS-USB NMEA 9002 (COMx)
but unfortunately I don't know about anyone who successfully connected the QPST tools.
sorry ... wrong post
 
Last edited: