[HOWTO] DOWNGRADE to 1.31 which you can then root for Legend 2.1

Search This thread

wag3slav3

Senior Member
Sep 3, 2009
236
36
Downgrade Success!
We have a good procedure to allow a downgrade via RUU, which then allows you to use the other root methods again.

Big thanks to Joeball88 for putting in the testing time with me to get the bumps all smoothed out, and for caska who had the epiphany that we should goldcard it before RUUing.

THE SCRIPTS HAVE BEEN UPDATED MANY TIMES! Please be sure to re-download the new hack4legend-v5.zip before you start if you a returning root seeker.

You will need adb access. Install the android sdk for your platform (macos, windows, linux) get it for your OS here.

If you don't know how to install the sdk, search xda, there are a ton of howtos for that.


*updated files to hack4legend-v5.zip @ 7-19-2010 11:35AM Central*

Preliminary things to do.
Download -
hack4legend-v5.zip
RUU 1.31 for Legend

Make a goldcard, these instructions work, but you have to change mmc1 to mmc0
Another goldcard method if the first doesn't work for some reason.
Get the Android SDK (skip if you have a working adb)

Have adb in your path, or move the files contained in hack4legend-v5.zip into your sdk/tools directory so your pushes will work properly.

FOR ALL OS's Make sure your phone has Applications->Development->USB Debugging turned on.
Do NOT have your phone in Disk Drive Mode, have it in Charge Only.


Open a terminal window in your /tools/ directory. Type this at the prompt.

Code:
crackin.sh
or in Windows
Code:
crackin.bat

Your phone will reboot 5 times.

You WILL see several error messages.

Look for this line, if the crwxrwxrwx matches you are ready to downgrade

Code:
crwxrwxrwx    1 1001     2002      90,   0 Jul 19 16:19 /dev/mtd/mtd0

if it looks like this c---rw----

Code:
 c---rw----    1 1001     2002      90,   0 Jul 19 16:19 /dev/mtd/mtd0

You're not.

Power cycle your phone.

If you have trouble, clearing your phone to factory defaults may help.

Put your goldcard in.

You can now downgrade to RUU 1.31, run the RUU_Legend_HTC_WWE_1.31.405.5_R_Radio_47.26.35.04_7.05.35.26L_release_126592_signed.exe that you downloaded earlier.

After that you can follow the other root howto's for the Legend!
caska says this link is faster for the Legend root download.

If for any reason you want to put your old ROM id back in after you've ran crackin, but before you run RUU run uncrackin and it will reinstall your old ROM version number.


If you really love me and want to say thanks, donate some beer money.

 
Last edited:

acid74

Senior Member
Sep 20, 2007
135
12
(adb push ROM.zip /sdcard)
Sorry to bother,is the command above necesary ?
 

Joeball88

Senior Member
Apr 19, 2007
99
3
Toronto
www.joeball.ca
with the V1, I get

"Your phone is now rebooting in Rooted Recovery mode...

mtd: erase failure at 0x00000000 (I/O error)
mtd: erase failure at 0x00000000 (I/O error)
mtd: skipping write block at 0x00000000
..... etc....
error writing recovery: No space left on device

with the V2, I get:

c:\AndroidSDK\tools>runindos
1605 KB/s (3532800 bytes in 2.149s)
675 KB/s (76044 bytes in 0.110s)
Unable to chmod /sdcard/recovery.img: Operation not permitted
"Files copied and permissions set, rebooting HTC Andriod 2.1"
"Your phone will now reboot into normal mode, then reboot into recovery mode. I
f it does not reboot the second time, wait 10 minutes and manually reboot and be
gin again."
"Your phone is now rebooting in Rooted Recovery mode, do a backup and load your
ROMs"
error opening /sdcard/recovery.img: Permission denied
 
Last edited:

wag3slav3

Senior Member
Sep 3, 2009
236
36
with the V1, I get

"Your phone is now rebooting in Rooted Recovery mode...

