How to unlock the bootloader, install and update LineageOS on the Verizon Samsung Galaxy S5

Hi, I’m here to rescue you from forum hell.

NOTE: This guide was originally written for CM 13.0 but is in the process of being updated for LineageOS. Except for OS name and version number, the steps should be exactly the same.

The following should work for rooted (instructions on how to do that) Verizon Samsung Galaxy S5s (SM-G900V, kltevzw) running stock Android 5.0 Lollipop and 15 Samsung eMMCs (see Phase 0 to determine whether your S5 satisfies the eMMC requirement). As of this writing, it does not work for S5s with 11 Toshiba eMMCs. Due to the possibility of the bootloader unlock exploit being patched in the Marshmallow update, I’d highly suggest doing this BEFORE updating to any stock Marshmallow OTA.

The steps below can also be long, hard, and frustrating. They will also wipe your phone (SD card included) except for personal files on internal eMMC storage, so make sure everything you need on the card is backed up. Also ensure this is something you really want to do and/or there’s a phone out there you’d actually feel good about buying in case you brick your S5.

The upside is you’ll be getting the latest version of Android long before the official Verizon update, you’ll no longer be trapped in Verizon’s byzantine update process, and you get adoptable storage.

If you get stuck, hit up any of the forum threads linked to at the end of the post for assistance.

Phase 0: Check to see if your phone is supported.

  1. Install Root Explorer or ES File Exploer/Manager Pro (actually, any file explorer with root access and browsing works).
  2. Launch Root Explorer and grant it root access.
  3. Tap the ROOT tab.
  4. Open the file /sys/block/mmcblk0/device/cid. If the number you see in that file starts with 15, your device is supported and you may continue. If not, you’ll have to wait for a matching exploit.
  5. Charge your S5 to 100% as some steps involve the phone being completely disconnected from USB.

Phase 1: Download everything you need, install some of them.

  1. Download and install Flashfire. If that link doesn’t work for you, opt into the testing channel and then try it again.
  2. Download and install Busybox.
  3. Open Busybox, tap INSTALL and wait for the process to complete.
  4. Download SamsungUnlockerS5.apk to your device, but don’t install it yet.
  5. Download and install the latest Samsung USB drivers on your PC (scroll down to where it says Manuals & Downloads).
  6. Download the latest Odin archive to your PC and decompress the archive.
  7. Download the latest TWRP *.img file.
  8. Download the lastest CyanogenMod 13.0 (CM 13.0) nightly build to your device’s eMMC internal storage.
  9. Download Open GApps:
    1. At the webpage above, check the radio buttons for ARM under Platform, 6.0 under Android, and stock under Variant. Flashing this combination later on will give you the same stock Google apps as a Nexus device.
    2. Click the download icon.
    3. Transfer Open GApps to your S5’s internal eMMC storage.
  10. Download the latest firmware (referred to as “baseband” in Settings -> About Phone) for the S5’s radio. Use the latest *non-hlos file under the “Odin” heading here. If your baseband >= what’s listed there, skip this step. If the files are .tar.md5, you will need to extract the .bin files from them using 7-Zip or some other similar utility.

Do not run BlueStacks or any such emulation/virtualization applications on your PC during the unlocking or installation process as it may interfere with Odin’s functionality.

Though you should’t need it for this process, the entire NCG ROM (baseband, etc.) is here. Some commenters have found it useful, so there it is.

Phase 2: Disable reactivation lock.

I put this in its own phase because it’s that important. If reactivation lock is enabled you won’t be able to wipe and reset the phone as needed for this to work.

Follow the instructions for the S5 here.

Phase 3: Flash the new baseband to the S5 using Odin.

This will ensure your phone can connect properly to Verizon’s network.

  1. Follow Steps 12 to 16 here.
  2. Click the CP button and select the baseband file.
  3. Click Open.
  4. Wait for the messages in the Message window to settle on Added!!!.
  5. Click Start. Odin will update the S5’s baseband and reboot the phone.
  6. Upon rebooting, ensure the baseband installation was successful by checking Settings -> About Phone. The last 3 letters of the version number should match those of the firmware you flashed (e.g. PB1).
  7. You will need to do Steps 1 to 6 above for both modem.bin & NON-HLOS.bin files.

Phase 4: Unlock the bootloader.

