How to Downgrade Android Firmware and Versions

If your device has been upgraded to a new version of Android, like for example; your current Android version may be 4.4.4 KitKat and you may have upgraded to Android 5.0.1 Lollipop. When upgrading Android versions, especially a critical upgrade that changes the version entirely, not just revisions of the current version (E.g. 4.4.2 > 4.4.4), your system may be more secure, because with major firmware upgrades like this, there are a lot of system vulnerabilities and security holes that may be fixed, as well as a completely different GUI and look.


Not just functionality and user interface changes, apps and software that you may be using on your previous version of Android may not be supported by the new version of Android you have just downloaded. If you fear that upgrading to another version of Android may cut off support to the app/software/modification you are currently using, it may be wise to wait until there is official word that support for the particular software you are using, is going to support the newer Android update. If you have upgraded your device’s Android version and do not like it, or just want to revert back to what you had before, you will need to perform what’s called a “System Downgrade,” which is what we are here to show you today.

In the example we will be demonstrating here, we will be using Google’s line-up of Nexus devices, or the Nexus 5 in particular, as it does have primary support from Google, has its own Factory image file, and has an unlockable Bootloader. As with every procedure you perform on your devices, you will almost certainly run into the risk of losing your sensitive data, so I highly advise you to make multiple backups of your device’s contents, as flashing a system image file will wipe all of the data currently on the device, and once you’ve saved everything and are sure you want to modify your system software, then you may proceed.

Proceed at your own risk. Following these steps can break your phone forever!

Nexus devices are incredibly simple to downgrade, all you really need to do is save all your personal files, head over to Google’s developer page, where you can download any factory image ever released for every Nexus device, and proceed to flash it through ADB (Android Debugging Bridge). So in this example, we will assume our Nexus 5 has Android 5.0 Installed, and we want to downgrade to Android version 4.4.4. So we will download the (KTU84P) version of 4.4.4 and have it saved somewhere you can find it at.

If you are trying to downgrade a different device you are going to have to do a search for that phones factory images. Google is a good place to start.

There are also a few other things we will need to download, on top of the Factory image. You will need the Android SDK’s platform-tools that we will be flashing the image from. So come over and download the SDK manager from here and download the standalone SDK file. Next install the the SDK, (Note that you do need the latest Java runtime to use this), and click next and let it locate where you have your Java installed, and keep clicking next and install the SDK.

Android SDK Tools setup

Once you have it installed, head into the SDK Manager, and select the SDK Tools, SDK Platform-tools, android support library, and Google USB Driver, and click install. Next, we will head to where you previously downloaded the Nexus 5 Factory image. You will then proceed to extract the file’s contents to the platform-tools folder you installed from the SDK Manager.

Android SDK manager

Alright, now that we have gone through all the pre-requisites of installing and downloading all our necessary files, let’s begin the procedure of downgrading.

First things first, head over to your device’s stock settings app, and scroll down to about device, and find your build number section. Keep tapping on the build number until a toast notification/message appears saying that you have successfully enabled developer mode, or you are now a developer. After you’ve enabled developer mode, hit back once, and you should see a new section in your settings called “Developer Options.” Scroll down and enable “USB Debugging.” Now, plug your device into your computer through a micro USB cable, and make sure your computer is recognizing and detecting your device is plugged in. If for some reason your computer isn’t detecting your device, you have to head over to your computer’s device manager, and update/install device drivers.

Now, head over to the Platform-tools folder where you installed, and make sure the contents of the factory image are all in there. If it doesn’t show up there, you may have to manually extract it to a location, and copy and paste the files into the platform-tools directory.

Once we are in the platform-tools folder, go ahead and highlight your cursor on an unoccupied space in the folder, and hold shift right click and select open command window here. You should now see a command prompt window appear on your screen, which is sign that you’re doing everything right so far. Next, type in “adb devices, and hit enter.” Your device should come up as a random string of characters (which is your device’s serial number), and beside it, it should say “unrecognized”, which is fine. Now head over to your device and you should see a prompt asking you, “allow USB Debugging?” Checkmark Always allow, and click ok. What this does is verify that adb is recognizing your device. If it doesn’t, your drivers are incorrectly installed, or you have the wrong drivers installed, or you just have to wait until your device receives a signal from ADB asking it for debugging access. We will assume everything went off without a problem, so now what you want to do is, type in ”adb devices” again, and hit enter, only this time, your device’s serial number should appear and the word “device” should sit right beside your device’s serial number, which indicates that everything is properly configured so far.

Next, type in “adb reboot Bootloader”, and hit enter. Your device should turn off and reboot into “Fastboot Mode.” Which is indicated by a picture of an Android lying flat on its back with its stomach panel opened. There will be a small block of colored text at the bottom of the screen, one which even says “Fastboot Mode.” At the very end of the block of text should appear “LOCK STATE.” If beside this says “Locked” (which means your Bootloader is locked) which it should if you never unlocked it. We will just unlock the Bootloader quickly, so enter the command “Fastboot oem unlock” and hit enter.