mtd: erase failure at 0x00000000 (I/O error)
mtd: erase failure at 0x00000000 (I/O error)
mtd: skipping write block at 0x00000000
mtd: erase failure at 0x00020000 (I/O error)
mtd: erase failure at 0x00020000 (I/O error)
mtd: skipping write block at 0x00020000
mtd: erase failure at 0x00040000 (I/O error)
mtd: erase failure at 0x00040000 (I/O error)
mtd: skipping write block at 0x00040000
mtd: erase failure at 0x00060000 (I/O error)
mtd: erase failure at 0x00060000 (I/O error)
mtd: skipping write block at 0x00060000
mtd: erase failure at 0x00080000 (I/O error)
mtd: erase failure at 0x00080000 (I/O error)
mtd: skipping write block at 0x00080000
mtd: erase failure at 0x000a0000 (I/O error)
mtd: erase failure at 0x000a0000 (I/O error)
mtd: skipping write block at 0x000a0000
mtd: erase failure at 0x000c0000 (I/O error)
mtd: erase failure at 0x000c0000 (I/O error)
mtd: skipping write block at 0x000c0000
mtd: erase failure at 0x000e0000 (I/O error)
mtd: erase failure at 0x000e0000 (I/O error)
mtd: skipping write block at 0x000e0000
mtd: erase failure at 0x00100000 (I/O error)
mtd: erase failure at 0x00100000 (I/O error)
mtd: skipping write block at 0x00100000
mtd: erase failure at 0x00120000 (I/O error)
mtd: erase failure at 0x00120000 (I/O error)
mtd: skipping write block at 0x00120000
mtd: erase failure at 0x00140000 (I/O error)
mtd: erase failure at 0x00140000 (I/O error)
mtd: skipping write block at 0x00140000
mtd: erase failure at 0x00160000 (I/O error)
mtd: erase failure at 0x00160000 (I/O error)
mtd: skipping write block at 0x00160000
mtd: erase failure at 0x00180000 (I/O error)
mtd: erase failure at 0x00180000 (I/O error)
mtd: skipping write block at 0x00180000
mtd: erase failure at 0x001a0000 (I/O error)
mtd: erase failure at 0x001a0000 (I/O error)
mtd: skipping write block at 0x001a0000
mtd: erase failure at 0x001c0000 (I/O error)
mtd: erase failure at 0x001c0000 (I/O error)
mtd: skipping write block at 0x001c0000
mtd: erase failure at 0x001e0000 (I/O error)
mtd: erase failure at 0x001e0000 (I/O error)
mtd: skipping write block at 0x001e0000
mtd: erase failure at 0x00200000 (I/O error)
mtd: erase failure at 0x00200000 (I/O error)
mtd: skipping write block at 0x00200000
mtd: erase failure at 0x00220000 (I/O error)
mtd: erase failure at 0x00220000 (I/O error)
mtd: skipping write block at 0x00220000
mtd: erase failure at 0x00240000 (I/O error)
mtd: erase failure at 0x00240000 (I/O error)
mtd: skipping write block at 0x00240000
mtd: erase failure at 0x00260000 (I/O error)
mtd: erase failure at 0x00260000 (I/O error)
mtd: skipping write block at 0x00260000
mtd: erase failure at 0x00280000 (I/O error)
mtd: erase failure at 0x00280000 (I/O error)
mtd: skipping write block at 0x00280000
mtd: erase failure at 0x002a0000 (I/O error)
mtd: erase failure at 0x002a0000 (I/O error)
mtd: skipping write block at 0x002a0000
mtd: erase failure at 0x002c0000 (I/O error)
mtd: erase failure at 0x002c0000 (I/O error)
mtd: skipping write block at 0x002c0000
mtd: erase failure at 0x002e0000 (I/O error)
mtd: erase failure at 0x002e0000 (I/O error)
mtd: skipping write block at 0x002e0000
mtd: erase failure at 0x00300000 (I/O error)
mtd: erase failure at 0x00300000 (I/O error)
mtd: skipping write block at 0x00300000
mtd: erase failure at 0x00320000 (I/O error)
mtd: erase failure at 0x00320000 (I/O error)
mtd: skipping write block at 0x00320000
mtd: erase failure at 0x00340000 (I/O error)
mtd: erase failure at 0x00340000 (I/O error)
mtd: skipping write block at 0x00340000
mtd: erase failure at 0x00360000 (I/O error)
mtd: erase failure at 0x00360000 (I/O error)
mtd: skipping write block at 0x00360000
mtd: erase failure at 0x00380000 (I/O error)
mtd: erase failure at 0x00380000 (I/O error)
mtd: skipping write block at 0x00380000
mtd: erase failure at 0x003a0000 (I/O error)
mtd: erase failure at 0x003a0000 (I/O error)
mtd: skipping write block at 0x003a0000
mtd: erase failure at 0x003c0000 (I/O error)
mtd: erase failure at 0x003c0000 (I/O error)
mtd: skipping write block at 0x003c0000
mtd: erase failure at 0x003e0000 (I/O error)
mtd: erase failure at 0x003e0000 (I/O error)
mtd: skipping write block at 0x003e0000
mtd: erase failure at 0x00400000 (I/O error)
mtd: erase failure at 0x00400000 (I/O error)
mtd: skipping write block at 0x00400000
mtd: erase failure at 0x00420000 (I/O error)
mtd: erase failure at 0x00420000 (I/O error)
mtd: skipping write block at 0x00420000
mtd: erase failure at 0x00440000 (I/O error)
mtd: erase failure at 0x00440000 (I/O error)
mtd: skipping write block at 0x00440000
error writing recovery: No space left on device