This will wipe your SD card. Ensure you’ve backed up anything on it you want to keep before this. It will, however, leave the phone’s eMMC storage untouched.

  1. Disconnect your phone from any USB power or data source. Be sure to do this or the S5 will relock the bootloader upon rebooting.
  2. Install SamsungUnlockerS5.
  3. Launch the above app.
  4. Grant root access when prompted.
  5. Tap the Install SamBootloader Unlocker button.
  6. Grant root access again.
  7. Wait for the terminal to appear (it may take a minute or 2). Do not do anything else on the phone during this wait time except ensure the screen stays alive.
  8. When prompted, type Yes.
  9. Hit Enter and wait for the phone to turn off.
  10. Boot into download mode by pressing Volume Down, Power, and Home buttons simultaneously.
  11. Press Volume Up at the prompt.
  12. To confirm the bootloader is unlocked, ensure the line MODE: DEVELOPER appears on the 3rd to last line in the upper left of the screen. If it doesn’t, repeat steps 1 to 11 again as you probably missed something.
  13. Turn the phone off, then turn it on again to boot back into stock Lollipop.

This Phase can be tricky. If it doesn’t work the first time:

  1. Turn the phone off and ensure it’s disconnected from any USB or other power source.
  2. Remove the battery.
  3. Wait 30 seconds.
  4. Put battery back in.
  5. Turn phone on and boot into stock Android.
  6. Reinstall BusyBox.
  7. Reboot the phone into stock Android.
  8. Install the .apk again.
  9. Run through the unlock process again.

Phase 5: Move necessary files to root of microSD card.

  1. Move the CM 13.0 nightly build and Open GApps archives to the root of your  microSD card. Note that we didn’t move them earlier as the bootloader unlock would have wiped both files.

Phase 6: Flash the custom TWRP build.

  1. Open Flashfire (general documentation).
  2. Tap the floating action button.
  3. Tap Flash firmware package.
  4. Select the *klte.img file from Phase 1 Step 7.
  5. Tap Flash. The S5 will reboot into stock Lollipop.
  6. Turn the phone off.
  7. To check whether the recovery flash was successful, press Volume Up, Power, and Home simultaneously. This should boot the S5 into the new recovery environment (ignore any SEAndroid errors as long as booting into recovery is successful).

Phase 7: Install CM 13.0 AND Open GApps.

  1. Reconnect the phone to a USB power source to ensure there’s no power failure during the installation.
  2. While still in the recovery environment, follow Steps 7 – 9 here.
  3. Select the option to add additional zips/packages and add Open GApps to the list. This is important, as firing up CM 13.0 without Google Apps can be a very bad time.
  4. Swipe to Install both archives as indicated.

And that’s it! After both packages are installed the S5 will then boot into CM 13.0 and you can set it up from there. And because your SIM didn’t change and your baseband is the latest version, you don’t have to worry about reactivating the phone.

Phase 8: Getting started with CM 13.0.

A few pointers to get you up to speed:

  1. CM 13.0 takes significantly longer to boot than stock Lollipop, though this may be due to my having adoptable storage enabled.
  2. Root access is managed neatly from within Developer Options, which you enable by following these steps.
  3. Yes, adoptable storage works beautifully and doesn’t slow the phone down at all.
  4. Google Camera is absolutely terrible on the S5. Use Camera MX instead.
  5. Ignore any SIM card errors you see upon booting up, they usually go away once the radio is initialized, which may take a minute. Just be patient.
  6. You can access the hidden phone info app for troubleshooting by entering *#*#4636#*#* from the dialer.

Phase 9: Backup your CM installation before updating your build.

This is unfortunately tricky due to TWRP’s current tendency to corrupt adoptable storage. Option A below ensures TWRP never (phyiscally) touches your storage  – which should (note the emphasis. It’s possible a dirty flash or backup might cause the OS to “forget” the adopted storage, but so far I haven’t seen that happen) provide 100% protection against corruption – while Option B is significantly less safe but doesn’t involve physically pulling the phone apart.

Option A: Remove the microSD card before doing anything.

  1. Power off the S5.
  2. Remove microSD card.
  3. Boot into TWRP.
  4. Do all the steps below and in Phase 10 with the microSD card omitted.
  5. Power off the S5 again.
  6. Put the microSD card back in.
  7. Reboot into system.

Option B: Follow the below instructions as written instead.

Yes, this is a separate and necessary phase as nightly build bugs can be bad enough to require either restoring a full backup or a clean install to recover from. Seriously. Read the horror story at the link.

CAUTION: There is a semi-known issue with TWRP that it corrupts USB drives if they are connected while the phone is rebooted back to System and corrupts (adopted) SD cards if updates are installed from them.

The workaround for this is to simply avoid doing both: DO NOT install updates directly from the adopted SD card. Install them from Internal Storage only. Do not reboot from TWRP into System with the USB drive connected and/or selected in TWRP or with the SD card selected. ALWAYS reboot to System from TWRP with Internal Storage selected and no USB storage attached.

