Restore Stock Firmware on Moto G

Restore Moto G to Stock Firmware

Have you accidentally messed up your phone, removed the OS, don’t feel right on custom ROMs, or want to turn in your Moto G smartphone for servicing? Here today at DroidOrigin, we will assist you on, how to restore stock firmware on Moto G. The process is easy, and only requires you to flash the stock firmware/factory image via fastboot commands. The supported device list includes the following, in simple words, only the following could be restored using this tutorial.

  • Moto G (1st, 2nd, & 3rd Gen)
  • Moto G Turbo Edition

All you will need, is the factory image for your model and variant. Be careful while searching for this, flashing the wrong files may permanently damage your phone.Β The procedure is nearly same for all the devices and could be followed correctly with a little awareness.


Manually flashing firmware may soft-brick your Moto G if done wrong. DroidOrigin or any of its members shall not be held responsible for any damage to your phone. However, we will definitely assist you if you come across any such situation.


  1. Moto G 1st Gen Factory Images (Thanks to lost101): Link
  2. Moto G 2nd Gen Factory Images (Thanks to Lucas Eugene): Link
  3. Moto G 3rd Gen & Turbo Edition Factory Images (Thanks to lost101): Link


  • Your Moto G must have an unlocked bootloader. If it doesn’t, follow the steps here.
  • Install Motorola drivers: Link
  • Install Android SDK on your Windows machine for ADB and fastboot. Alternatively, you can also use standalone package only if you know how to use it.
  • This process will erase your device completely, so backup your phone completely, include the internal storage.
  • Charge your Moto G to at least 60% battery level to avoid any sudden shut downs, during the procedure.
  • Enable USB debugging on your Moto G. You can follow the steps here.

Restore Stock Firmware on Moto G

  1. Download the factory image corresponding to your Moto G variant and model. Extract the downloaded firmware.
  2. Go to the folder where the firmware has been extracted.
  3. On an empty space inside the folder, press SHIFT key and right-click on an empty space. Select Open command window here from the pop-up that appears.
  4. Connect your phone to the PC, and make sure it is unlocked. Enter the following command in the command-line window:
    adb reboot bootloader
  5. Your Moto G smartphone will now enter bootloader mode. This is where we will flash the factory image.

    Moto G Turbo Edition Bootloader Mode
    // Bootloader mode on Moto G Turbo Edition
  6. Once it has, make sure that fastboot detects your device by entering the following command:
    fastboot devices
  7. The above command will return an output with the device ID and mode-name.
  8. Enter the following commands now to flash the factory image. There may be a chance that your device or variant has an extra or a less number ofΒ system.img_sparsechunk file, so make sure to flash accordingly. If you are downgrading your Moto G’s firmware, do not flash gpt.bin and bootloader.img/motoboot.img file.
    fastboot oem fb_mode_set
    fastboot flash partition gpt.bin 
    fastboot flash bootloader bootloader.img 
    fastboot flash logo logo.bin 
    fastboot flash boot boot.img 
    fastboot flash recovery recovery.img 
    fastboot flash system system.img_sparsechunk.0 
    fastboot flash system system.img_sparsechunk.1 
    fastboot flash system system.img_sparsechunk.2 
    fastboot flash system system.img_sparsechunk.3 
    fastboot flash system system.img_sparsechunk.4 
    fastboot flash system system.img_sparsechunk.5 
    fastboot flash modem NON-HLOS.bin 
    fastboot erase modemst1 fastboot erase modemst2 
    fastboot flash fsg fsg.mbn 
    fastboot erase cache 
    fastboot erase userdata 
    fastboot erase customize 
    fastboot oem fb_mode_clear
  9. Once everything is done, reboot the phone:
    fastboot reboot

Now this is how you can restore stock firmware on Moto G and its pretty easy for anyone to follow. If you have any queries or feel stuck, let us know via the comments below.