Damn, the recovery device is a different location. Did it ever say anything about mtd mmcblk? I'm unlocking the wrong location for the flasher. Gimme a few minutes to find out which partition it wants.

You can help me out by dropping to an adb shell and doing a mount and pasting the results.

Also, if anyone has a linux box and wouldn't mind giving me an ssh shell to a legend on adb it would speed it up a bit.
 

Joeball88

Senior Member
Apr 19, 2007
99
3
Toronto
www.joeball.ca
Got a very different error msg with V2.

ADB Shell Mount Below:

c:\AndroidSDK\tools>adb shell
$ mount
mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock3 /system yaffs2 ro 0 0
/dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:1 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=
1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,s
hortname=mixed,utf8,errors=remount-ro 0 0
$
 

wag3slav3

Senior Member
Sep 3, 2009
236
36
Got a very different error msg with V2.

ADB Shell Mount Below:

c:\AndroidSDK\tools>adb shell
$ mount
mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock3 /system yaffs2 ro 0 0
/dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block//vold/179:1 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=
1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,s
hortname=mixed,utf8,errors=remount-ro 0 0
$

can I get a dmesg too? If it's too long, pastebin.com it.
 

casca

Senior Member
I just wanna say to wag3slav3 thank you for trying to help all the forgotten Legend community!i'm following this closely as I'm returning home if you guys need assistance i'll be home in 30min.will do What i can to help

Sent from my HTC Legend using XDA App
 

masterbalby