To backup your phone:

  1. Get a USB 2.0 OTG cable and 16+ GB USB 2.0+ flash drive with nothing else on it.
  2. (ExFAT) format the drive by 1 of:
    1. Using the PC instructions here.
    2. Connecting it to the S5 via the OTG cable and going to Settings -> Storage & USB.
    3. Tap the notification that appears when the drive is connected.
  3. Reboot into recovery.
  4. Connect the OTG cable and drive to the S5.
  5. Tap Backup.
  6. Tap Select Storage.
  7. Tap USB.
  8. Tap OK.
  9. Under the BACKUP tab, ensure BootSystem, and Data are checked.
  10. Under the OPTIONS tab, check Skip MD5 generation during backup.MD5 sounds like a nice idea, but it only checks for and doesn’t fix backup corruption. In other words, if your backup is toast, MD5 won’t actually fix the problem and you’ll find out about the corruption during restoration anyway. Besides, the official OTA updates don’t use it. The last reason not to use MD5 is it nearly doubles backup times compared to not using both it and compression.
  11. Under the BACKUP tab, Swipe to Backup.
  12. When the backup is complete, tab BACK.
  13. Tap Select Storage.
  14. Tap Internal Storage.
  15. Tap OK.
  16. Disconnect the USB drive from the S5.

As an added precaution, connect the USB drive to another Android device or PC to ensure the it hasn’t been corrupted before proceeding with an update.

I don’t advise enabling compression or encryption; backing up my 200+ app installation with them disabled takes around 300 seconds (TWRP gives you time report at the end). With MD5 enabled, that jumps to around 500 seconds. With both MD5 and compression enabled, backups take a whopping 1300 seconds, which isn’t worth it for a daily operation. Just get a sufficiently large drive; they’re inexpensive enough.

Phase 10: Updating CM 13.0 in place with adoptable storage enabled.

If you have adoptable storage enabled want to update your nightly build, do this:

  1. Tap About Phone -> CyanogenMod updates.
  2. Hit the refresh icon and download the build when prompted.
  3. After the download is complete, use an explorer app with root access to move the archive (found in /cmupdater on the microSD card) to /data/Media/0/twrp (you may have to create the latter folder if it doesn’t already exist).
  4. Boot into recovery as in Phase 6 Step 7 and install the update as in Phase 7. None of your apps or data will be affected.
  5. When the update is complete, tap Wipe cache/Dalvik.
  6. Swipe to Wipe and wait for the operation to complete.
  7. Tap Reboot System.

How does it all run? Here’s my review of CM 13.0 on the S5.

Here’s how to get back to a stock rooted ROM (while leaving your unlocked bootloader and custom recovery in place) if you ever need to.

Thanks GeTex (bootloader unlock thread), jrkruse (SamsungUnlockerS5.apk), haggertk (CM 13.0 kltevzw build thread), keysoh2 (how to flash firmware/modem in ODIN), Dees_Troy (TWRP klte build thread) and M1chiel (updating CM 13.0 with adoptable storage enabled) for the methods used in this post.

If you’re having problems, comment or get back to the threads linked to above.

Author: jdrch

ISTJ, Rice Owl, UF Gator, mechanical engineer. STEM, sports, music, movies, humor. Account mine only & unaffiliated.