Also read –Β Manually Install Android Marshmallow OTA on Moto G3

  • Kunal Varaiya

    I have got my moto G 1st gen blank.. it won’t just start up.. when I plug in, it does show in charging mode..
    Will flashing help out??
    How to flash when I have got the screen blank??

    • Yes, flashing may help out. But only if we get a better look at the situation. The most imperative part is that you must be able to put your device into bootloader mode. So, are you able to do that on your Moto G 1st Gen?

      • Kunal Varaiya

        How to check the bootloader mode?
        Could you please guide me..

        • To enter bootloader mode or Boot Mode Selection Menu follow the instructions below:
          1) Power off your device completely and also make sure that it is unplugged from the USB charger or cable.
          2) Press and hold the power button and volume down button for approximately 3 seconds.

          You should now be able to see the boot menu.

          • Kunal Varaiya

            I tried this for almost 10-12 times and with long duration but it doesn’t respond.

          • So basically all you see is a black screen lighted up?

      • Sanchit Kelkar

        Can i do above procedure if i have twrp and a custom rom flashed… So i want my stock rom back. Can i proceed with your above steps.. Please help..!!

        • Dhananjay

          Yes you can. But! Skip the motoboot.img and gpt.bin commands in case you are downgrading. The rest of the process shall be same.

  • alex

    Please help! if the firmware i downloaded doesn’t have system.img_sparsechunk0 through 5 do i still have to flash all of them or only the ones that my firmware has?

    • Hello Alex, you will only need to flash the amount of sparsechunk files that you have. Some firmware have 4, while others even have more than 5.

  • Bhanu Chopra

    Bro help me i trying to this but i can’t.reason is when i apply commands ,its shows ur bootloader is denied permission .my phone bootloader is unlocked …so, tell me how to allow all permission s…help me ..and one more thing when i go in fastboot mode .my baseband is unknown .why ? Help me bro

    • Hello Bhanu, could you please share a picture of your Moto G’s bootloader mode? And also, kindly specify the exact the model of your device. It will allow us to better track down the issue to its root.

  • Marcelo Curado

    Hi! I think the command line fastboot flash bootloader bootloader.img is misplaced here. Shouldn’t be fastboot flash motoboot motoboot.img instead?

    • Hello. Thank you for notifying this to us. Have updated the command accordingly. πŸ™‚

      • Marcelo Curado

        Tks! I dont know if you can help me once again. But after I have installed the stock version over a custom rom that my moto g2 had, now every time that the smartphone turns on it fist appear the bootloader mode screen, then I need to choose “Normal Powerup” and then the smartphone starts… do you wanna what I could have done wrong and how can I fix it? Tks!

        • Okay. So, switch your device off. Power it on and now when it is in bootloader mode, you should see “Fastboot Reason:”. There should be line after that, kindly paste it here.

          • Marcelo Curado

            It says: UTAG “bootmode” configured as fastboot

          • Okay, so while your device is in bootloader mode, connect it to the PC and enter the follow command: “fastboot oem fb_mode_clear”

          • Marcelo Curado

            Tks! Working smoothly now!

          • You’re welcome. If you need any other help, you can comment here or reach to us

          • I have also updated the article with this command, so that further users would not come across such situation.

          • Marcelo Curado

            Great! πŸ™‚

  • Jayaprakash N

    Hi When i am flashing gpt.bin and motoboot.img, getting Preflash validation error. My moto 9 is already unlocked. Becz of this now my moto g is not at all booting. Only fastboot mode i am able to enter. Please help on with this error. I could not find correct info on this.

    $ ./fastboot-mac flash partition gpt.bin
    target reported max download size of 536870912 bytes
    sending ‘partition’ (32 KB)…
    OKAY [ 0.038s]
    writing ‘partition’…
    (bootloader) Preflash validation failed
    FAILED (remote failure)
    finished. total time: 0.315s

    • Hello, kindly skip the motoboot.img and gpt.bin if you’re downgrading. There are strong chances that you might hard brick your device.

  • Robert Clarke

    I just cannot get past the sparsechunks – I keep getting an error. I have used fastboot and mfastboot but both fail.

    C:Mfastboot>mfastboot flash system system.img_sparsechunk.0
    target max-sparse-size: 256MB
    sending ‘system’ (257451 KB)…
    FAILED (data transfer failure (Unknown error))
    finished. total time: 300.660s

    any idea?

    • Try a different USB port on your PC. Also, if there are any other USB devices connected like external HDD, USB drives, or webcams, remove them momentarily.

  • D GOD

    I did everything while rebooting after bootloader message, android image with erasing comes. from there its just a loop. The device doesn’t start. Please help
    I downloaded XT1550 2gb firmware

    • Hello, please state the exact model of your device. Are you sure you downloaded the firmware for your model? Also, have to tried to downgrade from a higher to lower Android version during this process?

  • chinmay ambekar

    If you are downgrading your Moto G’s firmware, do not flash gpt.bin and bootloader.img/motoboot.img file.

    this lines made my day thanks man ue awesome no one mention this lines in youtube.or anywhere thanks u man

    • It’s always better to provide the most important information first. You are welcome Chinmay.

  • rahul

    hi, I have motog3 xt1550 2gb marshmallow (india), NOT ROOTED, but bootloader is unlocked, and I want to relock my bootloader,
    but everytime when I am flashing my stock rom, I am facing bootloader pre flash failed !! all my sparsechunk files also get fails I have 7 sparsechunk files, my device is not getting flash but just factory reset everytime due to that command “ERASE” !! why am I facing this problems ? what to do ? why is it getting failed everytime ? what is this downgrading process ? can your guide me in detail about it ? πŸ™

    • Okay. Try this, before entering any of these commands, enter “fastboot oem fb_mode_set” and then go through with all the commands.

      • rahul

        but can you tell me, why is it getting failed ? reasons

        • Which firmware file are you using?

          • rahul

            XT1550_OSPREY_RETASIA_DS_2GB_6.0.1_MPI24.107-55-2_cid7_subsidy-DEFAULT_CFC.xml …. I was trying to flash this as it was similar to my previous firmware which was :-

            *2gb ram,
            *running marshmallow 6.0.1,
            *androidSecurity Level 1 Jan 2017
            *BUILD NO= MPIS124.107-55-2-12,
            *SYS VERSION= 24.216.12.osprey_retasia_ds_2gb.retasia.en.03.reti

          • Seems like you are trying to flash an older build. If doing so, try skipping the bootloader.img/motoboot.img and gpt.bin commands. See if you succeed then.

          • rahul

            You know sir, on xda developers, they said that, I can’t lock my bootloader, untill the latest full factory image released.. so I cant lock my bootloader on this older image ? πŸ™

          • Yes. Either you have to wait for the latest release that was installed on your device. Or, you can try skipping the following commands and try again: fastboot flash partition gpt.bin
            fastboot flash motoboot motoboot.img

            Since you are trying to downgrade to lower version, kindly read step #8 of the guide again.

          • rahul

            Ok thankyou so much sir, ill let you know if it works, but should i try adding bootloader re-locking commands with it ? or just flash without it
            .and how would i know, if latest factory image has released for my motog3? andy signs you can tell me for that ?

          • Yes. Add the re-locking commands. Basically all the commands stay the same. You just have to skip the commands i mentioned.

            As for the latest factory image, you have to keep an eye out on the XDA thread:

          • rahul

            “How do I downgrade to an older Firmware?
            Downgrading carries risks, and may result in constant nagging notifications to update Android. Decide carefully if this is really what you want. With earlier generations of Moto G flashing bootloader.img and gpt.bin has resulted in a hard-brick. Avoid flashing these files if you are trying to downgrade. The safer option is to find a custom Stock ROM with OTA Updates disabled.”

            Sir as a guy said this on that topic…Why it is riskier ? after downgrading i can’t update my phone ? “The safer option is to find a custom Stock ROM with OTA Updates disabled.” how can i disable that OTA Updates ? and custom stock rom means my original rom, right ?

          • There is no risk if you skip the bootloader and gpt.bin (which is the partition map). Yes, If I was art your situation, I would have avoided to downgrade, until an updated stock ROM is available.

            You can always update your phone after you downgrade. Updates only require one thing – your device should be stock completely.

            Tell me something, why are you trying to relock the bootloader? Any specific reasons?

          • rahul

            Yes sir, actually i dont know anything about android, that’s why i needed someone like you to guide me,
            yes, they unlocking bootloader may cause some system functions to work improperly, and now i am afraid, that’s why i wanted to relock it

          • Don’t worry about that. I would only advise you to wait for higher version of the stock ROM if you want to restore it and relock it.

          • rahul

            thankyou so much dhananjay sir, YOU ROCK !

          • That’s all because you guys are reading my blog πŸ™‚ Thank you Rahul for the generous words.

          • rahul

            But sir you know what, my phone didn’t got flashed but just got factory reset πŸ™ its not even getting flash I don’t know why ? πŸ™

  • Ekhlas uddin

    Hello Dhananjay, I have a MOTO G 1st Gen (Dual-SIM),
    after following all of those command lines above, when i rebooted my phone, it is stuck at ‘M logo powered by Android’ screen. Trying to load stock firmware and this is my first try ever. The phone already had a custom cyanogen ROM, someone did it and I lost contact with him. I dont know if i’m making any sense or not, please help if u can understand. I tried the following file: “Retail Asia 5.0.2 Stock ROM (Untouched) (519mb)” from lost101’s post.
    Note: While entering the commands above, many of the commands returned “error: cannot load ‘logo.bin'” and same for sparsechunk files, recovery.img and NON-HLOS.bin too. I thought that it might be normal, but now I am not so sure. Help.

  • Riju Sarkar

    sir,what problems i have to face if i skip gpt and bootloader command?

    • If you are trying to downgrade to a lower Android version than your current, then you must skip those files. Or you will end up bricking your device.

      However, if you are restoring a stock firmware that is considered a higher version that your current, then it will be totally safe to flash gpt and bootloader commands.

      I hope this clears the doubt.

    • rahul

      Those commands are used if you are downgrading your phone

  • rahul

    dhananjay sir its me again, i hope you remember me, Sir my phone is not starting even after a factory reset πŸ™ stucks on moto logo

    • Hi Rahul, I do remember you buddy. So were you trying to downgrade to a lower version?

      • rahul

        Actually i was rooting my motog3, but whenever i try to flash the SUPERSU file(USING twrp) MY PHONE GETS BRICKED. i tried using 2 supersu files one was beta and other one was updated, BUT NO MATTER WHICH FILE I USE, MY PHONE GETS BRICKED ! any suggestions ?

        • Which files exactly did you use? Also, which Android version is your phone on? Are you sure that the bootloader is unlocked (you didn’t relock it previously) ? Also

          • rahul

            I used twrp, minimal adb fastboot, and that super su file (BETA-SuperSU-v2.66-20160103015024).
            My phone is currently running android 6.0.1!
            Yes my bootloader is still unlocked (and yes i tried adding lock commands while downgrading my phone, but NO the process gets failed)so now my phone is unlocked

          • Keep it unlocked, unless you deliberately want to relock it. Use this SuperSU zip:

          • rahul

            So after flashing SUPERSU should i erase the dalvik cache and all ? And should i enable usb debugging ? And unlock the bootloader in developer settings though phone is already unlocked

          • rahul

            dhananjay sir …i recently found this on web and now super su has been installed

            Now, the procedure is the same whether you are trying to root the first time, or you did it the old way just flashing SuperSU and are now not able to boot…

            In TWRP, go to Advanced and open the Terminal, in the terminal type this EXACTLY as shown:

            echo SYSTEMLESS=true>>/data/.supersu

            Now press enter (there is no confirmation returned), then exit and press the Home key. Go to Install and select the SuperSU zip file you downloaded from Prerequisite #3 and swipe to flash it and reboot. No need to clear caches or anything else but you are welcome to if you wish. You can install SuperSU updates normally through the app going forward (as of this posting).

            by typing that code in in twrp>advance>partiton my phone worked and has started finely !!!

          • Okay. So previously when you installed SuperSU, it was installed on System, and the OS had a safetynet patch to block it. Thus preventing your ROM from booting. However, the latest SU installs in Systemless mode, which shouldn’t cause any problems.

            The command you mentioned is what the latest SuperSU would do. Since you already had the previous version installed to the /system, you would have to first wipe off, install the ROM, and then root with the latest SuperSU.

            So, if anyone here installs the previous version of SuperSU, you can use the command mentioned. Otherwise, just use the latest version.

            And Rahul, did you download the SuperSU linked on this website? If so, kindly let me know from which article, so that I can update it properly.

          • rahul

            Yaa sure here’s the website “”

          • Thanks for the heads up! πŸ™‚ From now on, make sure that you flash the latest version of SuperSU available at

  • saulalejandrogv

    Hello Dhananjay! I tryed to restore my moto g3 turbo edition, the technician said it was de motherboard, originally i broke my screen and replaceit with a new one, then i dropped it, the charger says that the eta for 100% was 6 hours, the screen flash on and off and the phone dies. i plugged on my pc and found out that fastboot works and get a response from my phone, that way I know the build number for the firmware download. When i finnish the pc stuff and order to normal boot it only vibrates without image almost exactly 20 seconds apart of another vibration… Do you think that the phone is ok and its just the brand new screen? or could be the image flexor(the one coming from the mother board? that doesnt explay the vibration and bootloop does it? Hope you can help me… greetings from mexico!

    • Hello, just for clarification, did you drop the phone after replacing the screen? So until it was dropped everything was working fine?

      • saulalejandrogv

        the screen was broken,but i used it that way, then i drop it, the screen disconect itself with the fall, i reasemble it and boots okay, but says that the battery will be full at 6 hours, it also turn off by itself twice, but i used like 4 hours more untill it dies. I bought a brand new screen after the phone dying thinking that the screen was the problem. Now when the phone is connected to the AC and hold the power button the screen get black very subtle (i only noticed in the night) and the hidden led turns on… i didnt do anything for that to happen… i guess that the firmware has it sorry for my crappy english and for the delay… i was on vacation

        • I believe when it took the fall the second time, it took some damage or loosening at the battery connections. I would only recommend you to take it to the service centre. We wouldn’t want to mess it up further now, would we?

          • saulalejandrogv

            Deal! Thank you! Actually the cellphone gets so hot when I plugged in… maybe its time for the pros to take a look on it.. Thanks!

          • Yeah, good luck πŸ™‚

  • Jeswin Thomas

    hey Dhananjay! so i recently flashed Lineage OS on my G3 and it’s draining my battery a lot. So, i now want to downgrade to 6.0.1. I have TWRP installed. And my current os is not rooted. How do i roll-back to 6.0.1? Procedure? any link?

    • Hey Jeswin. It’s quiet easy to do so by following the guide. But first, could you please provide me a screenshot of the current build and radio version of your device? So that I can make sure that you’re flashing the correct f/w.

      • Jeswin Thomas
        • Prateek Bansal

          Hey Dude help me, I am stuck in same problem exactly likeJeswin Thomas , plz provide final solution to me

          • Hi Prateek, you can refer to the above comments if you are in the same situation. If you have a 1 GB model for XT1550, let me know so that I can point you out to the latest build available.

          • prateek Bansal

            My Phone is XT1550 ,INDIA, 2GB
            Ist i want to tell you about current and past situation of my phone,
            Ist i unlocked my bootloader and try to root my phone using super su by flashing but i am not successful then i wipe all files including davlik,cache,system, internal storage….after that i installed 14.1 lineage os (android 7.1.1) after successfully installation my phone started working fine except volte not available… again i think tp install original firmware on my phone but I’m unsuccessful as every time i use start commands from “OEM lock begin” and it always give two error “preflash validation failed and invalid images ……after that i start again commanding except oem lock begin
            ..and i got successful install my original firmware but phone is stoll unlock ..what to do ????
            When i update my s/w it giver error

          • Hi Prateek, an unlocked bootloader shouldn’t be a problem if you’re trying to update over-the-air. What error does it exactly display while you update? Kindly provide a screenshot/picture, if possible.

          • prateek Bansal

            Its just a display with “error” written on it, after restarting phone it says “software not updated , there is some problem with your moto g’

        • Could you please verify the region of your device? Like India, Brazil, etc?

          • Jeswin Thomas


          • Is it a 1GB or 2GB model?

          • Jeswin Thomas


          • Okay, so the current release for your model XT1550 – 2GB is 6.0.1, which is here:

          • Jeswin Thomas

            i’ve already downloaded it. Just wanted to know if my device would get bricked or not (just in case)

          • It shouldn’t. Not until you try to downgrade with a lower gpt.bin or bootloader. Now since you will be flashing the latest available for your device, the chances are minimal to none.

          • Jeswin Thomas

            Alright. Thanks mate for the support!

          • Jeswin Thomas

            Dude, I started executing commands in cmd but after “fastboot flash logo logo.bin” this happens (screenshot )
            and as you’ve mentioned above in point 8- if downgrading, not to flash gpt.bin and bootloader.img/motoboot.img file. Even if im not flashing those im still getting error/it fails. What do I do now?

          • Did you try flashing gpt.bin or bootloader? Could you please share a picture of your bootloader mode? Make sure all the text is clear.

            The error mostly arises if you are trying to flash a lower version of the stock ROM than you already have. If you could share the bootloader mode picture, I will be able to depict that correctly.

          • Jeswin Thomas

            yes i did try flashing gpt.bin and bootloader but it still gave me error. my device is currently on Lineage OS 14.1, android 7.1.1, tried flashing without root and after rooting also, but no luck

          • Root has no part in this. Kindly share an image of the bootloader mode text.

          • Jeswin Thomas
          • Thanks. What was the last official firmware that you had installed? 5.0, 6.0, or 6.0.1?

          • Jeswin Thomas


          • And when did you update official firmware last? Like OTA?

          • Jeswin Thomas

            i updated it on the same day i got the ota update! can’t actually remember the date

          • That’s probably it. What’s happening is, you are trying to restore a previous version of the stock ROM that was released during December 2016.

            I wouldn’t advise force downgrading through any other way. Wait until a new factory image surfaces, with the build equivalent or above to what you have now. Until then, you could do two things. Either find a stock TWRP backup (you can request someone at XDA) and restore it, or simply use a custom ROM for the time being.

          • Oh yeah, there’s one thing you could try and see if it makes any difference. Discard minimal ADB and fastboot, instead use the latest ones available here:

            Again, don’t flash gpt.bin or bootloader.img. Just go ahead with other commands and see if it works.

          • Jeswin Thomas

            SO i tried this time with the latest stuff you suggested. everything works fine WITHOUT “fastboot oem lock begin”. but when i use it in the starting, everything fails.

          • Don’t use it in the start. Make sure that you have an unlocked bootloader. Locking the bootloader will not allow you to flash any files. To perform and succeed with the commands mentioned here, you need to have a device with unlocked BL.

          • Jeswin Thomas

            RE: so as i said, i tried everything without “oem lock” code and did fastboot reboot, and now my device is on 6.0.1!
            Thank you very much Dhananjay for your time and help. Without the link you provided i probably couldn’t have fixed this problem.
            Keep up the good work. πŸ™‚

          • Thank you for the appreciations Jeswin πŸ™‚

  • Anudeep Reddy

    hello Dhananjay! so i recently flashed Lineage OS on my G3 and it’s draining my battery a when i tried to roll back to stock i got gpt.bin downgrade error. before installing lineage os i had 6.0.1 january update. i need the latest version of the firware(buildnumber:MPIS24.107-55-2-12).
    could you please find this for me. and ping me when the firmware is available? please

  • Alain Ferguson

    Thanks for this. Worked on first try. No errors whatsoever!

  • Bruno Perdigao

    That’s works fine! Thank u!

    • I am glad! You’re welcome Bruno! Don’t forget to sign up for the newsletter, and you will further be notified of the articles we publish. πŸ™‚

      • Yashu Yashzz

        i did it before and it worked but again for some reason i installed custom rom and now i am trying this and i am getting error
        when i type the command “fastboot flash partition gpt.bin” it says failed to create partion any solution pls help

        • Skip the partition and bootloader commands, and try again please.

          • Yashu Yashzz

            hi can u tell me how to lock the bootloader
            i have status code 3
            i want it to be status code 2

          • I have seen several people failing to relock the bootloaders of Moto devices. Although just for a trial, connect your device in fastboot mode and enter the following command: fastboot oem lock

            Let me know if it works.

          • Yashu Yashzz

            No it doesn’t work.
            Any other method?

          • Unfortunately, no. You will have to bear with it. IMO, It is better to stay with an unlocked bootloader with stock ROM install. So in case anything goes wrong, you will have the chance to reinstall or switch ROM.