Member
Dec 31, 2007
12
0
PARIS
adb push recovery.img /sdcard/
-> OK
adb push flash_image /data/local/
-> OK
adb shell chmod 777 /sdcard/recovery.img
Unable to chmod /sdcard/recovery.img: Operation not permitted
adb shell chmod 777 /data/local/flash_image
-> OK
adb shell rm /data/local/rights/mid.txt
-> OK
adb shell ln -s /dev/mtd/mtd1 /data/local/rights/mid.txt
-> OK
adb reboot
-> OK
adb wait-for-device
-> OK
adb shell /data/local/flash_image recovery /sdcard/recovery.img
mtd: erase failure at 0x00000000 (I/O error)
mtd: erase failure at 0x00000000 (I/O error)
mtd: skipping write block at 0x00000000
mtd: erase failure at 0x00020000 (I/O error)
mtd: erase failure at 0x00020000 (I/O error)
mtd: skipping write block at 0x00020000
mtd: erase failure at 0x00040000 (I/O error)
mtd: erase failure at 0x00040000 (I/O error)
mtd: skipping write block at 0x00040000
mtd: erase failure at 0x00060000 (I/O error)
mtd: erase failure at 0x00060000 (I/O error)
mtd: skipping write block at 0x00060000
mtd: erase failure at 0x00080000 (I/O error)
mtd: erase failure at 0x00080000 (I/O error)
mtd: skipping write block at 0x00080000
mtd: erase failure at 0x000a0000 (I/O error)
mtd: erase failure at 0x000a0000 (I/O error)
mtd: skipping write block at 0x000a0000
mtd: erase failure at 0x000c0000 (I/O error)
mtd: erase failure at 0x000c0000 (I/O error)
mtd: skipping write block at 0x000c0000
mtd: erase failure at 0x000e0000 (I/O error)
mtd: erase failure at 0x000e0000 (I/O error)
mtd: skipping write block at 0x000e0000
mtd: erase failure at 0x00100000 (I/O error)
mtd: erase failure at 0x00100000 (I/O error)
mtd: skipping write block at 0x00100000
mtd: erase failure at 0x00120000 (I/O error)
mtd: erase failure at 0x00120000 (I/O error)
mtd: skipping write block at 0x00120000
mtd: erase failure at 0x00140000 (I/O error)
mtd: erase failure at 0x00140000 (I/O error)
mtd: skipping write block at 0x00140000
mtd: erase failure at 0x00160000 (I/O error)
mtd: erase failure at 0x00160000 (I/O error)
mtd: skipping write block at 0x00160000
mtd: erase failure at 0x00180000 (I/O error)
mtd: erase failure at 0x00180000 (I/O error)
mtd: skipping write block at 0x00180000
mtd: erase failure at 0x001a0000 (I/O error)
mtd: erase failure at 0x001a0000 (I/O error)
mtd: skipping write block at 0x001a0000
mtd: erase failure at 0x001c0000 (I/O error)
mtd: erase failure at 0x001c0000 (I/O error)
mtd: skipping write block at 0x001c0000
mtd: erase failure at 0x001e0000 (I/O error)
mtd: erase failure at 0x001e0000 (I/O error)
mtd: skipping write block at 0x001e0000
mtd: erase failure at 0x00200000 (I/O error)
mtd: erase failure at 0x00200000 (I/O error)
mtd: skipping write block at 0x00200000
mtd: erase failure at 0x00220000 (I/O error)
mtd: erase failure at 0x00220000 (I/O error)
mtd: skipping write block at 0x00220000
mtd: erase failure at 0x00240000 (I/O error)
mtd: erase failure at 0x00240000 (I/O error)
mtd: skipping write block at 0x00240000
mtd: erase failure at 0x00260000 (I/O error)
mtd: erase failure at 0x00260000 (I/O error)
mtd: skipping write block at 0x00260000
mtd: erase failure at 0x00280000 (I/O error)
mtd: erase failure at 0x00280000 (I/O error)
mtd: skipping write block at 0x00280000
mtd: erase failure at 0x002a0000 (I/O error)
mtd: erase failure at 0x002a0000 (I/O error)
mtd: skipping write block at 0x002a0000
mtd: erase failure at 0x002c0000 (I/O error)
mtd: erase failure at 0x002c0000 (I/O error)
mtd: skipping write block at 0x002c0000
mtd: erase failure at 0x002e0000 (I/O error)
mtd: erase failure at 0x002e0000 (I/O error)
mtd: skipping write block at 0x002e0000
mtd: erase failure at 0x00300000 (I/O error)
mtd: erase failure at 0x00300000 (I/O error)
mtd: skipping write block at 0x00300000
mtd: erase failure at 0x00320000 (I/O error)
mtd: erase failure at 0x00320000 (I/O error)
mtd: skipping write block at 0x00320000
mtd: erase failure at 0x00340000 (I/O error)
mtd: erase failure at 0x00340000 (I/O error)
mtd: skipping write block at 0x00340000
mtd: erase failure at 0x00360000 (I/O error)
mtd: erase failure at 0x00360000 (I/O error)
mtd: skipping write block at 0x00360000
mtd: erase failure at 0x00380000 (I/O error)
mtd: erase failure at 0x00380000 (I/O error)
mtd: skipping write block at 0x00380000
mtd: erase failure at 0x003a0000 (I/O error)
mtd: erase failure at 0x003a0000 (I/O error)
mtd: skipping write block at 0x003a0000
mtd: erase failure at 0x003c0000 (I/O error)
mtd: erase failure at 0x003c0000 (I/O error)
mtd: skipping write block at 0x003c0000
mtd: erase failure at 0x003e0000 (I/O error)
mtd: erase failure at 0x003e0000 (I/O error)
mtd: skipping write block at 0x003e0000
mtd: erase failure at 0x00400000 (I/O error)
mtd: erase failure at 0x00400000 (I/O error)
mtd: skipping write block at 0x00400000
mtd: erase failure at 0x00420000 (I/O error)
mtd: erase failure at 0x00420000 (I/O error)
mtd: skipping write block at 0x00420000
mtd: erase failure at 0x00440000 (I/O error)
mtd: erase failure at 0x00440000 (I/O error)
mtd: skipping write block at 0x00440000
error writing recovery: No space left on device
 

wag3slav3

