A couple of months ago, I got a new phone from work, a Samsung Galaxy S5 G901F (also known as Samsung Galaxy S5 Plus). Ever since there are several points which greatly annoy me:
Whenever such annoyances bugged me, I ditched the stock ROM and replaced it by CyanogenMod (successfully installed
But that's easier said than done.
Spoiler: The reason for all this is because the Samsung Galaxy S5 Plus G901F is not a klte device, but rather a kccat6 device.
The official documentation how to install CyanogenMod on the Samsung Galaxy S5 simply didn't work. When I tried to flash the custom recovery with heimdall, I got the following errors:
heimdall.exe flash --RECOVERY "C:\Program Files\Heimdall\recovery.img" --no-reboot
Copyright (c) 2010-2013, Benjamin Dobell, Glass Echidna
This software is provided free of charge. Copying and redistribution is
If you appreciate this software and you would like to support future
development please consider donating:
Setting up interface...
Protocol initialisation successful.
Some devices may take up to 2 minutes to respond.
Please be patient!
Downloading device's PIT file...
ERROR: Failed to send request to end PIT file transfer!
ERROR: Failed to download PIT file!
ERROR: Failed to send end session packet!
Releasing device interface...
In order to install Cyanogenmod I first need to have a custom recovery on the phone. I tried different versions of TWRP, CWM but almost all of them showed an error message ("Could not do normal boot") when I tried to boot into the Recovery mode and it went straight to the Download Mode.
The issue here is, as I found out later (see Spoiler above), that the phone is not a klte device. And almost all firmwares, roms and root instructions are made for the klte type of the Samsung Galaxy S5. But the G901F is a kccat6 device.
I was finally able to find a working CWM file which I could flash with odin.
Eventually I came across the following post in the XDA Developers forums: SM - G901F Rooted at last ! CWM Recovery in English !
Halleluja! With the downloadedable file (g901f-cwm-recovery-18.104.22.168(1130).tar) I was finally able to put CWM on the phone (and it staid there after a reboot, too).
Here's a step by step instruction:
3.1 Download odin3 v3.09 (or newer) from http://odindownload.com/.
3.2 Download and install the Samsung USB drivers (SAMSUNG_USB_Driver_for_Mobile_Phones.zip) from http://developer.samsung.com/technical-doc/view.do?v=T000000117. You should probably reboot your computer afterwards just to make sure.
3.3 Unpack the odin zip file and launch the odin3 exe (Odin3 v3.09.exe).
3.4 Power off your Samsung Galaxy S5 G901F phone.
3.5 Boot your phone into the Download Mode by pressing the following buttons altogether: Volume Down + Home + Power until you see a warning triangle. Accept the warning by pressing the Volume Up button.
3.6 Plug your phone with the USB cable to your computer. In Odin the device should now be detected by showing the communication port in ID:COM. In my case this was "0:[COM8]".
3.7 In Odin, disable the "Auto Reboot" option. On the right side (Files [Download]) click on the "PDA" or "AP" button and select the previously downloaded g901f-cwm-recovery-22.214.171.124(1130).tar file. Then click on the Start button.
Odin will then display several log entries in the "Message" box. Wait until there is a green box "PASS" displayed above the communication port.
On your phone a blue bar should have appeared.
3.8 Disconnect your USB cable from the phone. Open your phone and take the battery out (yes, the phone is still running). Wait a few seconds and place your battery back in, close your phone.
3.9 Boot your phone into the Recovery Mode by pressing the following button combination: Volume Up + Home + Power. Keep it pressed until you see a small blue text appearing on top of the screen.
3.10 Congratz! You are now in CWM, a custom recovery.
Now that the custom recovery/CWM is installed and working on the phone, I proceeded to (finally) install CyanogenMod. I booted the phone normally and copied the current CM12.1 nightly (cm-12.1-20150702-NIGHTLY-klte.zip) and the Google Apps package (gapps-5.1-2015-06-02-15-19.zip) to the phone's internal storage.
Afterwards I powered off the phone and booted into the Recovery Mode.
In CWM, I wanted to install CyanogenMod by using "install zip" -> "choose zip from /sdcard" -> select cm-12.1-20150702-NIGHTLY-klte.zip.
This package is for device: kltexx, ltelra, kltetmo, kltecan, klteatt, klteub, klteacg, klte, kltekor, klteskt, kltektt; this device is kccat6
This is when I (finally!) found out that I have a Samsung Galaxy S5 Plus which isn't a klte device. Hence I could finally explain myself why so many trials to install a custom recovery failed.
Unfortunately to this day, there is no CyanogenMod version for this device (kccat6) available. A forum thread exists where you can add your demand.
But at least now I'm prepared with CWM if CM ever comes to this device.
A working tutorial how to root your G901F can be found here on androidxda.com.
I was finally able to install CyanogenMod 12.1 on my G-901F today. I wrote a step-by-step guide how to install CyanogenMod 12.1 on Samsung Galaxy S5+ G-901F.
LethalRabbit from Netherlands wrote on May 25th, 2016:
Holy crap, you have no idea how much you have just helped me. I have the exact same phone as you and my troubles started when I was trying to flash a copy of twrp recovery. I tried dozens of recoveries and I figured I was just screwed, until I stumbled upon this post.
Thanks so incredibly much!
Claudio Künzler from wrote on Sep 2nd, 2015:
As long as its the same phone model, it should work.
Eric from Norway wrote on Sep 2nd, 2015:
Hi. Nice guide.
My phone has a different built number than the one mentioned in the root guide:
Android version 4.4.4
Baseband version: G901FXXU1ANK2
Build number: KTU84P.G901FXXU1ANK3
Do you think it will work?
AWS Android Ansible Apache Apple Atlassian BSD Backup Bash Bluecoat CMS Chef Cloud Coding Consul Container Containers CouchDB DB DNS Database Databases Docker ELK ElasticSearch Elasticsearch Filebeat FreeBSD GlusterFS Grafana Graphics HAProxy HTML Hacks Hardware Icinga Icingaweb2 InfluxDB Internet Java KVM Kibana Kubernetes LXC Linux Logstash Mac Macintosh Mail MariaDB Minio MongoDB Monitoring Multimedia MySQL NFS Nagios Network Nginx OSSEC OTRS PGSQL PHP Perl Personal PostgreSQL Postgres PowerDNS Proxmox Proxy Python Rancher SSL Security Shell SmartOS Solaris Surveillance SystemD TLS Tomcat Ubuntu Unix VMWare VMware Varnish Virtualization Windows Wireless Wordpress Wyse ZFS Zoneminder