This blog entry is not intended to act as a guide. Installing a custom rom on your phone may lead to bricking the device. I can not be held responsible for any damages you may incur to your device if you decide to install a custom rom or root it.
Some terms I use in this post that you may not be aware of:
Knox bit - Knox is proprietary security software used by Samsung on it's devices
Kernel - This allows the operating system to communicate with the hardware, without this it wouldn't work
Recovery - A mode that allows changes to the android operating system such as factory resetting it.
Custom Recovery - An expanded version of the recovery mode that allows you to install other software and make backups of your data
Custom Rom - A custom version of android made by someone other than the official developer, usually includes tweaks to make it perform better in some way
Bootloader - This is what lets the phone boot to the operating system, all computers use a bootloader
Boot loop - The device won't enter the operating system and will just show the boot screen/animation
Media Transfer Protocol - Used so the computer can communicate with the device connected, generally used for transferring media e.g. photos & videos
First off I want to make this clear, this isn't my first rodeo when it comes to custom ROMs. I've had plenty installed over the 3 years I've owned my Nexus 4. However the issues have started to appear over the past year or so, where I have upgraded to a Galaxy S6. With my next upgrade I'll probably be reverting to a nexus device just because of how much easier they are to install custom roms onto. As a matter of fact this is all about upgrading from Android 5.1.1 to Android 6.0.1. However as I am using a Samsung device getting this to work isn't quite as easy as one might hope.
I have personally found that Samsung are quite possibly a bit OTT about what goes on with your handset. For starters you've got the Knox bit, if you trip this you've got no warranty. I'm pretty careful with my phone so I wasn't all that bothered by tripping the Knox counter. Samsung phones I personally find have a few levels of extra complexity when it comes to custom ROMs. Keep in mind I am still installing them on my nexus 4 so I do have a direct comparison in terms of a device that came from google and one which came from Samsung. The Galaxy S6 serves as my daily driver, my nexus 4 I keep in case I need a backup and I love the openness of the nexus platform. My reason for choosing the Galaxy S6 was the performance, custom roms were an afterthought. Maybe next time performance might be lower down on my priorities than custom roms, after all most flagship phones fair pretty well in terms of future proofing... at least for a couple of years.
Anyway back on topic, I had to jump through a lot of hoops to just update my phones operating system. Initially I had to flash the new kernel and modem images for android 6, sounds easy enough right? Well I flashed a stock version of the kernel & modem. Modem isn't too much of a worry, however the kernel is contained within the bootloader image. This custom rom I was trying to install requires a custom version of a custom recovery so the phone doesn't through and hissy fit and boot loop. Something I missed in the initial post by the author of this custom rom, so I spent what must have been an hour trying to sort that problem out. Turns out flicking through the last pages of the forum topic was a good idea! So that's that problem solved, should be smooth sailing from here right? Wrong!
I didn't want to boot into android at this point, as some stuff was updated for the Android 6 ecosystem, but the actual operating system I had on my phone was Android 5.1.1. I needed to boot into the custom recovery I installed to update the operating system. This bit went well, minus the fact that my laptop and desktop were failing to recognise my device, I had activated the media transfer protocol in my custom recovery to allow me to transfer files across but windows unfortunately wasn't having any of it and was kicking up errors whenever I tried to copy a file to my phone.
This lead me to the penultimate stage of sideloading it. This is a feature within the tools google provides for developers, it allows you to load a zip file onto the phone through recovery and install it. Finally what I wanted to achieve! This bit went smoothly enough, then it came to booting the phone to the operating system. This took way longer than anticipated, but I got there in the end and after a few panicky hours I finally got my phone back.
I will be making posts in the future as to what apps I personally use on a regular basis and what my homescreen is like! I hope I didn't make this post too confusing, I hope the glossary included at the top helped you understand the post.
This post can also be found on my blog: http://cgroutage.me/the-joys-of-installing-custom-roms/