Senior Member
Sep 3, 2009
236
36
adb push recovery.img /sdcard/
-> OK
adb push flash_image /data/local/
-> OK
adb shell chmod 777 /sdcard/recovery.img

adb shell chmod 777 /data/local/flash_image
-> OK
adb shell rm /data/local/rights/mid.txt
-> OK
adb shell ln -s /dev/mtd/mtd1 /data/local/rights/mid.txt
-> OK
adb reboot
-> OK
adb wait-for-device
-> OK
adb shell /data/local/flash_image recovery /sdcard/recovery.img

Can you try running it again with ln -s /dev/mtd/mtd0?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    Downgrade Success!
    We have a good procedure to allow a downgrade via RUU, which then allows you to use the other root methods again.

    Big thanks to Joeball88 for putting in the testing time with me to get the bumps all smoothed out, and for caska who had the epiphany that we should goldcard it before RUUing.

    THE SCRIPTS HAVE BEEN UPDATED MANY TIMES! Please be sure to re-download the new hack4legend-v5.zip before you start if you a returning root seeker.

    You will need adb access. Install the android sdk for your platform (macos, windows, linux) get it for your OS here.

    If you don't know how to install the sdk, search xda, there are a ton of howtos for that.


    *updated files to hack4legend-v5.zip @ 7-19-2010 11:35AM Central*

    Preliminary things to do.
    Download -
    hack4legend-v5.zip
    RUU 1.31 for Legend

    Make a goldcard, these instructions work, but you have to change mmc1 to mmc0
    Another goldcard method if the first doesn't work for some reason.
    Get the Android SDK (skip if you have a working adb)

    Have adb in your path, or move the files contained in hack4legend-v5.zip into your sdk/tools directory so your pushes will work properly.

    FOR ALL OS's Make sure your phone has Applications->Development->USB Debugging turned on.
    Do NOT have your phone in Disk Drive Mode, have it in Charge Only.


    Open a terminal window in your /tools/ directory. Type this at the prompt.

    Code:
    crackin.sh
    or in Windows
    Code:
    crackin.bat

    Your phone will reboot 5 times.

    You WILL see several error messages.

    Look for this line, if the crwxrwxrwx matches you are ready to downgrade

    Code:
    crwxrwxrwx    1 1001     2002      90,   0 Jul 19 16:19 /dev/mtd/mtd0

    if it looks like this c---rw----

    Code:
     c---rw----    1 1001     2002      90,   0 Jul 19 16:19 /dev/mtd/mtd0

    You're not.

    Power cycle your phone.

    If you have trouble, clearing your phone to factory defaults may help.

    Put your goldcard in.

    You can now downgrade to RUU 1.31, run the RUU_Legend_HTC_WWE_1.31.405.5_R_Radio_47.26.35.04_7.05.35.26L_release_126592_signed.exe that you downloaded earlier.

    After that you can follow the other root howto's for the Legend!
    caska says this link is faster for the Legend root download.

    If for any reason you want to put your old ROM id back in after you've ran crackin, but before you run RUU run uncrackin and it will reinstall your old ROM version number.


    If you really love me and want to say thanks, donate some beer money.

    1
    Think the hack needs updating as the Froyo update will be slightly different to previous builds.

    Guess I'm right :) - Find guide at modaco for this - thanks paul (and the dude who pm'd me this link!)

    http://android.modaco.com/content/htc-legend-legend-modaco-com/323201/downgrading-from-froyo-ota/

    thanks a lot - that saved my day, and absolutly works! i had latest ota update (german/euro 3.14) and crackin.bat produced the error at then end!

    btw: hacking a legend for a friend is so much more screwed up then my simple desire hacking :)
    1
    Look for the "how to root hboot 1.01" thread...
    1
    1. Connect the phone in charge only mode.

    2. run crackin.bat

    3. even if you end up with the cr--rw---- download and install modaco visionairy apk

    4. temproot phone.

    5. in cmd, type adb shell, then ''su'' and accept super user permissions on phone
    You should see a # <this means you have the permissions.

    6. in cmd, type: /data/local/flash_image misc /data/local/misc1-2.img

    7. run the RUU again. it should work now.

    Thanks to: http://android.modaco.com/content/htc-legend-legend-modaco-com/323201/downgrading-from-froyo-ota/ (the apk can be found here)

    good luck :)
    1
    Make sure you are using a regular SD card (2GB) and not SDHC. This will give you a better chance of having a goldcard that works.