Once you’ve updated to Android 13 on Pixel 6 devices, the anti-rollback feature in the new bootloader prevents you from reverting back to a previous version.
A critical exploit discovered in the previous bootloader has necessitated a change in the Android 13 bootloader for the Pixel 6, 6 Pro, and 6a. Upon a successful boot to Android 13, the anti-rollback counter will be incremented. This action is akin to triggering an “e-fuse”, which is a permanent and irreversible process. It’s important to note that this will occur for all Tensor devices during an update, irrespective of whether the bootloader is unlocked or not.
This is what Google says:
Indeed, this is a crucial point to note. The change in the Android 13 bootloader, which increments the anti-rollback counter, applies to all Pixel 6 devices. This is the case regardless of whether the device is rooted or not. It’s a universal update that affects all users. It does not affect other generations of Pixel devices.
Upon the first successful boot of Android 13 Stable after the update, the device hardware updates an anti-rollback counter. This is a security measure designed to prevent the bootloader from reverting to a previous version. As a result, older versions of the bootloader will be unable to start. This is an important aspect of maintaining the integrity and security of the device.
What is the issue at hand?
The Over-The-Air (OTA) update process is designed to update only one slot at a time, followed by a reboot into the updated slot. It’s important to note that the OTA does not simultaneously update both slots.
In the event of a boot failure after updating to Android 13, the device may attempt to revert or “recycle” back to the old slot. This is a built-in recovery mechanism to ensure the device can still function in case of an unsuccessful update.
However, if this old slot contains a previous version of the bootloader, the device will encounter a problem. The updated anti-rollback counter in the device hardware, which was incremented during the first successful boot of Android 13, will prevent the previous version of the bootloader from starting.
This means that the device will not be able to boot up using the old slot, effectively rendering the device inoperable or “bricked”. This is a critical point to consider when updating to Android 13, as it underscores the irreversible nature of the update process.
What steps can I take to prevent this from occurring in my own situation?
Warning: All custom ROMs, Official Firmware, How-to guides, tutorials, roots, hacks, and tricks featured on our site are the intellectual property of their respective developers. We hold no responsibility for any issues that may arise with your device as a result of following these guides. Please proceed with these actions at your own discretion and risk.
If you’ve updated your device via an OTA update and encountered issues, you can simply sideload the OTA update again. Given that your device is currently operating on the Android 13 slot, this action will overwrite your old Android 12 slot with the new bootloader. This effectively replaces the old bootloader with the updated version, mitigating any issues caused by the previous version.
For those with an unlocked bootloader who prefer to update using the factory image, there’s another option. You can manually flash the bootloader to both slots. This ensures that both slots contain the updated bootloader, providing a consistent experience across your device. Here’s how you can do it:
fastboot flash bootloader --slot=all <bootloader image>
It’s highly recommended to perform these steps before updating to Android 13. However, if you’ve already updated and didn’t perform these steps, it’s important to do so as soon as possible. This will help ensure the stability of your device and prevent potential issues related to the bootloader.
After multiple updates following the August 2022 update, I am seeking assurance of whether I am still vulnerable to any risks?
That’s a reassuring point. If you’ve updated your device via an OTA update at least once since your initial update to Android 13, your device should be in a stable state.
The initial bootloader version for the Android 13 release is slider-1.2-8739948
. As long as your bootloader version is equal to or higher than this, your device should operate without issues. This is a good way to ensure that your device is up-to-date and secure.
Now, if you want to verify the version of your bootloader, you can follow the instructions below:
adb reboot bootloader #Reboots device to bootloader.
fastboot getvar current-slot #Outputs current slot, should also be visible on the device screen: "Boot slot"
fastboot getvar version-bootloader #Outputs current slot's bootloader version, should also be visible on device screen "Bootloader version"
fastboot --set-active=a or b #Use this to switch to the inactive slot - if current slot is A, set to B or vice versa.
fastboot getvar current-slot
fastboot getvar version-bootloader
fastboot --set-active=b or a (set to original slot) #Set active slot back to what it was before. If you started on slot A, make sure you switch back to slot A.
fastboot getvar current-slot
fastboot continue #Commands device to resume boot, same function as selecting "Start" in the bootloader menu.
#So as an example:
fastboot getvar current-sot
>current-slot: a
fastboot getvar version-bootloader
>version-bootloader: slider-1.2-8739948
fastboot --set-active=b
>Setting current slot to 'b'
fastboot getvar version-bootloader
>version-bootloader: slider-1.2-8739948
fastboot --set-active=a
>Setting current slot to 'a'
fastboot continue
This will provide clear instructions for users who want to verify their bootloader version.
I am participating in the Android 13 Beta testing phase
If you were on the Android 13 Beta, the situation would be the same as described above. The Beta version did not incorporate the anti-rollback feature, and the bootloaders used in the Beta are still considered “old”.
This means that if you’ve updated from the Beta to the stable release of Android 13, you should still follow the steps mentioned earlier to ensure your device’s stability and security. This includes checking your bootloader version and making sure it’s equal to or higher than slider-1.2-8739948.
Remember, these steps are crucial whether you’ve updated from a previous stable version or from the Beta.
I am wondering if the new bootloader will restrict me from flashing and running Android 12
That’s correct! The new bootloader introduced with Android 13 does indeed prevent the proper functioning of Android 12. Even though it’s technically possible to flash Android 12 on the Android 13 bootloader, and the system may even boot up, it will not operate correctly. This is due to the changes and enhancements in the Android 13 bootloader that are not compatible with Android 12. So, while you can flash Android 12, it’s not recommended due to these compatibility issues.
After updating my device, I realized that my device’s bootloader is unlocked. Am I screwed?
That’s a very important recommendation from Google. To avoid any issues when flashing a Pixel 6, Pixel 6a, or Pixel 6 Pro device with an Android 13 build for the first time, it’s advised to flash the bootloader partition to the inactive slot after successfully updating and booting into Android 13 at least once.
Here’s the recommended option:
After a successful boot into Android 13 for the first time, sideload the full OTA image corresponding to that build and reboot the device. This ensures that both slots have a bootable image. This process helps maintain the stability of your device during the update process.