Monday, 23 December 2013

Get a high end phone for a fraction of the cost

Photo by Illythr
If you want a high end phone, I see three alternatives:
  • Buy a high end phone (expensive)
  • Get a Chinese android based phone. You can usually get an equivalent of e.g. a high end / flagship Samsung for half the price. There are numerous options and a good investigation is needed as quality of build and stability vary a lot.
  • Get the previous high end phone from a big brand (e.g. Samsung Galaxy S3 by the end of 2013 when the S4 is under the spotlight) and flash it with an alternative rom such as Cyanogenmod.
Here we're going to investigate the third option. Here is why:
  • Flagship phones cost a lot but as soon as a manufacturer puts a new high end phone on the market, the price of the previous model suddenly drops.
  • Chinese phones are really cheap but a thorough investigation is needed to find a good one. Since each model is produced in smaller quantities, you get smaller communities working on updates (and support).
  • Stock roms (original version of Android installed on the phone) are usually loaded with bloatware (useless software pre-installed by the manufacturer) and not always state of the art android (to get you to buy the new version).
  • Finally, I suspect big manufacturers to plan the obsolescence of their phones using various techniques to speed up the decrease of performance over time.
It is therefore my opinion that you will be better off with a custom rom on a last generation flagship phone than you would ever be with a brand new one (more expensive and the stock rom is usually slower) or a Chinese one (rom less optimised and less updates / community support).

Disclaimer

The information on this page is given as is. I provide no guarantee and take no responsibility for whatever could happen to your phone.
You should also know that your phone warranty will be void after applying any of these steps.

Prerequisites

Get the Galaxy SIII international (GT-i9300)

If you don't allready have it, buy one from Amazon.com (or Amazon.de). At the time I purchased it, I looked around on online stores delivering to Europe (Belgium) and the best deal I found was on Amazon.de, but please check at your usual store as prices tend to change over time (and if you find a better deal, please let me know).

Download latest stable Cyanogenmod & gapps

First of all we're going to download the latest sable Cyanogenmod rom for the Samsung Galaxy S III international (I9300) as well as the corresponding Google apps (on the table at the top of the page, you will find the right download link corresponding to your Cyanogenmod version).
Once downloaded, put them on the phone (or sdcard).

Downloads:

Root your phone (or use the method from Cyanogenmod)

Flashing the Samsung Galaxy S3 via ODIN
The recommended method from Cyanogenmod's wiki (which I also strongly recommend) did not work for me ... and for this reason, we're going to use another approach which works as well.
There are plenty of posts on the Internet describing how to root it.
I looked around and the best explained and simplest one I found is on Redmond Pie they use the CF-Root made by Chainfire of XDA Developers.

The technique is really straightforward:
  • Check your phone really is the GT-i9300
    navigate through Settings > About device > Model Number
  • Download ODIN (e.g. here) and start it (phone not connected !)
    This is the tool used to flash CF-Root we will donwload in the next step
  • Download CF-Root (e.g. CF-Root-SGS3-v6.0 here) and extract the zip file
    Once the zip is extracted you will have a .tar file
  • In ODIN, click on 'PDA' and select the tar file from the previous step.
  • Switch your phone in 'download mode': press 'Home' and 'volume down' while switching it on
    Your phone needs to be switched off before this step
  • Connect your phone to the computer
  • In ODIN, make sure 'Repartition' is NOT checked and click start
    The installation should take a couple of seconds, the phone will restart and you will have root access

Downloads:

Flashing the new ROM

This is actually the easiest part !

  • First start your phone in recovery mode by pressing Volume Up + home button while switching the phone on.
    The phone is therefore off before beginning this procedure (press Vol Up+home+power). ClockWorkMod recovery will start and its menu will show up.
  • Select 'Wipe data/factory reset' (scrolling with the volume buttons) and confirm with the home or power button.
    You will lose all your data on the phone... please make a backup before
  • Select 'Wipe cache partition' and confirm.
  • Select 'Advanced', then 'Wipe dalvik cache' and confirm.
  • Select 'Go back' 
  • Select 'Install zip from sd card', find/select the Cyanogenmod zip you copied on your phone/sdcard and confirm
  • Select 'Install zip from sd card', find/select the Google apps zip you copied on your phone/sdcard and confirm
  • Select 'reboot system now'

You're all set... enjoy your fast and brand new phone !

Problems encountered

Once the installation was completed, I could not get the wifi to work. Trying to fix the issue got things even worse as I got a 'not registered on network' message trying to flash the baseband (see below). So if you have wifi issues, check what comes below to avoid making my mistakes:

The wifi is not working

If your wifi is not working, there is a very easy to install fix available on this post. You can install this zip using Clockworkmod recovery and in the wifi my case.
This problem could be caused different hardware versions of the Galaxy S3.

Baseband (modem) version

Trying to fix the wifi version, I flashed another baseband (modem) on the Samsung Galaxy S3 i9300 international. As a result I got messages such as 'not registered on network' or 'emergency calls only'. 
The thing is, the phone has its IMEI (phone unique number) stored in the /efs folder and as this post points out Samsung has been using a new encoding format for its data in the /efs folder since July 2013. Since I just bought my Samsung Galaxy S3 (i9300 international), that very new phone was using that new format.
So what happened there is that when I flashed another baseband (modem) on the phone I ended up with a version prior to July 2013 which was not able to decode the IMEI in its new format... and when the phone cannot read the IMEI it just makes one up (starting with 0000 or 0049, the latter being my case) and you mobile carrier rejects your phone. You then end up with a phone unable to use the data or make any calls.

So if you want to update (read: restore) your baseband/modem because you screwed up (just like me) or for any other good reason, you can find a package that you can flash with CWM (ClockWorkMod) with these new baseband versions here (when you install it, you get to chose which version you want ... and they all seem to be good).

If you screwed up your SG3 /efs folder, I strongly recommend reading this post. It summarises all you have and need to know. You certainly don't need to start looking for IMEI forging, faking or spoofing techniques as you will probably end up with a virus or malware on your computer... and it is illegal in most places.

Resting your phone completely

Should you ever want to restore your phone in its original condition (unrooted with the stock firmware) for e.g. sending it for repairs under warranty, I recommend looking for posts like this one as they propose a complete solution to unroot, restore and reset the flash counter of your phone. Resetting the flash counter is especially interesting as it indicates the number of times you messed with you phone ROM (Note: I have not tested this procedure).