71 thoughts on “How to unlock the bootloader, install and update LineageOS on the Verizon Samsung Galaxy S5”

  1. Can you verify the first step of phase 3. Should we also click the AP button as instructed in the link to step 12-16, or should we only do steps 12-15, and only click the CP button. I think I know the answer, but I just want to be 100% clear, especially for the people who may have not flashed via odin before.
    Thanks for the guide!


  2. Thanks for these instructions.

    The flashfire link doesn’t work and I couldn’t find it on the play store. I did find a link to xda forums to a sign up for a beta version or something.

    Do you know if I need flashfire or can I use safestrap recovery to install or some other way to install? There is a program called flashify, but it allows only 3 flashes a day unless I purchase a paid version or something.


  3. So i’m going to try to keep this short: I seriously can’t express how happy I am that you made this tutorial. Although I used a different method to root the phone at first, I would have never been able to install Cyanogenmod without your help. Although i’ve always loved my S5 (it was the first Android phone I got), I constantly resented not researching further and getting a Nexus. Now that I installed CM13, my phone is SO much faster than it ever was on Touchwiz. You did not exaggerate at all in your review post. I’m so excited to play around with it – this is the first time i’ve ever installed a custom ROM or rooted my phone btw.

    FYI for anyone that finishes this tutorial: When the phone first loaded, I had a problem with the phone app. My phone would restart every time I made or received a phone call. After a quick Google search I found a solution:


  4. Has anyone else had a problem with losing cellular service the next morning? Everything was working fine the night before but this morning I didn’t have any cell service and the time zone was wrong. I still have LTE though. Any ideas?


  5. Hi Jdrch. First, thanks for the guide, its a long more easier to understand than the XDA forum.

    I’m stuck on Phase 3. I just don’t know which baseband file to download. Also, how is this different than Phase 1, step 10?

    Thanks again!


    1. First, thanks for the guide, its a long more easier to understand than the XDA forum.

      You’re welcome!

      I just don’t know which baseband file to download.

      Download the one I linked to directly. There’s literally no other option in the instructions, so I’m not sure how “which one” would be a question.

      how is this different than Phase 1, step 10?

      Phase 1 involves downloading the baseband. You flash it in a subsequent phase, which is a different processes entirely.


  6. Hi. I tried the, Phase 3 step, flashing the PB1 baseband and it bootlooped. I’m thinking because I’m still on NCG. I was able to restore it by flashing the NCG baseband so wondering if I should be doing this step still but how to get it to work. Thanks!


    1. I’m still on NCG.

      The 1st sentence of the post literally specifies Lollipop. Can’t be much clearer than that.

      how to get it to work.

      1 option – which I admit I haven’t tried but which theoretically should work – is to flash the baseband between Phases 6 & 7. This way you’d only have to reboot directly to recovery and so bootlooping shouldn’t be a problem.


    1. Down on this end too and I can’t find a mirror. Given how many XDA threads depend on androidfilehost, I’m sure it’ll be up and running soon. When that happens I’ll probably put a Google Drive link in the post for mirroring purposes.


  7. Anyone guinea piggies this on a att galaxy sm g870a yet? I have the tools to recover from a hard brick. So if not I might give it a go . Or is every device bootloader difference in the emmc?


  8. jdrch, I want to thank you so much for this. I was able to get my device unlocked thanks to the XDA post, but I was about to be stuck with Lollipop had I not searched through your post history. This blog post should be literally Post #1 on the XDA Bootloader Unlock Thread. Helped me get CM16 up and my S5 running like butter! And to think, I almost bought a Nexus 6P. 😛 This will hold me over until the next Nexus Device!

    Thank You SO MUCH!


    1. Also, I was having an issue with my phone rebooting when trying to make a call. I saw something about it after installing GApps but didn’t remember it until now.
      If you’re having issues with your phone rebooting after installing, you have to go to:
      Settings>Apps >Top Right Settings Cog > Default Apps> Select Phone App > And set Phone to Default.
      This fixed my issue of reboot on calling. 🙂 Just something else to put under notes for those others who may have issues.


  9. Thank you very much for a wonderfully organized guide! CyanogenMod runs beautifully on the S5.

    I did have issues with Phase 4 (Unlocking the Bootloader); maybe I was impatient, but I was never able to get a terminal to show up. Instead, the app appeared to force-quit itself, and nothing would happen afterwards. I eventually wound up following Method 4 from the original post by GeTex on XDA, and it worked great after getting past a couple unclear/troublesome steps.

    In case anyone else has trouble with Phase 4, check out the original thread by GeTex here:
    and follow Method 4 (On Device).

    Thanks again, jdrch.


    1. np! That’s why there are multiple methods … I just choose to write only about the one I used because then I firsthand experience with all the steps. Glad you got it working 🙂


  10. Hi there. I’m deeply grateful for all the time you took on this guide. My s5 works like a charm, but I’ve some issues I would like to know if I can get some help with.

    First of all, after flashing the baseband the phone got stuck and I had to reboot and just went to the next step and kept forward with the guide. I dunno if it’s something related but I can’t get LTE and when I do phone calls and the other person at the phone hangs (not me) it beeps awfully 3 times that annoys me at heck.

    Can you help me with that? Thanks un avance.


      1. Which one should I use? Will it cause issues reflashing it? I dunno if it will get me back to stock just as it happened when I did.


          1. Got it. It shouldn’be no issue at all. So It doesn’t care if I’m at cm13 with unlocked bootloader and I reflash the pbp1 modem from samsung’s stock version? Many thanks


            1. Good, I knew you’d catch on! And modem flashes update a separate partition on the device’s onboard storage and don’t touch the OS or bootloader at all. You’ll find most things involving custom ROMs are modular, so you can multiple combinations of different items (e.g. recovery, OS (ROM), baseband).


              1. Great! Good to know that info. I’ve got a last question for you regarding this subject before doing reflash. I live in Chile and LTE didn’t work from the time I received this phone. I wonder that if I flash with that same baseband I wont have it right? In that case can I flash another modem that indeed detects LTE? If so, what alternatives I have? Thanks a lot!


                1. All instructions and files in this post are specific to the Verizon Samsung Galaxy S5 (model number SM-G900V) operating on Verizon Wireless in the US. I can’t comment intelligently on functionality outside of those parameters, sorry 😦


  11. Hey, I’m relatively new to all this stuff, I have a question. Can I just use step 4 to unlock my bootloader? Or do I definitely have to do step 3 before I can unlock it?


    1. You should be able to unlock the bootloader without flashing the baseband, yes. The point of flashing the baseband 1st is at least your phone has the latest and most stable radio firmware on it so that’s one source of problems you can eliminate if you run into issues later on in the process.


  12. Thank you for your guide! It was very helpful! One thing that happened which was not part of the guide was that I had to reformat my SD card since it was only showing like 75 MB after unlocking the bootloader. I’m not sure if that was normal or not. Other than that, the guide worked as expected!


  13. when i use the samsung unlocker and type yes it just stays at the terminal screen and does not reset my device.. it says my current cid is 11 which should work according the the xda forum. phase 4 is the only one i have been having trouble with


  14. Okay so I’m stuck on phase 4. I followed all the instructions (even tried to turn off device, take out battery and reinstall busybox a few times) but each time I open the unlocker and type yes and hit enter nothing happens. Just a few more lines show up saying you really shouldn’t try samsung eMMc on non-samsung device (which of course i’m not trying) and the phine doesn’t reboot. Any thoughts?


    1. Wait after hitting “Yes.” Can take a while for something to happen. If 20 min passes without anything happening then hit up the support thread on XDA.


      1. So I checked the support thread on XDA and apperently this method only works if you have 15 Samsung eMMC and I have the toshiba 11. I tried to look for a solution but there doesn’t seem to be one:( Do you know of another way I can unlock the bootloader?


  15. Hello. I have a rooted verizon samsung galaxy s3 running stock rom and android 4.4.2. I have scoured the web and all the forums trying to find a method that will unlock my bootloader without bricking my phone, and it is my understanding that this is impossible on this particular phone running anything beyond android 4.1.2. Is there any method to unlock the bootloader. I am no longer with verizon. So I couldn’t care less about them. My phone is unlocked for other sim cards. And I am rooted. But I want to unlock the bootloader. The reason I want to unlock the bootloader is because I want to install a custom rom and/or custom kernel that will allow me to overclock my cpu. This is my ultimate goal. I understand i can install safestrap, but from my understanding none of the custom roms that work with safestrap allow overclocking the cpu. Can anybody provide any helpful information in that regard? Please understand that I have about 50 hours into this so I kindly request you deeply analyze your advice before replying as to not tell me something which I already stated I know. This would just add to my growing frustration. Thank you.


  16. Thanks very much for this guide! I was able to save my S5 which had slowed down to the point of being unusable. I had previously loaded a custom ROM (Toxic) using Safestrap but am much more comfortable with TWRP and having an unlocked bootloader.

    Liked by 1 person

    1. EDIT: I had to do the second part of Phase 4 before I got the bootloader unlocked, but it worked no problem after following your excellent instructions.

      Liked by 1 person

  17. I loaded the new Cyanogenmod Nougat 14.1 using this guide and it works great on this phone so far. I have all of my apps loaded and it seems to work fine.


      1. Thanks for indeed saving me from Forum Hell. Forums are almost useless for gleaning information unless you have no life and like to read for hours on end!!!

        Liked by 1 person

        1. I know. That’s why I write guides like this, because it’s easier for me to refer to them later and also it helps others at the same time.


  18. Hi there again. I upgraded to cm14.1 but then I had to go back to cm13 since it’s really buggy and it drains the battery a lot. I think I’ll try Nougat after a while.

    BUT I would like to know if the modem cm14 uses is available for download since it’s works better than version 13 and doesn’t give me issues after hanging phone calls.

    Thank you again!


    1. I haven’t had that issue at all. Also, the modem (also called the baseband) is a separate piece of software from the ROM and must be altered/changed/handled separately. The process for that is described in Phase 3 above.


    2. I find that the battery lasts longer on 14.1 than my old KitKat ROM did on this phone. Same baseband version of PB1 that I had from upgrading OTA to Marshmallow (official VZW ROM).



Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s