Cyanogenmod in a Samsung Galaxy S3 mini using Linux

By | November 24, 2013

Nowadays is straight forward to install CyanogenMod, the Open Source firmware Android’s alternative, if you have a device that is officially supported.
But if you have a device that is not officially suported you could face some issues that are not well documented. And if you use Linux, finding documentation could be a bit harder.

In my case I have a Samsung Galaxy S3 mini that, of course, is not officially supported…

I tried several things that didn’t work before finding the right way.
In this article I explain the procedure that finally worked.

Requirements
ADT (Android Development Tools)
The Android SDK provides the API libraries and developer tools necessary to build, test, and debug apps for Android such as Eclipse. This is a big download (~497MB) and it seems a loss of time because what we only need is the Android Debug Bridge program, adb (~1.2MB).
Package: ADT bundle

Heimdall
Samsung devices come with a unique boot mode called Download Mode. Heimdall is a cross-platform, open source tool for interfacing with the Download Mode. You can directly download the binaries and try them, but for me it didn’t work, you can check the issues I had at the end of this article. Therefore, I downloaded the sources from GitHub and compiled them.
Package: Heimdall sources

ClockworkMod
It is a custom recovery for Android phones and tablets that allows to perform several advanced recovery, restoration, installation and maintenance operations on Android devices. It is one of the most common ways used to gain root access, back up device data, install custom ROMs, kernels and more.
Package: recovery-clockwork-6.0.2.7-golden.img

CyanogenMode for Galaxy S3 mini
The Galaxy S3 mini is not officially supported by the CyanogenMod team, but the good guys at maclaw.pl have a working CyanogenMod version for this device.
Package: You can download from here. At the time I did this procedure the most recent version was cm10.1_golden.maclaw.20130928.zip, but there are more recent and stables versions.

Installation

The procedure for installing CyanogenMod for the Galaxy S3 mini is similar to the one for the Galaxy S3, but the subtle details that differ can make you spend a lot of time.
This procedure is partially based on the official guide for installing CyanogenMod for the Galaxy S3

Connect the device to the USB adapter, boot the device normally and using adb, reboot the device into download mode:

Copy ClockworkMod Recovery file into the Heimdall directory.
Open a terminal and run the following command from the Heimdall directory. Notice the argument –Kernel2 that is specific to the Galaxy S3 mini. Adjust the file name according to your version.

A blue transfer bar will appear on the device showing the recovery being transferred.
You need now to manually reboot the phone into ClockworkMod Recovery mode by holding Home & Volume Up & Power.
At this point the Galaxy S3 mini has ClockworkMod Recovery installed.

Place the CyanogenMod rom .zip file on the root of the SD card using adb. Adjust the file name according to your version.

Once the device boots into the ClockworkMod Recovery, use the physical volume buttons to move up and down.

Select the option to wipe data/factory reset.
Select install zip from sdcard.
Select choose zip from sdcard.
Select the CyanogenMod file you placed on the sdcard. You will then need to then confirm that you do wish to flash this file.
Once the installation has finished, return back to the main menu, and select the reboot system now option. The device should now boot into CyanogenMod.

That’s it!

It’s been some weeks since I install CyanogenMod on my Galaxy S3 mini and I can say that is quite stable. I haven’t had any freezes nor strange behaviors. The most common apps work as expected. The only issue I have experience is a video freeze when running YouTube after a few minutes of playback. This issue was know and it should be fixed in more recent versions.

———

The following section is only relevant if you have problems with you SIM and carrier. It is not directly related to the Galaxy S3 mini nor CyanogenMod, but I didn’t want to write a dedicated article just for this.

SIM network unlocking

If you have a phone from carrier A and you want to use your old SIM that belongs to carrier B, but when you switch on the phone you get the message SIM network unlock code, it means that the phone is locked to carrier A and you need a code to unlocking. Unfortunately, I didn’t find how to get this code for free…

This means you have to pay for having the code. Any company that provides this service will ask for the telephone’s country, its carrier and its IMEI number that is a unique ID that identifies the phone. As a matter of fact, the IMEI number is an ID that resides in the modem, that’s why it doesn’t change even if you flash your phone.

Once you have your network unlock code (received by email) you could unlock the phone by following this procedure:

However, this could not always work. In my case, I had to do the following:

And this time it worked!
This means I have a completely rooted phone that is not tied to any carrier.

References

Unofficial site for the CyanogenMod Galaxy S3 mini
Official CyanogenMod guide for Galaxy S3
Heimdall error
ClockworkMod’s official page
ClockworkMod guide

3 thoughts on “Cyanogenmod in a Samsung Galaxy S3 mini using Linux

  1. LAGN

    It worked great, thank you. I couldn’t get the adb tools to work on ubuntu 14.4 for the life of me but it worked just fine manually. Everything seems to be running well so far, I’m exited.
    Awesome tutorial.

    Reply
  2. Piggeh

    I flashed the recovery image, and everything worked, according to Heimdall. But the blue transfer bar on the S3 Mini never went away. Is that normal? I’m kind of afraid to touch it.

    Reply
    1. paguilar Post author

      Hi,
      I’ve had the same issue with recent images too. I had to flash a backup to have a working phone again. If you don’t have a backup you would have to flash an old image…

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *