This weekend, I finally rooted my old but functional Sprint HTC Hero, and installed CyanogenMod 6.1.0 on it. Below are my notes on the process.
(Note: This post is more of a compilation than any original work of my own; I’ve tried to reference sources for the information that I present here as best as I recall; please post any links I should have included in the comments.)
I followed the instructions on the CyanogenMod Wiki (edited substantially even in the last twenty-four hours, notably). Details:
- I found it necessary to downgrade my phone to 2.27.651.5 prior to rooting with Universal Androot.
- The latest version (R08) of the Android SDK doesn’t include adb in the initial install. Instead, you need to launch the “android” binary from the “tools” subdirectory and install the “Android SDK Platform-tools” package via “Available packages”. (I’m not aware of a CLI way to do this, but that doesn’t mean one doesn’t exist.)
- The adb server needs to run as root before you connect to your device. E.g.:
adb kill-server sudo adb start-server
- Turn on the screen on your device so that you can okay using root permissions on a pop-up after you run “su” within “adb shell”. (Ref: ADB Shell SU – Permission Denied – On a Rooted Phone)
- The Wiki instructs you to use “flash_image” which you will likely need to install; see the CyanogenMod Wiki page for flash_image. Note that you will need to remount your sdcard without the noexec option:
> ./adb shell $ su # cd /sdcard # ./flash_image recovery recovery-clockwork-18.104.22.168-heroc.img ./flash_image: permission denied # chmod 755 ./flash_image # ./flash_image recovery recovery-clockwork-22.214.171.124-heroc.img ./flash_image: permission denied # 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,shortname=mixed,utf8,errors=remount-ro 0 0 # mount -o remount,exec /dev/block//vold/179:1 /sdcard /sdcard # ./flash_image recovery recovery-clockwork-126.96.36.199-heroc.img [success!] # reboot recovery