Monthly Archives: August 2011

Today is a public holiday, got nothing to do, so I decided to install the famous custom rom CyanogenMod http://www.cyanogenmod.com/ on my one-year-old HTC Desire. There are 4 steps to install it:

Install a custom recovery image.

Install rom manager.

Create a full backup (nandroid backup).

Download and install the CyanogenMod custom rom.

1. Install a custom recovery image
To install a custom recovery image, I used unrevoked3http://www.unrevoked.com/recovery/. Read the instructions on the website, but basic steps are:

Download a shell script (I’m using the linux version).

Run it with root user.

Enable USB debugging on the phone.

Connect the phone to the computer.

Wait patiently.

For my case, the phone rebooted twice if not mistaken (i did this several months ago to gain root access but not flashing any custom rom). I succeeded in the first try. Some people will have to try a few times before flashing it successfully.

2. Install rom manager
Use the Market app to install an application called Rom Manager. First running it, it will ask you to install the ClockworkMod Recovery Image. Install it.

3. Create a full backup (nandroid backup)
Use the Rom Manager to create a full backup (nandroid backup). This backup is important. In case of something goes wrong, you’ll need this to restore your phone to its current state (running official HTC Desire rom). The backup process will actually reboot your phone into recovery mode and create the backup in your SD card. So, make sure you have some free space there. Once done, your phone will be rebooted normally. Now, I’ll copy the nandroid backup (/sdcard/clockworkmod/backup/) to my computer just in case something bad happen to my SD card later.

4. Download and install the CyanogenMod custom rom
Use the Rom Manager to download the custom rom. There is list of popular roms for you to choose from. I selected the CyanogenMod 7.0.3 (current stable). The app will download the rom and once completed, it will prompt you to:

Backup existing ROM (not selected)

Wipe Data and Cache (not selected)

Wipe Dalvik Cache (selected)

We have created a full backup, so the first option is not needed. If this is the first time you install this custom rom, you must select the second option (wipe data and cache)*. You phone will then rebooted into recovery mode and the flashing process will be started. Wait for a while and you should have your HTC Desire running Gingerbread 🙂

I’ve been playing with the new rom for the last couple of hours. Many things are much better than froyo but unfortunately, I lost all Google apps. I manage to install the Market by installing Google Apps add-on in the RomManager, but there were no Gmail, GoogleMaps and some other Google apps in the Market. GoogleMaps is the most useful Google apps so I installed the Brut version http://forum.xda-developers.com/showthread.php?t=630887 which allows me to use the navigation in my country. Another missing part was the Chinese keyboard. The default Android keyboard does not support Chinese input. Luckily, someone created a wonderfully keyboard app called MultiLing Keyboard and it is available in the Market. It has a lot of plugins. To support Chinese input via Pinyin, you’ll have to install Plugin.Chinese.Pinyin.拼音 To support hand-writing input, Plugin HanWriting is required. It is such a wonderful application. So much better than the official HTC IME keyboard (which also support pinyin and hand-writing inputs).

* I didn’t select the second option during my installation and my phone simply failed to start up after completing the whole flashing process. It kept looping at the splash screen and I had to pull the battery to stop it. Luckily, I was able to get back into the recovery mode**, wipe out all the data/cache and reflash the rom. Don’t make the same mistake I did.

** To get into the recovery mode, turn off the phone and then turn it on by holding down the volume down button. You’ll see a bootloader screen. Use volume up/down button to select recovery mode, then press the power button to activate it. The recovery mode is actually the ClockworkMod recovery image installed in step 1 or 2. With it, you can create nandroid backup, restore from a nandroid backup, install custom rom, wipe out caches and many more.

By default, cronjob will send the output of the command to the owner’s system mail box. In Linux, you can route the mail using

MAILTO=user@server.com
* * * * * /some/command.sh

in the crontab.

Some how, if I did that in Solaris, I got the following error:

MAILTO=user@server.com
crontab: error on previous line; unexpected character found in line.
crontab: errors detected in input, no crontab file generated.

So, I have to use mail aliases. First, I’ll have to edit the file

vi /etc/mail/aliases

Assume the cronjob owner is called user1 and I need to leave the cronjob result in the owner’s inbox, forward a copy to user2 and another copy to an external email address user@server.com, I’ll add the following lines to the end of the file.

user1:user1,user2,user@server.com

Then, I’ll refresh the mail system’s alias database with the following command: