Disclaimer: I will not be responsible for any damage done to your device. Do it on your own risk.
On this post, I will cover the installation of Android 7 (Nougat) on the Samsung Galaxy S2.
This quite old phone is still popular and has a lot of custom ROMs available.
Android 7 on a S2 ?!? Crazy ?
Before to go deeper on the subject, I could already imagine the question marks in your eyes …
Why would he want to install Android 7 on that old mobile phone? Samsung S8 is already there…
The reason is simply all of the sudden my galaxy S7 stopped to work, it didn’t want to boot, to load the battery anymore, when I plugged in the USB cable, nothing happened and even worst when finally after several attempts, the phone decided to load the battery by displaying the battery animation with the percentage of charge, I was thinking finally it will load the battery, it became so hot that the back cover started to burn.
So, I didn’t have a phone anymore and found that old Samsung S2 in the corner of a drawer and tried to use it as a replacement phone,
at least to receive calls or basic stuff it should make it.
The first issue was the size of the sim card, the next one was I already played with the ROM on the phone and the google apps installed were not working, so I started to look to reinstall the stock ROM or another custom ROM, and the good surprise was the availability of some Android 7 ROMs.
The installed ROM on the Samsung S2 was a « Cyanogen » ROM, version 9 if I remember well, as this project is discontinued,
no recent ROMs were available until I discovered the successor of cyanogen is LienageOs and decided to give it a try.
To upgrade my phone, I followed this tutorial , it is written in French,
but basically, the main steps when upgrading your phone are usually the same
- Make a backup;
meaning everything on your phone that you want to keep,
so photos, videos (if not already stored on an SD card or load in the cloud), as well as call history, sms/mms history, other downloaded files, …
- Backup using the recovery mode
- Install a new recovery mode
- Wipe the current ROM
- Wipe the cache
- Install the custom ROM
- Install the GAPPS (Google Apps)
- Reboot & reconfigure your phone
- Restore your call/sms history if needed
For this particular installation and probably because the phone is quite old,
as the original partitioning has a too small « OS » partition to install the new OS, it is needed to re-partition the available space.
(original OS on Samsung S2 is Android 4 – Kitkat, we want to install Android 7)
The custom ROM:
The TWRP version for the Samsung Galaxy S2 can be download from the TWRP Website
The Google Apps:
The Google Apps, often called the « GAPPS », can be downloaded for the different version of Android from the OpenGapps Website
Those are not always needed as some ROMs contain already the Google Apps.
The needed Softwares:
Depending if you are using a Windows or Linux OS the tools to install are different:
On Linux, you need to install two packages from your Linux distribution repository: heimdall and adb;
On Ubuntu or a Debian based distribution, this can be installed using the terminal
# sudo apt-get update
# sudo apt-get upgrade
# sudo apt-get install heimdall-flash adb
On Windows, this can be done with the software Odin, the software can be downloaded from the Odin Website
You need to connect your phone to the computer via usb in order to install the Samsung Drivers.
- You need to extract the « boot.img » file from the LineageOS zip file downloaded
- You need to make sure your computer can see your phone,
for that you need to boot your phone into download mode, this is done pressing « volume down + home + power »,
you should get a specific screen informing you are in download mode, once in download mode,
you can connect the usb cable to the phone and to your computer and from the terminal issue the command
# heimdall detect
You should get a reply informing your phone is detected, if it is not the case, try with another USB cable or ports.
- The next step is to push the recovery (TWRP), the kernel (boot.img) file and the repartitioning file (*.pit) to the phone,
this is done with the following command:
# heimdall flash –repartition –pit I9100_1.5GB-System_6GB-Data_512MB-Preload_by-the.gangster.pit –KERNEL boot.img –RECOVERY twrp-3.1.0-0-i9100.img –no-reboot
« I9100_1.5GB-System_6GB-Data_512MB-Preload_by-the.gangster.pit » is the name of the repartitioning file
« boot.img » is the kernel file extracted from the lienageOS zip file
« twrp-3.1.0-0-i9100.img » is the name of the recovery image downloaded above
if any of the files is different, feel free to adjust the command.
- The next step is to reboot the phone in the freshly installed recovery mode,
this is achieved holding « volume up + home + power », once booted in recovery mode, it is needed to process with the wipes
- The next step is to switch in « adb sideload »
- From the computer, in a terminal, issue the next command to send the ROM on the phone
# adb sideload lineage-14.1-20170517-nightly-i9100-signed.zip
« lineage-14.1-20170517-nightly-i9100-signed.zip » is the downloaded ROM, if you follow this post,
the file name will be different as there is daily build
- Restart your smartphone
- You need to start Odin
- In the « Options » tab,
you need to flag the option for the repartitioning
- In the « Pit » tab,
you need to click the button to browse and select the repartitioning file previously downloaded (I9100_1.5GB-System_6GB-Data_512MB-Preload_by-the.gangster.pit)
- On the right side of the screen, click the « AP » button and browse to the custom ROM file,
in our example « lineage-14.1-20170517-nightly-i9100-signed.zip »
- Connect your phone to the computer via the usb cable and reboot your phone in download mode,
pressing « volume down + home + power »
Once connected you will see a communication port (ID:COM) will be attribuated and a message in the log infotming about that connection.
- Press « Start » button and wait until the end of the process
Once the process is finished, you will see the message « PASS »
- Reboot your phone.
- The first boot can be time-consuming, mine took more than 20 minutes to boot.