In this post I’ll take you through the steps needed to install a custom Android ROM on to the Samsung Galaxy S3 (international i9300) and how to root it!
There’s always more than one way of successfully achieving this but these are the steps that I take and the tools that work for me.
With regards to your linux operating system, this post should be relevant to any Debian-based linux distro such as Ubuntu but I will be using Linux Mint today.
Here I will supply you will all the necessary files needed for the device and give you my opinion as to why I choose the Galaxy S3 as my device target of choice.
The biggest challenge for me with this project was that specific versions of files needed to be used.
Because the S3 is an older device, using the latest software in some cases would not work!
The files that I supply here was what I found to work.
DISCLAIMER: I am not responsible for any loss or damage that you may cause by attempting to modify your Android device! Do this at your own risk. Any warranty may be void.
Why Hack The Samsung Galaxy S3 In 2020 And Beyond?
The Galaxy S3 launched in 2012 and since then there have been many releases in the S series.
So why root an S3 now in 2020 and beyond..?
Here are my reasons:
- Time proven, and software is up-to-date.
- The Galaxy S3 has a replaceable battery and for me this is a necessity. I have many spare batteries and these things are so cheap on Ebay.
- The Galaxy S3 doesn’t have fingerprint scanning hardware. Some people may enjoy this kind of feature, but I certainly don’t as I respect my privacy.
- Google introduced an anti-theft feature in later Android phones that when a full factory reset was performed without notifying Google first, you would essentially lock yourself out and have serious trouble getting back in. I believe the tool of choice in this instance would be “odin”. The Galaxy S3 running it’s stock firmware of JellyBean 4.3 doesn’t have this feature.
- I’ve used this phone now for over 7 years and I see no issue what so ever with it. I even bought another. Again, Time-proven hardware makes this device reliable.
- It’s so cheap. I bought my second S3 for only £25 ($30 USD) on Ebay in 2020. This phone was second-hand but the condition was excellent.
- By updating the operating system from Jellybean to Nougat and above we greatly improve the device by adding new features. There’s also many security fixes and optimisation updates such as improved battery life.
Why Root and Install A Custom ROM On Android?
Rooting your Android device gives you full access to the device files and memory.
From here we can hack android games to get more in-game coins/cash/gems etc.
Just checkout Game Guardian after you successfully rooted your device.
As linux users we value our freedom and privacy.
Because of the Covid-19 pandemic of 2020, it looks like Google and Apple are joining forces to create the “Track & Trace” app that will communicate together over iphones and Android devices.
From what I believe so far, this app will be embedded into newer operating systems and so the user (that’s you and I) have no control over whether they want this or not!
By running an older, hacked ROM we can avoid these new privacy destroying measures.
An Overview Of The Root & Custom ROM Install Process
1) The first main goal here is to install a custom recovery image on to the Galaxy S3.
The custom recovery image I will be using is TWRP.
To Install this custom recovery image I will be using Heimdall in linux to flash TWRP in to the device.
2) The second main goal is to install our custom ROM along with some other packages.
The custom ROM I will be using is LineageOS, the rooting package I will be using is SuperSU and optionally we can then install Gapps.
Gapps will allow us to use Google services.
If you’re planning on “de-Googling” your device then you can skip the step of installing Gapps.
3)Then it’s a case of booting up our shiny new ROM and configuring everything and testing to see if we have root access.
What You Will Need
For this you will need a PC/laptop running Linux Mint or any other Debian-based linux, a Samsung Galaxy S3 (i9300) and a USB cable.
You will also need the relevant files. I have provided them in the next section below.
Please DO NOT use these ROM and Recovery files on any other phone than the international Galaxy S3. If your phone model is not i9300, don’t follow along!
Note that some USB cables can only be used for charging as they’re missing the data connections.
If you can’t communicate with your phone from your linux computer then try using a different USB cable.
Double-check that you have the i9300 model which is placed on the label behind the battery.
The files I use are as follows:
- Recovery Image (I’m Using TWRP – version 188.8.131.52)
- Custom ROM (I’m Using LineageOS – version 14.1)
- Root package (I’m using SuperSU – version 2.82-SR5)
- Open Gapps (version 7.1 nano)
To make things easy for you I’ve supplied all the necessary files right here!
I’ve hosted the file (i9300_root_and_ROM.tar.gz) on MediaFire.com and you can get it by clicking on the button below.
You will need to uncompress the downloaded file. However, DO NOT uncompress/unzip the files inside! These zip files need to stay as zip files.
Although it’s best practice to download files like this from the official sites, the custom ROM (LineageOS) was downloaded from the official website quite a few years ago now and at the time of writing this, I can’t find the ROM for the i9300 anywhere.
If you would like to download the files from more official sources then I will leave the links below:
Setup Linux Mint
We need to install 2 tools in linux. These are heimdall and adb (Android Debug Bridge).
Install Heimdall and adb with the following command from your linux terminal:
sudo apt install heimdall-flash adb
These tools should be in your repository and enter your password if required.
Setup Samsung Galaxy S3 (i9300)
Before performing ANY firmware flashes, be sure to fully charge up the device battery before continuing.
Once your Galaxy S3’s battery is fully charged we now need to get our S3 into the correct state to be ready for flashing.
You may need to go in to the android settings and enable “USB debugging”.
Flash TWRP Recovery Image Using Heimdall
Then we need to boot in to “Download” mode by following the steps below. This may take a few attempts but with a little skill you will get there.
1) Turn OFF the phone.
2) Turn ON the phone, quickly hold down the “Volume Down”, “Power” and “Home” buttons until you see the screen that asks you to “Continue”. Press the “UP” button to continue.
Try holding the buttons down for a few seconds and release.
Now you should see the “Downloading” screen like the image below:
If your USB cable isn’t attached to your phone and computer then connect it now.
Next we need to run the following command in our linux terminal:
heimdall flash –RECOVERY twrp-3.2.3-0-i9300.img –no-reboot
You should notice a blue bar across the bottom of the screen.
Once that’s done, we can remove the cable and we need to restart the phone by pulling the battery out and placing it back in again.
We need to get in to the Recovery mode now by holding the “Home”, “Volume UP” and “Power buttons”.
We need to get in to Recovery mode without the phone booting up the regular Android operating system.
If Android boot up, we then need to re-flash the Recovery image in again by following the steps above.
This is because Android will re-do the Recovery back to it’s original.
Unlock the screen by swiping along the “lock” and you should be presented with the screen like the image below.
We are now in the TWRP Recovery!
Flash LineageOS Custom ROM Using adb
Now it’s time to install our custom ROM.
Tap on the “Wipe” button, and then continue to format data.
Then come back to the original screen again and tap the “Advanced” button, and then “Wipe”.
Select the “Cache” and “System” partitions and continue to wipe.
Now we need to perform a ‘sideload’. Select the sideload ‘option’, then plug in your USB cable if it isn’t already plugged in, and run the following command from a linux terminal:
adb sideload lineage-14.1-20190217-nightly-i9300-signed.zip
Once that’s performed successfully, don’t go any where just yet! We now need to install root..
Flash 'SuperSU App' Using adb
This is the part where we root the phone.
Execute the following command in your linux terminal making sure the SuperSU zip file is in your current path:
adb sideload SR5-SuperSU-v2.82-SR5-supersuapp.com.zip
Once that’s completed we can now flash Open Gapps..
Flash Gapps Using adb (Optional)
You need to make a choice here as to whether you want Google services installing or not.
“De-Googling” your phone will create a more privacy friendly environment on your Galaxy S3 however you can’t use some apps as they require Google services.
I’ve tried both ways and each have their advantages and disadvantages.
For this reason I now have 2 Galaxy S3’s. One with Gapps installed and one without.
If you decide to have Google services then run the following command from a linux terminal to push the gapps package over to your phone:
adb sideload open_gapps-arm-7.1-nano-20200604.zip
Please remember that we can’t come back here once our phone boots up.
We would need to start the whole process again from installing the custom ROM section above.
After flashing Gapps/or not, we can now reboot the phone from within linux. Run the following command to reboot:
and we’re done!
You can now unplug your USB cable, wait for LineageOS to boot up and you will need to configure it for the first time.
Finish Up & Testing
Checking For Root
Once we’re all done we now need to test for root access.
If you decided to install Gapps then head over to the Google Play store and install “Root Check” app created by JoeyKrim.
If you decided NOT to install Gapps then you can use APKpure to install this app too.
Other “Root Check” apps exist but this is the one I use.
Semi-Brick WARNING: Updating TWRP From Within Android
Finally we have our shiny new Android LinageOS installed and booted up.
Most people would be happy at this stage.. but not me.
I thought I would update the Recovery image at this point..
It’s possible to install the TWRP app and re-flash our Recovery image to update it.. right from within Android.
However.. if you don’t need to do this then I would NOT recommend it.
As when I did this I semi-bricked my Samsung Galaxy S3!
Updating to ‘twrp-3.3.1-0-i9300.img’ semi-bricked my phone!
After searching through the options I found that the latest TWRP version for the i9300 was “twrp-3.3.1-0-i9300.img”.
After flashing this updated image I ran into serious trouble.
The device suddenly rebooted and I was presented with the “Download” screen and there didn’t seem to be a way out of it.
After multiple attempts to reboot the phone, pulling the battery out again and again I was still stuck on this “Download” screen and in a ‘boot-loop’.
What I needed to do was re-flash the last good and known working TWRP image.
I DID manage to do this!
I tilted the phone onto it’s side so I could press the buttons more easily.
I held down the “Home”, “Volume Up” and “Power ” buttons until the phone rebooted. I only knew this because the screen went black for a short time.
I then QUICKLY moved my finger from the “Volume Up” button to the “Volume Down” button.
I quickly then held down the “Home”, “Volume Down” and “Power” button which (after MANY attempts) had eventually taken me in to the following screen where I could start from the beginning and flash the Recovery image again:
In this post I have taken you through the steps to install LineageOS custom ROM on to your international Samsung Galaxy S3.
Along with installing a custom ROM, I have also rooted the device and installed open Gapps.
The Gapps package is optional and if you’re wanting a de-Googled phone then you can skip that step.
Before the custom ROM, rooting and Gapps packages can be installed, I explained how to install the TWRP custom recovery.
If you have any comments or questions then please leave them in the box below and I will hopefully amend anything that isn’t quite clear.
I hope this works out for you as well as it has done for me. Thanks.
Have you ever wanted to create your very own Android apps but you’re not a developer and you don’t know where to start?
Check out my post: How To Build An Android App For Free Using Kodular (Beginner’s Guide).
Please note that the Kodular Companion app (on Google Play Store) requires you to have Gapps installed!