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.
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
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
unzip Heimdall-master.zip cd Heimdall-master # First compile libpit, but do not install it. # This library will be used later for building heimdall cd libpit ./configure make cd .. # Now build heimdall cd heimdall ./configure make sudo make install
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.
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.
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:
adb reboot download
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.
heimdall flash --Kernel2 recovery-clockwork-18.104.22.168-golden.img --no-reboot
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.
adb push cm10.1_golden.maclaw.20130928.zip /sdcard/
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.
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:
Switch on the phone with the Non Accepted SIM card The phone will ask for the code Enter Unlock code
However, this could not always work. In my case, I had to do the following:
Switch on your phone with the Non Accepted SIM card The phone will ask for the code Enter Unlock code, it won't work. It will say Network unlock unsuccessful. I tried it 3 times Enter unfreeze code that arrive in the email too Enter Unlock code again
And this time it worked!
This means I have a completely rooted phone that is not tied to any carrier.