Android 10 is here — for Pixel devices, at least. We typically recommend everyone update to the latest and greatest version of an operating system to enjoy its features, security patches and bug fixes, but that doesn’t mean you’re guaranteed to have a perfect experience on your new OS.
If you encounter any critical issues in Android 10 (including slowdowns), or you just miss the familiarity of Android 9, you can downgrade your device. Though you’re probably better off holding out for any fixes, or backing up your information and factory-resetting your phone to see if that addresses any problems, the nuclear option is still there if you need it.
In this guide, we’ll walk you through the process of reverting from Android 10 to Android 9. We’re doing this on a Pixel because that’s what we have (and what has Android 10). This process will be different for other Android devices — if you can even downgrade at all — and we’ll address those in a separate guide once Android 10 is more widely available.
Installing the Android SDK Platform-Tools package
We’ll be using the command-line tool ADB, short for Android Debug Bridge, to downgrade our Google Pixel 3 XL, which means we have to install the Android SDK Platform-Tools package before we can get started doing anything. Click that link, grab the installer for Windows or Mac, and unzip its contents a folder—your pick.
Make sure your phone is fully updated
This one sounds like a strange step, given we’re trying to downgrade our Pixel device, but hear me out. The downgrade won’t work if there are pending Pixel updates. So, to prevent that, pull up Settings > System > Advanced > System update and check to see if anything is available. If so, download the update, install it, and restart your device.
Download the older operating system image
For Google’s Pixel phones, the company gives you a big list of operating system images to pick from. All I had to do was find my device (a Pixel 3 XL) and grab an image for Android 9.0. Easy as that. In my case, I used the most recent Android 9 image available: 9.0.0 (PQ3A.190801.002, Aug 2019)
Spoiler: This actually wasn’t the correct file to use at all, a fact I’ll address later in this piece. It’s around this point where my first attempt at downgrading my device started to go south, and I wanted to leave my initial thoughts here so you can get a full sense of what to do, and what not to do, if you’re following some downgrading directions you saw on Google’s site for the first time.
Enable USB Debugging
In order for my computer to talk to my phone over ADB, I also needed to first enable USB Debugging. To do that, pull up Settings > About phone, scroll to the bottom to find “Build number,” and tap that frantically until you enable Developer Options on your device. Head back to Settings > System > Advanced and tap Developer options. Scroll down to the “Debugging” section and enable “USB debugging.”
Spoiler: You’ll also want to enable “OEM unlocking” while you’re here, which I neglected to do until my second downgrading attempt. More on that in a bit.
Plug your phone into your computer
Easy, right? As you’re doing this, pull up an elevated Command Prompt (right-click and select Run as Administrator) or Terminal. Navigate over to where you unzipped the Android SDK Platform-Tools package.
Reboot your Android and start downgrading (attempt one)
Spoiler: I thought this was the right process at first. I was wrong. You can read through why this doesn’t work in this section, or skip to the next section if you’re getting antsy and just want to downgrade your device without the extra education.
To get started, enter the following command to reboot your device into its recovery mode. (You might have to accept a “USB debugging” request on your device first, and then send the command again.)
adb reboot recovery
When I did this, my device pulled up a scary-looking “No command” screen. To get to the main recovery menu, I simply had to hold down the power button, tap the “up volume” button, and release the power button.
From there, I selected the “Apply update from ADB” option on my device using the volume buttons and confirmed it using the power button. My Pixel then looked like this:
Back on my computer, I ran the following command to begin sideloading Android 9 back onto my device:
adb sideload crosshatch-ota-pq3a.190801.002-13edb921.zip
Yes, that file name is the name of the Android 9 image I downloaded from Google. And, yes, it has to be in the same folder as adb — don’t forget to move it there from your default downloads folder.
Not only could I see a little flurry of activity on my device:
But I also got a little progress indicator (a per cent counter) on my Command Prompt:
And then everything failed:
How to downgrade your device (the successful attempt)
I suspect this method would allow you to upgrade your device without an issue, but there are actually a few more steps involved when you’re trying to downgrade your device.
First, I had to reboot the phone back to its regular state, revisit Developer options in the Settings app, and enable an option I forgot about: OEM unlocking.
I then rebooted back into ADB by typing
adb reboot bootloader in the Command Prompt. Next, I had to install Google’s USB drivers by downloading them, unzipping them, pulling up Windows’ Device Manager, and manually updating the flagged Android device (by right-clicking, selecting “Update driver,” and pointing to the directory where I previously unzipped Google’s USB drivers).
I unplugged my phone and plugged it back in (for good luck, I suppose), and I was able to confirm my system could see it by typing
fastboot devices in the command prompt.
I then downloaded Google’s factory image of Android 9 for my device — not the OTA image I previously pulled — and dropped it into the same folder as my ADB tool.
I felt pretty ready at this point. I unlocked my phone’s bootloader by typing
fastboot flashing unlock into the command prompt. This prompted my device to issue a scary little warning, which I ignored; I used the volume buttons to select the new “Unlock the bootloader” option and confirmed using the power button.
While my phone’s bootloader unlocked, I unzipped the factory image I previously downloaded directly into my ADB folder, so its contents were swimming among all the other files. (Don’t unzip them to a new folder within your platform-tools folder.)
Finally, I typed
flash-all into my Command Prompt and crossed my fingers. And... that failed, too, because it said the image wasn’t compatible with my device. Sigh.
To get around this issue, I decided to try flashing with a different factory image entirely — the very first “crosshatch” image available for my Pixel 3 XL, “9.0.0 (PD1A.180720.030, Sep 2018).“ I deleted the previous image’s contents from my platform-tools folder, unzipped this image’s contents into the folder like before, and ran flash-all again. And it seemed as if things were working, as I was getting a lot more data about the update processing than before:
After about two minutes, the update finished and my device automatically rebooted. With more fingers crossed — I think I was losing circulation by this point — I powered down my Pixel and manually rebooted it into fastboot mode by holding down the power and volume-down buttons. I then entered
fastboot flashing lock into the Command Prompt to lock the bootloader back up (which, again, required me to pick the correct prompt on my phone).
Finally, I rebooted my device one final time by selecting the “Start” option on the fastboot screen (using the power button, of course). And — Great Scott! — we’ve travelled back to the past. Here’s that Pixel 3 XL now on Android 9 with the old September 2018 security update:
A summary of how to (really) downgrade your device
I realise that this long, meandering journey to downgrade my phone might be slightly confusing, but I wanted to walk you through the process to show you the trial-and-error steps you might have to take when you’re performing a downgrade on your device — be it a Pixel, a Samsung, or whatnot.
I’ve seen plenty of “downgrading Android” guides that tend to leave out a step or two that’s absolutely critical to the equation. Or, worse, they leave you hanging when you follow their steps and find that the process didn’t work for you. By watching how I did it, hopefully you’ve leveled up your troubleshooting techniques should you find yourself similarly stuck.
Here’s my final checklist of steps for downgrading my Pixel:
Download and install the Android SDK Platform-Tools package
Download and install Google’s USB drivers for your phone
Make sure your phone is fully updated
Enable Developer Options and turn on USB Debugging and OEM Unlocking
Download a factory image for your device for whatever version of Android you want. (The most recent image might not be the optimal choice. Also, don’t use an OTA image.)
Use a Command Prompt or Terminal to boot your device into its fastboot mode, and then unlock the bootloader
Use the factory image’s “flash-all” command to begin the downgrade
Lock your device’s bootloader when done
It seems so simple in hindsight, right?