Experience of installing CyanogenMod to old phone

Recently, my phone (3 years old) is slower and slower. This causes me frustrated, especially if I want to use it to call urgently. Interface changed slowly, the contacts listed slowly, and my urgency becomes meaningless. So, the phone is either to be replaced with a new phone, or hack it!

My old phone, namely Samsung Galaxy S (i9000), to make it reborn, I decided to install CyanogenMod. CyanogenMod is well-known of its performance and reliability. The installation steps can be found in the wiki page.

Backup

Whatever it is, data is always the most precious. So, I backup’ed all the data in the /sdcard, which is the only partition that can be accessed in a non-rooted Android. I also used Super Backup to backup the installed apps, SMS, contacts, and others. However, the backup of the apps does not include the apps setting. Sorry to say that, all the saved states of the games will be no more. Unless I root the Android first.

Since the apps data can not be backup’ed, but only the data stored in the /sdcard can be backup’ed, thus I used other ways to backup some important data. For instance, WeChat and WhatsApp. Because the conversations are precious to me, so, I used the built-in backup function of these apps.

Preparation

Before start flashing the ROM to the phone, I downloaded all the necessary files: CyanogenMod stable version for Samsung Galaxy S, Google Apps, Heimdall suite, and ClockworkMod Recovery. Because I am using Linux, I installed android-sdk-platform-tools which contains the adb command.

Take risk

Once prepared everything, and read the whole wiki several times, so that I know what are the possible problems and issues. Then I just followed the steps from the wiki. (However, anyone who is doing this must take the risk that, you may need to throw your phone away.)

Problems

I faced many problems. Firstly, there was no “disclaimer message” for me to accept as written in the wiki. Besides that, there was no screenshot available from the wiki. Thus, when first time I entered the download mode, I am waiting for the disclaimer message.

I ignored it, so I continued to follow the steps. The next problem was the message in the console after I flash the zImage downloaded from the wiki.

ERROR: Partition “kernel” does not exist in the specified PIT.

Immediately I searched for the information, then a user from a forum mentioned to use uppercase of --KERNEL parameter. Actually it was written in the wiki, yet the wiki didn’t mention the error message as above.

After flashed the “zImage” which was downloaded from the wiki, I came to a serious problem. My phone was stuck at the pre-boot screen. There was a Samsung logo, but the phone could not boot. The “zImage” came from the Semaphore.tar in the wiki. I immediately visited to ClockworkMod webpage to search for the “recovery image“. Yet I found none of them looks like “zImage” (they are .zip files which contain some scripts and programs). Thus, I searched “Semaphore.tar” then I came to the official page. I tried other files from the official site, yet none of them works.

Then, I found some forums mentioned they have the same problem that stuck at the pre-boot screen. Finally, I read the Discussion of the wiki. It is very useful. Other users had the same problem, and they provided some information in the discussion. Consequently, I downloaded another recovery image from the discussion page of the wiki.

Then I flashed it, and the other things worked fine (some issues were mentioned in the discussion page).

Post-install

After installation, booted it, and I saw something totally different: new theme, Android 4.3, superuser, etc. Yeah!!!

So, the next thing I did was installing the Super Backup, so that I can restore all the other apps. Then restored SMS and contacts. WeChat and WhatsApp conversations were also restored. Luckily, the flashing of a ROM does not destroy the data in the /sdcard, else I need to copy the things to the phone again.

Next, I setup the Google Account and also the emails.

Then I tried to install Facebook app. Seriously, the app was slow as usual. So, I removed it immediately.

Now, I am still trying it and hopefully it has much better performance then the original ROM.

Learning in Linux community

If you are using Linux, then you are involved in the Linux community. As in the Linux community, most of the software are open source software, which is about sharing and distributing the source code among the community.

As a Linux user, I am not just learn to use the free software happily without paying money. Using the Linux is more benefit than just saving the money.

As a Linux user, I know that reading manual/documentations is important. There are a lot of questions are mostly answered in the documentations or manual. In order to find the answers, we should read the manual. If the answers are available in the manual, yet a newbie is asking in the forum, he or she will be asked to RTFM.

Internet is a good resource for the answers. Utilise the search engine and look for the solutions. Look for solutions properly before asking. Only if the solution is not available, then only we ask in the forum, IRC, or question-and-answer websites such as unix.stackexchange.com.

When using forum, IRC, or question-and-answer websites, we should practice good netiquette. Always ask politely and be grateful to the person who answers your questions. Besides that, wait patiently for the answers. It is community-based, do not expect there is 24 hours 7 days support to your problem. When asking, please provide necessary information so that others will know what is going on. When using the forum, other than netiquette, choose the related forum to post the topic. We do not ask Ubuntu related questions in Fedora forum.

Sometimes, we may see some annoying problems in a Linux distro. The problems may not be solved manually because those are the bugs. If they are bugs, we should file the bugs report properly. However, before file the bugs, please check whether the bugs are not yet reported. After file the bugs, do not expect the bugs will be solved soon or immediately. If you want to solve the problem immediately, sorry to say, you need to solve it by yourself.

Wiki is a good resource in the Linux community. It is a community-based documentation. Read them, search them, follow the instructions if available. Sometimes, the wiki is not updated or there is minor error, contribute to the wiki and update the page. Also, read the “talks” of the wiki page, which may give you some ideas about what is going on.

If you are a programmer or software developer, and if you are able to patch the bugs, then contribute the patch to the community. This will be a wonderful contribution to the community. Because this is also what you need when you found some bugs.

Some Linux distros may have limited packages available. If we need to have other packages, learn about packaging and share the packages.

As a conclusion, become a Linux user is to be involved in the open source community, which will improve your own learning ability, problem solving skills, and communication skills.