[DEV] USB-BRICK FIX - Restore USB function on your bricked Desire
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!