(*Note that if you unlock your device’s Bootloader, your warranty most likely will be void, and the device’s OEM for the most part will not handle warranty affairs with your device.) Your device should prompt you with a confirmation request asking “Are you sure you want to unlock your Bootloader?” Just use you volume keys to navigate through the options and click the power button to confirm. Your device will go back into Fastboot mode. Just wait a few seconds for the device to fully unlock your Bootloader and under “LOCK STATE,” it should appear to be unlocked, and now you’ve successfully unlocked your device’s Bootloader, therefore granting you access to install custom operating systems and ROMS.

So now, we head back into our adb command prompt, and enter the command “Flash-all” and hit enter. Now, the device should go through a series of installation points and should load for a minute or two, just let it run its commands and let it load. Now the process of flashing/downgrading has begun. Eventually the device’s screen should transition to its usual upgrading interface, which is just a standing Android with its stomach panel opened. Let it load and re-install the image file. Once the process of installation is finished, your device should emulate a factory restored state-like interface. Just run through the device setup, and you should be greeted with the brand new version of Android, whichever you decided to install. This process I have just run through with you guys applies to upgrading/flashing other ROMs as well.

Now, some finishing discussions. If you wish to re-lock your device’s Bootloader, head into Fastboot mode of your device, and type the command “Fastboot oem lock”, and your device should run through the process of re-locking the device’s Bootloader. Your device’s OEM might be able to detect Bootloader changes, and refuse your warranty claim if you have tampered with Bootloader settings.

And that concludes our guide for downgrading and flashing image files through the ADB interface, this method applies universally to a lot of Android devices, although different devices by different OEMs that have different interfaces/OS will have a different method of downgrading and flashing

About Kenny Leung
Kenny currently lives in Buffalo, NY. Where he studies computer networking & programming. He has owned a number of Android phones including the Galaxy s3, Galaxy 3 mini, Galaxy s4 mini, LG optimus 3D, and the Oneplus one which he is currently using. Kenny will likely get the Oneplus two once it is released.

15 thoughts on “How to Downgrade Android Firmware and Versions

  1. I want to downgrade my Samsung galaxy s5 prime SM-G906L from marshmallow to kitkat 4.4.2
    Please help me anybody. ..

  2. Hi, can someone please help me with these for my lgls660zv5 Tribute, ive been waiting so long for this so i can open my phone for another service here in Nicaragua. please if anyone can help me acchieve these two files i will be greatle appreciated. Thank you in advance.(


  3. I have updated my Samsung Duos android phone to 5.0.2 in automatic way, but since that the speaker doesn’t work… I can’t place calls, and need this phone for work, and right now I can´t use.
    Need some help

  4. I upgraded my htc desire 820 dual sim to marshmellow ,after updated i m facing issue in sim 2 there is no call end option it is grayed out and instead of end call i see call ended . no option to end call .

  5. What about downgrading RCA tablet version 5.0.1 to a more older firmware


    I hope you received my very recent inquiry about ELEPHONE P6000


    since 8 months I have ELEPHONE P6000,Android 5.0, CPU MTK 6732 , 64 bits , LTE 4G. Problem is: it never works making HOTSPOT to connect other devices on its WIFI. The P6000 sends around a very strong own WIFI-signal, as well as my fixed cable router, but no other device can enter to Internet. Also tested with SIMs of other companies. ¿¿Whar changes or apps are to be made for to obtain HOTSPOT.with this Android 5.0 ??
    Thanks for your attention to my problem. I´am living in Madrid-Spain

  8. I had to follow to install ADB drivers for windows 7 x64 version.
    Everything went normal till ‘adb reboot Bootloader’ command. Device just reboots and does not enters Fastboot Mode as mentioned in post.
    What I am trying to accomplish is downgrade firmware from v1.0.03 to v1.0.02. That device already had warranty void when I bought it. What was strange it appeared to be PMT3017_WI and PMT3018_WI at same time when connected to PC and build number that prevents upgrade to 1.0.04.

  9. I had a auto upgrade and its just causing. Problems., everything is slow, to much ram is being used now, apps are crashing. Even typing is horrid. As in typing this, I have to pause every sentence so it can cetch up. This update .. Every part of my LG tablet is having problems now. This is a tool for work.. Well was that is. If android is gonna force these update on us then in done. Android is going in the trash with my iphone.

    • me to bud lmao got to downgrade lol everything will run better finaly someone explains what a dam upgrades really does to your phone lol

    • dont throw in trash i hate iphone and love android im useing a iphone lmao dam looks rich compared to andriod but i love andriod good luck my friend the internet suppluys everything there is good and bad and bad good and good bad, everything alyways works CRT tvs the good ones make bad quality internet streaming look like 1080p lmao ;) LG is the worst i heard for 4k DON’T BUT IT go with samsung 4k STik TO TRUE LED that is OLED ok dont listin to me cause i still use a CRT toshiba 42in cinama series jjk good luck my friend on your journeys, if we all can only find the time and are aloud to fix it all

    • that’s downgrading buddy LMAO

  10. Hi…I’ve a LG Optimus G that actually updated automaticaly to android 4.4.2 kitkat…the problem is that now I cannot get more printscreens using the old command (Power button + Volume down button)….already tried almost all combinations…always block the screen or change the volume…do you know how to printscreen with this version? Thank you!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>