How To Guide Android 13 is OUT! (August 15, 2022 - TP1A.220624.021) - Unlocking the Pixel 6 Pro bootloader & central repository of relevant links

Search This thread

Attinderkahlon

Senior Member
Dec 9, 2014
120
15
Is this the stable release update for the QPR ?

I'm asking because I want to opt out of the qpr beta program without a data wipe.
 

roirraW "edor" ehT

Forum Moderator
Staff member
Pardon my ignorance but is 'sq3a.220605.009.b1-factory-157e2284' for the beta program? I'm on May 12L stable (rooted/ custom kernel) and don't want to be enrolled in the betas.
I'm guessing that yes, that's the Beta. See the top of the first post in this thread for the links to the Verizon and Global Stable June factory images.

Also, see the following:
Just so there's no confusion...

 
  • Like
Reactions: jcp2 and Lughnasadh

roirraW "edor" ehT

Forum Moderator
Staff member
Magisk Beta v25 is out. BEWARE if you're going to flash a custom kernel on the June stock firmware without Verity and Verification disabled, and use Magisk v25, you may have to jump through hoops to get the custom kernel working. So either stick with Stable v24.3 for now, or look out for info from your favorite custom kernel developer for a modification to their custom kernel package to make it work with Magisk v25.

Kiri has made the adjustments with his new release today (incorporating catntrips hashtree patcher work) and "should" work but hasn't been tested on Magisk 25. He still recommends using Stable 24.3 or Canary pre-24303 at this time to avoid potential conflicts.


Magisk v25.0

Latest

Another major release! A lot of the changes aren't visible at the surface, but v25 is actually a really substantial upgrade!

MagiskInit Rewrite​

A significant portion of magiskinit (the critical software that runs before your device boots up) is completely rewritten from scratch. Ever since Android introduced Project Treble in Android 8.0, Magisk has been constantly fighting against the increasingly complex partitioning and early mount setups of all kinds of devices, sometimes with weird OEM specific implementations. It got to a point that magiskinit had become so complicated that few people (including myself!) were aware of every detail, and maintaining this piece of software like this was clearly not sustainable. After many months of planning (yes, this whole re-architecture has been in my head for a long time) and some help from external contributors, a whole new sepolicy injection mechanism is introduced into Magisk, solving the "SELinux Problem" once and for all.
Since this is a full paradigm shift on how Magisk hot-patch the device at boot, several behaviors that many developers implicitly relied on might not exist. For example, Magisk no longer patches fstabs in most scenarios, which means AVB will remain intact; some custom kernels rely on AVB being stripped out for them by Magisk.

MagiskSU Security Enhancements​

The superuser functionality of Magisk has not seen much changes ever since its introduction. v25 focuses on making root permission management more accurate and secure:
  • Add a whole new package tracking system to ensure malicious UID reuse attack cannot be performed
  • Properly support and implement the UX in the Magisk app for packages using sharedUserId
  • Enforce root manager APK signature verification to combat the rampant unofficial Magisk app "mods"
Many might not realize, but using a trusted, unmodified Magisk app is really important. Magisk's root daemon treats the Magisk app differently and gives it blanket root access without any restrictions. A modded Magisk app can potentially backdoor your device.
And in case some of you are about to put on your tin foil hats, this is not designed to "vendor lock-in"; the goal is to make sure your root management app comes from the same developer of the underlying root implementation. Magisk's build system allows custom distributors to use its own signing keys, and in addition, I am also providing official debug builds which skips any signature verification for development.

Full Changelog: here

Assets​

4

Magisk Changelog​

v25.0​

  • [MagiskInit] Update 2SI implementation, significantly increase device compatibility (e.g. Sony Xperia devices)
  • [MagiskInit] Introduce new sepolicy injection mechanism
  • [MagiskInit] Support Oculus Go
  • [MagiskInit] Support Android 13 GKIs (Pixel 6)
  • [MagiskBoot] Fix vbmeta extraction implementation
  • [App] Fix stub app on older Android versions
  • [App] [MagiskSU] Properly support apps using sharedUserId
  • [MagiskSU] Fix a possible crash in magiskd
  • [MagiskSU] Prune unused UIDs as soon as system_server restarts to prevent UID reuse attacks
  • [MagiskSU] Verify and enforce the installed Magisk app’s certificate to match the distributor’s signature
  • [MagiskSU] [Zygisk] Proper package management and detection
  • [Zygisk] Fix function hooking on devices running Android 12 with old kernels
  • [Zygisk] Fix Zygisk’s self code unloading implementation
  • [DenyList] Fix DenyList on shared UID apps
  • [BusyBox] Add workaround for devices running old kernels
 
Last edited:
  • Like
Reactions: Lughnasadh

Lughnasadh

Senior Member
Mar 23, 2015
3,628
3,783
Google Nexus 5
Huawei Nexus 6P
Magisk v25 is out. BEWARE if you're going to flash a custom kernel on the June stock firmware without Verity and Verification disabled, and use Magisk v25, you may have to jump through hoops to get the custom kernel working. So either stick with Stable v24.3 for now, or look out for info from your favorite custom kernel developer for a modification to their custom kernel package to make it work with Magisk v25.

Kiri has made the adjustments with his new release today (incorporating catntrips hashtree patcher work) and "should" work but hasn't been tested on Magisk 25. He still recommends using Stable 24.3 or Canary pre-24303 at this time to avoid potential conflicts.
 

roirraW "edor" ehT

Forum Moderator
Staff member
not sure what happened
flashed the factory image with the -w removed
now it boot loops.
Did you disable all Magisk Modules? Search the OP of this thread for the word "safe" for how to boot into safe mode, which will disable all Magisk Modules, then you can reboot as normal and make sure it works, and the modules will remain disabled until you re-enable them.
 
  • Like
Reactions: Lughnasadh

Paz9

Senior Member
Jan 3, 2011
2,576
681
Did you disable all Magisk Modules? Search the OP of this thread for the word "safe" for how to boot into safe mode, which will disable all Magisk Modules, then you can reboot as normal and make sure it works, and the modules will remain disabled until you re-enable them.
i thought flashing stock gets rid of the modules?
regardless, i cant enter safemode...
 
  • Wow
Reactions: roirraW "edor" ehT

roirraW "edor" ehT

Forum Moderator
Staff member
i thought flashing stock gets rid of the modules?
regardless, i cant enter safemode...
If you don't wipe, it doesn't get rid of anything except root. Did you re-root the new boot.img with Magisk Stable v24.3 and flash the rooted new boot.img? If you didn't re-root, then ignore that part. The modules would still exist but shouldn't do anything at all if the kernel isn't rooted.

If you did re-root you could always reflash the factory image (with -w removed again) and don't re-root if you have to, or just flash the stock boot.img if you hadn't flashed a custom kernel.

It's not easy to get into safe mode, but it can take multiple tries to get used to how to do it.

If all else fails you can search the OP for the link to the official Android Flash Tool (Google's website). This has fixed things that flashing the full factory image didn't fix for many, many users. You can even check/uncheck the option to wipe to try a dirty flash using the flash site first.
 
  • Like
Reactions: Lughnasadh

Paz9

Senior Member
Jan 3, 2011
2,576
681
If you don't wipe, it doesn't get rid of anything except root. Did you re-root the new boot.img with Magisk Stable v24.3 and flash the rooted new boot.img? If you didn't re-root, then ignore that part. The modules would still exist but shouldn't do anything at all if the kernel isn't rooted.

If you did re-root you could always reflash the factory image (with -w removed again) and don't re-root if you have to, or just flash the stock boot.img if you hadn't flashed a custom kernel.

It's not easy to get into safe mode, but it can take multiple tries to get used to how to do it.

If all else fails you can search the OP for the link to the official Android Flash Tool (Google's website). This has fixed things that flashing the full factory image didn't fix for many, many users. You can even check/uncheck the option to wipe to try a dirty flash using the flash site first.
tried both patched boot image and unpatched.
neither work... will try the android flash tool.. really hope i dont need to wipe.

re-flashed may, and it boots... ill re-download the june zip incase it was corrupt.

edit: the flash tool worked, now im on june, rooted.
not sure why it didnt work with the flash all zip...
 
Last edited:

roirraW "edor" ehT

Forum Moderator
Staff member
Argh. I disabled Magisk Modules, I'm still on Magisk v24.3, and just like every month I tried the flash-all with the -w removed, and this is what I got (check the bottom of the log):

S:\platform-tools>flash-all
Sending 'bootloader_b' (11506 KB) OKAY [ 0.047s]
Writing 'bootloader_b' (bootloader) Flashing pack version slider-1.2-8318357
(bootloader) flashing platform gs101
(bootloader) Validating partition ufs
(bootloader) Validating partition ufs
(bootloader) Validating partition partition:0
(bootloader) Validating partition partition:1
(bootloader) Validating partition partition:2
(bootloader) Validating partition partition:3
(bootloader) Validating partition bl1_b
(bootloader) Validating partition pbl_b
(bootloader) Validating partition bl2_b
(bootloader) Validating partition abl_b
(bootloader) Validating partition bl31_b
(bootloader) Validating partition tzsw_b
(bootloader) Validating partition gsa_b
(bootloader) Validating partition ldfw_b
(bootloader) Flashing partition ufs
(bootloader) Flashing partition ufs
(bootloader) Flashing partition partition:0
(bootloader) Flashing partition partition:1
(bootloader) Flashing partition partition:2
(bootloader) Flashing partition partition:3
(bootloader) Flashing partition bl1_b
(bootloader) Flashing partition pbl_b
(bootloader) Flashing partition bl2_b
(bootloader) Flashing partition abl_b
(bootloader) Flashing partition bl31_b
(bootloader) Flashing partition tzsw_b
(bootloader) Flashing partition gsa_b
(bootloader) Flashing partition ldfw_b
(bootloader) Loading sideload ufsfwupdate
OKAY [ 2.782s]
Finished. Total time: 2.837s
Rebooting into bootloader OKAY [ 0.000s]
Finished. Total time: 0.002s
Sending 'radio_b' (81952 KB) OKAY [ 0.333s]
Writing 'radio_b' (bootloader) Flashing pack version g5123b-100840-220505-M-8544885
(bootloader) Flashing partition modem_b
OKAY [ 0.100s]
Finished. Total time: 0.444s
Rebooting into bootloader OKAY [ 0.000s]
Finished. Total time: 0.005s
--------------------------------------------
Bootloader Version...: slider-1.2-8318357
Baseband Version.....: g5123b-100840-220505-B-8544885
Serial Number........: <redacted>
--------------------------------------------
extracting android-info.txt (0 MB) to RAM...
Checking 'product' OKAY [ 0.000s]
Checking 'version-bootloader' OKAY [ 0.000s]
Checking 'version-baseband' OKAY [ 0.000s]
Setting current slot to 'b' OKAY [ 0.080s]
extracting boot.img (64 MB) to disk... took 0.212s
archive does not contain 'boot.sig'
Sending 'boot_b' (65536 KB) OKAY [ 0.264s]
Writing 'boot_b' OKAY [ 0.080s]
archive does not contain 'init_boot.img'
extracting dtbo.img (16 MB) to disk... took 0.037s
archive does not contain 'dtbo.sig'
Sending 'dtbo_b' (16384 KB) OKAY [ 0.067s]
Writing 'dtbo_b' OKAY [ 0.018s]
archive does not contain 'dt.img'
archive does not contain 'pvmfw.img'
archive does not contain 'recovery.img'
extracting vbmeta.img (0 MB) to disk... took 0.001s
archive does not contain 'vbmeta.sig'
Sending 'vbmeta_b' (8 KB) OKAY [ 0.000s]
Writing 'vbmeta_b' OKAY [ 0.002s]
extracting vbmeta_system.img (0 MB) to disk... took 0.001s
archive does not contain 'vbmeta_system.sig'
Sending 'vbmeta_system_b' (4 KB) OKAY [ 0.000s]
Writing 'vbmeta_system_b' OKAY [ 0.002s]
extracting vbmeta_vendor.img (0 MB) to disk... took 0.001s
archive does not contain 'vbmeta_vendor.sig'
Sending 'vbmeta_vendor_b' (4 KB) OKAY [ 0.000s]
Writing 'vbmeta_vendor_b' OKAY [ 0.002s]
extracting vendor_boot.img (64 MB) to disk... took 0.217s
archive does not contain 'vendor_boot.sig'
Sending 'vendor_boot_b' (65536 KB) OKAY [ 0.267s]
Writing 'vendor_boot_b' OKAY [ 0.078s]
extracting super_empty.img (0 MB) to disk... took 0.001s
Rebooting into fastboot OKAY [ 0.000s]
< waiting for any device >
Sending 'super' (4 KB) FAILED (Write to device failed in SendBuffer() (Too many links))
fastboot: error: Command failed
Press any key to exit...

I can get Android Flash Tool to see my device, but I don't see a way of selecting the June 2022 Stable Build. Only either the March build or a Beta/Developer Preview. I'll try flashing the May 2022 Stable build with flash-all now. I had previously checked the hash of the full firmware zip and it had matched.

Edit: I get the same with the May full firmware. Probably going to have to do a full wipe.

Edit 2: Solved.
  1. I uninstalled Samsung's driver (which I use for my tablet) even though it worked fine for the April and May Pixel updates. I haven't checked to see if there's an updated Samsung driver yet, but I'll likely just swap back and forth between official Google and Samsung drivers depending on which device I'm flashing, from now on. There definitely isn't an updated Google driver.
  2. I then turned the phone off and back on into Fastboot mode manually.
  3. Then I used one of my other USB-C connections although the one I was trying and failing with earlier I had used at least last month just fine.

None of these things individually would solve the issue. All is good and June just now flashed and booted fine.

Note to everyone (and for myself to remember). The first time launching my hidden Magisk it said I needed to restore the app, but by clicking Cancel and then launching it again, Magisk loaded fine.

I decided to wait to see if Magisk v25 or higher goes Stable, so I'm still on Stable v24.3.
 
Last edited:

jcp2

Senior Member
Just wanted to say, used Android flash tool (kept verity enabled / kept data / kept bootloader unlocked) rebooted, let phone finish android update, rebooted to fastboot (platform tools 33.0.2) and flashed patched boot.img (slot all) supplied here (big thank you to @Lycidias ) all went smooooth! Easy peasy, light and breazy :) :) Rooted Magsik 24.3 stable with new custom kernel. Thanks @Freak07 kirisakura kernel 3.0.0.
 
Last edited:

roirraW "edor" ehT

Forum Moderator
Staff member
Just wanted to say, used Android flash tool (kept verity enabled / kept data / kept bootloader unlocked) rebooted, let phone finish android update, rebooted to fastboot (platform tools 30.0.2) and flashed patched boot.img (slot all) supplied here (big thank you to @Lycidias ) all went smooooth! Easy peasy, light and breazy :) :) Rooted Magsik 24.3 stable with new custom kernel. Thanks @Freak07 kirisakura kernel 3.0.0.
I'm surprised (but glad) it works fine with the old Platform Tools (v33.0.1 is the latest, but is also a few months old).
 
Last edited:
  • Like
Reactions: Lughnasadh

Top Liked Posts

  • 8
    Thanks for the detailed explanation. I wonder why this is the first time we are hearing of the e-fuse? It also makes one wonder why Google is taking such permanent measures, given their generally open attitude towards developers on Pixel/Nexus devices...like, who cares if someone was able to downgrade?

    As far as what it does and what it changes, it sounds like this is something we'll have to find out for ourselves unfortunately. But for the time being I would think it's safe to say that everyone updating should flash the A13 bootloader to both slots just to be safe in case of a alternate slot bootloop.
    I don't know why, but it could be because of this: https://blog.quarkslab.com/attacking-titan-m-with-only-one-byte.html

    The time frame lines up, antirollback commit was implemented in the days after Google told the researcher they are developing a fix.

    And it's pretty big, allowing the ex-filtration of the secret keys inside the Titan and doing arbitrary code execution right on the Titan, a complete permanent compromise of the device. This is probably why Google is trying to stop people from downgrading to Android 12. Understandable why this is the first time Google is doing this, someone can resell this permanently compromised device to anyone, or do this to someone's phone. It's too late though, any Tensor device not updated to Android 13 could be forever compromised, so really the security theater of Pixel devices has just been torn down. We'll see if the Pixel 7 or Titan M3 fares better. Previous Pixel phones do not implement these OTP bit checks inside their bootloaders so I believe they are never going to have to worry about being stopped from downgraded, although they are susceptible to compromise.

    The average person should never brick their phone from this, the GrapheneOS tester only had this happen because they were testing GrapheneOS on Android 13 and were capable of flashing a borked ROM.
    But yes if you're updating to Android 13 manually via fastboot just run

    1. fastboot --slot all flash bootloader bootloader.img
    2. fastboot --slot all flash radio radio.img
    3. fastboot reboot bootloader
    4. fastboot --slot all update image.zip
      1. If using Magisk then use fastboot --slot all --skip-reboot update image.zip and select reboot to bootloader in fastbootd once fastboot is done flashing to flash your patched Magisk boot image.
    If you are already on Android 13 then just perform steps 1-2-3.
    3
    i am somewhat knowledgable on flashing process, but i am currently on Lineage 19.1 and will be jumping directly from LOS to android 13. i have to select wipe as my data is coming from custom oS no???
    Yes, absolutely. In that case, I would also choose the Android Flash Tool's option to force flash all partitions, too.

    i would select force flash all partitions to ensure both slots get flashed???
    Ha! I was writing before I finished reading. Yes.

    this anti roll back thing has never worried me and i dont want to brick my 6 pro.....

    is the upgrade from coming from custom os???
    Is there supposed to be another word in there, such as "safe"?
    Like: is the upgrade safe from coming from custom os???

    If that was your intended question, I have no idea from personal experience on the Pixel 6 Pro. Presumptively, yes, it's as safe as flashing stock from any custom OS I've ever used in the last 12 years has been. I don't definitively answer Yes to a scenario I haven't actually experienced myself unless it's brought up so often in the forum threads I visit that I know the answer without a doubt.

    For what it's worth, I don't think the Android 13 bootloader not being able to be downgraded will have any effect on your process, since that's not what you're doing.

    Hope that helps.
    3
    I don't know why, but it could be because of this: https://blog.quarkslab.com/attacking-titan-m-with-only-one-byte.html

    The time frame lines up, antirollback commit was implemented in the days after Google told the researcher they are developing a fix.

    And it's pretty big, allowing the ex-filtration of the secret keys inside the Titan and doing arbitrary code execution right on the Titan, a complete permanent compromise of the device. This is probably why Google is trying to stop people from downgrading to Android 12. Understandable why this is the first time Google is doing this, someone can resell this permanently compromised device to anyone, or do this to someone's phone. It's too late though, any Tensor device not updated to Android 13 could be forever compromised, so really the security theater of Pixel devices has just been torn down. We'll see if the Pixel 7 or Titan M3 fares better. Previous Pixel phones do not implement these OTP bit checks inside their bootloaders so I believe they are never going to have to worry about being stopped from downgraded, although they are susceptible to compromise.
    Interesting. It sounds like this could potentially backdoor the new Play Integrity API as well because that relies on TEE and HKA.
    The average person should never brick their phone from this, the GrapheneOS tester only had this happen because they were testing GrapheneOS on Android 13 and were capable of flashing a borked ROM.
    But yes if you're updating to Android 13 manually via fastboot just run

    1. fastboot --slot all flash bootloader bootloader.img
    2. fastboot --slot all flash radio radio.img
    3. Reboot the phone
    4. fastboot --skip-reboot update image.zip
    5. Select reboot to bootloader from inside fastbootd
    6. fastboot --set-active=other
    7. fastboot update image.zip
    8. If using Magisk then add a --skip-reboot to then boot back into the bootloader to flash your patched image.
    Why not update both slots at the same time? fastboot update --skip-reboot --slot=all image-device-buildnumber.zip

    I always get the message Warning: slot set to 'all'. Secondary slots will not be flashed. however it does flash both slots...

    1660687015061.png
    3
    I've been following the android 13 upgrade postings and I'm surprised not more people know this.
    If you add --force to fastboot update "fastboot --force update image-*" you can downgrade back to Android 12 as long as you wipe data.
    I tried this as soon as I upgraded to 13 and yes you can downgrade down to Android 12 after upgrading with no noticable issues. The radio and every other image but the bootloader can be downgraded. But I only tried 003, 004 July images for oriole so I don't know about anything lower personally.
    3
    If you have an unlocked bootloader, or at least have OEM unlocking enabled (in the second case, the site will unlock the bootloader for you). And you make sure the "Wipe" option gets unchecked.

    Some people like me like to have a little more hands-on approach.
  • 9
    I think this just means you won't be able to downgrade the bootloader itself. Don't take my word for it but I suspect that one could still run older versions on the new bootloader.

    To test this, just download the factory zip and update the bootloader only.
    You are correct.

    I did:

    Code:
    adb reboot bootloader
    fastboot flash bootloader bootloader-raven-slider-1.2-8739948.img
    fastboot reboot

    And I'm booted into Android 12 still just fine. Below is the command prompt output:
    S:\platform-tools>adb reboot bootloader
    * daemon not running; starting now at tcp:5037
    * daemon started successfully

    S:\platform-tools>fastboot flash bootloader bootloader-raven-slider-1.2-8739948.img
    Sending 'bootloader_b' (11554 KB) OKAY [ 0.047s]
    Writing 'bootloader_b' (bootloader) Flashing pack version slider-1.2-8739948
    (bootloader) flashing platform gs101
    (bootloader) Validating partition ufs
    (bootloader) Validating partition ufs
    (bootloader) Validating partition partition:0
    (bootloader) Validating partition partition:1
    (bootloader) Validating partition partition:2
    (bootloader) Validating partition partition:3
    (bootloader) Validating partition bl1_b
    (bootloader) Validating partition pbl_b
    (bootloader) Validating partition bl2_b
    (bootloader) Validating partition abl_b
    (bootloader) Validating partition bl31_b
    (bootloader) Validating partition tzsw_b
    (bootloader) Validating partition gsa_b
    (bootloader) Validating partition ldfw_b
    (bootloader) Flashing partition ufs
    (bootloader) Flashing partition ufs
    (bootloader) Flashing partition partition:0
    (bootloader) Flashing partition partition:1
    (bootloader) Flashing partition partition:2
    (bootloader) Flashing partition partition:3
    (bootloader) Flashing partition bl1_b
    (bootloader) Flashing partition pbl_b
    (bootloader) Flashing partition bl2_b
    (bootloader) Flashing partition abl_b
    (bootloader) Flashing partition bl31_b
    (bootloader) Flashing partition tzsw_b
    (bootloader) Flashing partition gsa_b
    (bootloader) Flashing partition ldfw_b
    (bootloader) Loading sideload ufsfwupdate
    OKAY [ 2.766s]
    Finished. Total time: 2.825s

    S:\platform-tools>fastboot reboot
    Rebooting OKAY [ 0.001s]
    Finished. Total time: 0.002s

    S:\platform-tools>

    Note to anyone, if after upgrading to 13 you want to downgrade to 12 using a full factory image's flash-all.bat, you'll at minimum have to either remove Android 12's bootloader flash line from the file, or replace it with fastboot flash bootloader bootloader-raven-slider-1.2-8739948.img (and have the right bootloader file in the same folder). Either should work fine.
    8
    Thanks for the detailed explanation. I wonder why this is the first time we are hearing of the e-fuse? It also makes one wonder why Google is taking such permanent measures, given their generally open attitude towards developers on Pixel/Nexus devices...like, who cares if someone was able to downgrade?

    As far as what it does and what it changes, it sounds like this is something we'll have to find out for ourselves unfortunately. But for the time being I would think it's safe to say that everyone updating should flash the A13 bootloader to both slots just to be safe in case of a alternate slot bootloop.
    I don't know why, but it could be because of this: https://blog.quarkslab.com/attacking-titan-m-with-only-one-byte.html

    The time frame lines up, antirollback commit was implemented in the days after Google told the researcher they are developing a fix.

    And it's pretty big, allowing the ex-filtration of the secret keys inside the Titan and doing arbitrary code execution right on the Titan, a complete permanent compromise of the device. This is probably why Google is trying to stop people from downgrading to Android 12. Understandable why this is the first time Google is doing this, someone can resell this permanently compromised device to anyone, or do this to someone's phone. It's too late though, any Tensor device not updated to Android 13 could be forever compromised, so really the security theater of Pixel devices has just been torn down. We'll see if the Pixel 7 or Titan M3 fares better. Previous Pixel phones do not implement these OTP bit checks inside their bootloaders so I believe they are never going to have to worry about being stopped from downgraded, although they are susceptible to compromise.

    The average person should never brick their phone from this, the GrapheneOS tester only had this happen because they were testing GrapheneOS on Android 13 and were capable of flashing a borked ROM.
    But yes if you're updating to Android 13 manually via fastboot just run

    1. fastboot --slot all flash bootloader bootloader.img
    2. fastboot --slot all flash radio radio.img
    3. fastboot reboot bootloader
    4. fastboot --slot all update image.zip
      1. If using Magisk then use fastboot --slot all --skip-reboot update image.zip and select reboot to bootloader in fastbootd once fastboot is done flashing to flash your patched Magisk boot image.
    If you are already on Android 13 then just perform steps 1-2-3.
    6
    I guess I'm splitting hairs then, because there's still no physical fuse that gets physically destroyed...but what you described has the same effect, permanently writing a 1.

    Question is, when exactly is blow_ar called? What does this change/how is it used? Does this simply mean the bootloader will reject older bootloader images, or that it will reject all images older than the bootloader date?
    There actually is a physical object being destroyed. Yes, there isn't a typical fuse being blown, as a typical fuse blows and opens the circuit. Instead what is implemented is an antifuse. These are the opposite of fuses ("anti") and are normally open. When enough voltage is passed they blow closed, and they actually do blow, they use oxide-breakdown cells that physically break down when the voltage threshold is met. This is more favorable for integrated circuits as blocking flow is a 0 and flowing is a 1. Old terminology hangs around and still refers to these as a fuse, from IBM's technology they named "eFuses" even though they perform opposite of a fuse. The modern terminology is to call them One-Time Programmable memory, or OTP memory. Modern processors have plenty of these. I don't know how many OTP bits are included on Tensor, but another ARM SoC the Rockchip RK3399 has 2 kibibits worth of OTP.

    You can read more about them in this PDF, page 31 chapter 6 section 3.

    There are OTP cells being blown, inside boot_control it is invoking a system monitor call with what I think are called contexts or secure applications, SMC_CM_OTP_CONTROL (0xC2001014UL).
    OTP_CONTROL being One-Time Programmable Control.
    The other things being passed are CMD_W_ANTIRBK_NS_AP (0x7UL) and CMD_W_ANTIRBK_S_AP (0x9UL), which are the bits (7 and 9) being blown. I can only infer that the NS and S are for the normal world (NS) and secure world (S).

    As for when /sys/kernel/boot_control/blow_ar is being blown, it is blown inside BootControl::markBootSuccessful, which is what is setting both the fuse and writing to devinfo that the slot had booted successfully. I don't know when exactly a boot is successful, but it is being ran by a service after Android boots up enough to be considered a success.

    What does it change and how does the bootloader use this? Well, we'll never know. We're not privileged enough to know this. The source code for the many (there's something like four) bootloaders are kept closed source. Anything below the kernel and device tree we just don't know. Given that there is a bricked Pixel 6 out there due to the bits being blown on A13 and the slot switched back to A12, it isn't just the Android bootloader checking this, it's below that in either the BL1 or BL2 boot firmware. This I assume lines up with the bits being blown for normal world and secure world, as BL1 operates in the secure world while the Android bootloader operates in the normal world.

    What can we do about this? Really, nothing.
    6
    Android 13 looks to be OUT!

    13.0.0 (TP1A.220624.021, Aug 2022)FlashLinkd8ddfdca3af0b97b3b99460afdab3cf95a741f988dccd5122564c855a64baa36
    6
    Woah! Not August but two new July images here. (not saying that @spotmark isn't getting the August OTA)

    12.1.0 (SQ3A.220705.003.A3, Jul 2022, Verizon, Verizon MVNOs)FlashLink5651ee94a61222e2c03ca55b76f4aa452c5eed9e43ad8aabb7060739177e1689
    12.1.0 (SQ3A.220705.004.A1, Jul 2022, Softbank)FlashLink6b60f5a6401b35c635408494b54323825a8bcf5c85384a7cc2c241849a2d7413
  • 58
    Android 13 is OUT!

    My tiny, early, very mini-review of Android 13 is here.

    NOTE that if you use the full factory image to flash, to be safe, you'll want to flash to your current slot, change slots, and then flash again to the new slot.
    Thanks to @Lughnasadh for sharing the news about this, starting here.

    Also see here for the reason this was done:



    I've been following the android 13 upgrade postings and I'm surprised not more people know this.
    If you add --force to fastboot update "fastboot --force update image-*" you can downgrade back to Android 12 as long as you wipe data.
    I tried this as soon as I upgraded to 13 and yes you can downgrade down to Android 12 after upgrading with no noticable issues. The radio and every other image but the bootloader can be downgraded. But I only tried 003, 004 July images for oriole so I don't know about anything lower personally.

    How to flash both slots using the full factory image BOTH SLOTS at the same time:
    I don't know why, but it could be because of this: https://blog.quarkslab.com/attacking-titan-m-with-only-one-byte.html

    The time frame lines up, antirollback commit was implemented in the days after Google told the researcher they are developing a fix.

    And it's pretty big, allowing the ex-filtration of the secret keys inside the Titan and doing arbitrary code execution right on the Titan, a complete permanent compromise of the device. This is probably why Google is trying to stop people from downgrading to Android 12. Understandable why this is the first time Google is doing this, someone can resell this permanently compromised device to anyone, or do this to someone's phone. It's too late though, any Tensor device not updated to Android 13 could be forever compromised, so really the security theater of Pixel devices has just been torn down. We'll see if the Pixel 7 or Titan M3 fares better. Previous Pixel phones do not implement these OTP bit checks inside their bootloaders so I believe they are never going to have to worry about being stopped from downgraded, although they are susceptible to compromise.

    The average person should never brick their phone from this, the GrapheneOS tester only had this happen because they were testing GrapheneOS on Android 13 and were capable of flashing a borked ROM.
    But yes if you're updating to Android 13 manually via fastboot just run

    1. fastboot --slot all flash bootloader bootloader.img
    2. fastboot --slot all flash radio radio.img
    3. fastboot reboot bootloader
    4. fastboot --slot all update image.zip
      1. If using Magisk then use fastboot --slot all --skip-reboot update image.zip and select reboot to bootloader in fastbootd once fastboot is done flashing to flash your patched Magisk boot image.
    If you are already on Android 13 then just perform steps 1-2-3.

    How to flash both slots using the full factory image ONE SLOT at a time:
    I use the full Pixel 6 Pro Factory Image to update each month. Use the same official latest ADB/Fastboot (SDK Platform Tools) you normally use. Edit the flash-all.bat (if on Windows - if on something else, edit the appropriate flash-all script file) and remove the "-w" and re-save it. If you want to keep the flash-all.bat from rebooting automatically after the update so that you can change slots and flash again, add fastboot --skip-reboot in the flash-all.bat after the fastboot update image-raven-xyNz.YYMMDD.BBB.zip line. Thanks, @Homeboy76 and @Lughnasadh!

    Re-open the script file and confirm that you saved it with the "-w" removed, so it doesn't wipe your device.

    From running Android:
    Code:
    adb reboot bootloader
    (Let it reboot into Fastboot mode.  Make note of which active slot is listed on the Fastboot screen, third item from the bottom.)
    
    flash-all.bat
    (WITH "-w" removed.  Let it flash everything, will take several minutes.)
    
    Let it boot up (and check the notifications for the update process to finish while Android is running)
    
    adb reboot bootloader
    
    On the Fastboot screen, change to the opposite slot with either:
    
    fastboot --set-active=a
    (If you're on slot b)
    
    OR
    
    fastboot --set-active=b
    (If you're on slot a)
    
    OR
    
    [QUOTE="Homeboy76, post: 87298957, member: 4810220"]
    I think you may want to use
    [ICODE] fastboot --set-active=other[/ICODE]
    it lowers the mistake threshold.
    [/QUOTE]
    
    flash-all.bat
    (again)

    13.0.0 (TP1A.220624.021, Aug 2022)FlashLinkd8ddfdca3af0b97b3b99460afdab3cf95a741f988dccd5122564c855a64baa36

    Note that this is mainly for the officially listed "Unlocked" Pixel 6 Pro, available directly from the Google Store. All of this will also apply to any other (carrier-specific) variant of the Pixel 6 Pro which you can achieve an unlocked bootloader on. This includes T-Mobile and AT&T variants. It's likely Verizon variants will never be able to unlock their bootloader, or if so it will require paying the right person to do so.

    Feel free to ask about general questions, but for anything that's specific to your variant, you should use one of the other already existing threads. You'll find Verizon, AT&T, and T-Mobile-related threads in those respective search results.

    Here there be dragons. 🐉 I am not responsible for anything at all. 😹

    Unlocking or locking the bootloader will wipe the device every single time, so be sure to have your data backed up before doing so, or better yet, just unlock it as soon as you get the device.


    Keep in mind that unlocking the bootloader or rooting might affect your phone's capability to use banking apps such as Google Pay, your local bank's app, or even the ability to install some apps like NetFlix. See @Pekempy's thread Working SafetyNet with Pixel 6 Pro Android 12

    If you're going to re-lock the bootloader, make sure the ROM you have on your phone is completely stock (by flashing the latest official firmware) BEFORE re-locking it.

    There are no negative consequences if you unlock or re-lock the bootloader other than it will wipe your phone, and while unlocked you get a brief screen when you boot the phone telling you (and anyone who sees your phone at the time) that the bootloader is unlocked. You will also continue to receive updates (if you've merely unlocked the bootloader, you can take updates as normal) unlike Samsung, Sony, et cetera, which have permanent major consequences with reduced functionality even if you un-root and re-lock your bootloader. If you're actually rooted (not just bootloader unlocked), you'll have to perform extra steps to manually update each month, and to keep root/re-root.


    All posts about Google Pay or banking will be reported to be deleted. Please keep this thread on-topic. There are at least one or two other How To Guide threads in this section in which folks discuss how to get around banking app restrictions when you're rooted or just have an unlocked bootloader. See @Pekempy's thread Working SafetyNet with Pixel 6 Pro Android 12
    If users persist in discussing banking apps in this thread, I will have this thread locked and only update this first post when there is new and updated information regarding the subjects of the title of the thread: Unlocking the Pixel 6 Pro bootloader, rooting, and TWRP. See @Pekempy's thread Working SafetyNet with Pixel 6 Pro Android 12

    Honorable mention to @Jawomo's aodNotify - Notification Light / LED for Pixel 6 Pro! (XDA link) / Notification light / LED for Pixel - aodNotify (Play Store link), which in my opinion restores useful functionality missing in most phones these days. It also solves some subjective issues some folks have with AOD (Always On Display), and/or solves/works around the problem where AOD is required for the optical fingerprint reader to work without the screen being on.​


    Check warranty status - *may* reveal if a phone is refurbished, only if the phone was refurbished through Google - thanks to @Alekos for making me aware of the site.
    Official Google Pixel Update and Software Repair (reported as of January 23, 2022 to still not be updated for the Pixel 6/Pro yet)

    Google's Help Page for Find problem apps by rebooting to safe mode - this can be a lifesaver and keep you from having to do a restore to 100% complete stock or even from having to do a factory reset. This will deactivate all Magisk modules, and they'll remain deactivated even after you boot normally after briefly booting to safe mode. You can reenable the Magisk modules as you wish to try to narrow down the problem if it was caused by a Magisk module. This can even get things working again after a Magisk Module wasn't finished installing and potentially causing a bootloop.

    Official Google Pixel Install fingerprint calibration software (also available at the bottom of the Update and Software Repair page above) - I believe this is only helpful if you've replaced the screen
    Official Google Android Flash Tool (OEM Unlocking needs to be toggled on - you may not have to manually unlock the bootloader - the "site" will do that on its own)
    OEM unlocking in developer options needs to be toggled on. I don't "believe" you have to actually do the "fastboot flashing unlock" command.

    ADB/Fastboot, Windows Drivers, and unlocking the bootloader (thanks @sidhaarthm for confirming unlocking the bootloader works as intended, be sure to thank him in his post)
    • You'll need this if you're going to unlock the bootloader on your Pixel 6 Pro: SDK Platform Tools (download links for Windows, Mac, and Linux). Note that you can find links to download the tools elsewhere, but I wouldn't trust them - you never know if they've been modified. Even if the person providing the link didn't do anything intentionally, the tools could be modified without them being aware. Why take a chance of putting your phone security further at risk?
    • For Windows, get Google's drivers here Get the Google USB Driver (ADB will likely work while the phone is fully booted, but if you're like me, you'll need these drivers for after you "adb reboot-bootloader", to be able to use ADB and Fastboot.
    • Thanks to @96carboard for posting the details of unlocking the bootloader, be sure to thank him in his post. Unlocking or locking the bootloader will wipe the device every single time, so be sure to have your data backed up before doing so, or better yet, just unlock it as soon as you get the device. Keep in mind that unlocking the bootloader or rooting might affect your phone's capability to use banking apps such as Google Pay, or your local bank's app. If you're going to re-lock the bootloader, make sure the ROM you have on your phone is completely stock (by flashing the latest official firmware) BEFORE re-locking it. My experience on my Pixel 1 was that there were no negative consequences if you unlock or re-lock the bootloader other than it will wipe your phone, and while unlocked you get a brief screen when you boot the phone telling you (and anyone who sees your phone at the time) that the bootloader is unlocked. All of this should still be the case. You will also continue to receive updates. Unlike Samsung, Sony, et cetera, which have major consequences with reduced functionality even if you un-root and re-lock your bootloader. If you're actually rooted (not just bootloader unlocked), you'll have to perform extra steps to keep root/re-root.:


      The unlock process works like this:

      1) Take brand new fresh phone out of box. Do NOT put sim card in it, just power it on (you can put a SIM card if you want, you just don't have to).
      2) When it starts harassing you to join Google, hit "skip" and "remind me tomorrow" as applicable until you reach home screen. YOU DO NOT need to plug in a google account.
      3) Settings --> About --> Build number. Repeatedly tap it until it says you're a developer.
      4) Back --> Network --> WiFi and connect it.
      5) Back --> System --> Developer --> OEM unlocking (check), USB debugging (check), plug in USB, authorize on the phone when requested.

      Using the Platform Tools previously mentioned in command line/terminal:
      6) #
      Code:
      adb reboot-bootloader
      7) #
      Code:
      fastboot flashing unlock

      Now that you've unlocked it, it has been wiped, so repeat 1-4, then disable all the google spyware, and go ahead and start using it while waiting for aosp and root.

      Official Instructions for Locking/Unlocking the Bootloader
    Personally, I would always use the official drivers Google provides unless they just don't work for whatever reason: Get the Google USB Driver (this is for Windows). They work for me. They are rarely updated, but they are every once in a great while, sometimes years in-between.
    I agree with this. be careful using drivers or adb/fastboot tools. Some are fine, but there's no need for it really anymore. Google has made it very easy to install drivers and Platform-Tools (adb/fastboot tool).

    Google provides the Fastboot/ADB tool (Platform-Tools) and Google USB Drivers (adb/fastboot interface). This will allow any Pixel to interface with Windows using the fastboot/adb protocol. Official Google USB Driver includes support for both the Fastboot and ADB driver interface. There are 3 main drivers (Fastboot, ADB and MTP/Portable File Transfer). The MTP/Portable File Transfer driver is built-in to Windows 7-11.

    Fastboot/ADB Driver Interface - Official Download Link:
    When flashing a full image or unlocking your bootloader, the fastboot interface is being used.

    First Download official Google USB Drivers (it's a zip file). Extract the zip (important!). Right-click on the android_winusb.inf file and hit install. You can then restart your phone to the Bootloader Screen (hold vol-down while it restarts or turns on). When you plug in your phone, Windows Device Manager will show a new device at the top: Android Device: Android Bootloader Interface.

    Using the ADB interface: It's the same driver. Enable USB Debugging on your phone, then plug it in to your computer. A prompt will appear on your phone (to allow USB Debugging). The driver in Device Manager will appear as Android Device: Android Composite ADB interface.

    Now you can download and use Platform-Tools to flash an Android Image, OTA or run adb/fastboot commands.
    Official Download Page
    "Android SDK Platform-Tools is a component for the Android SDK. It includes tools that interface with the Android platform, such as adb, fastboot, and systrace"

    It's best to make Platform-Tools available system-wide. Download Platform-Tools from the above link and extract it to your C:\ drive - that way you will have a folder to add to the PATH Environment under Window System Properties Menu, Advanced, Environment Variables, System Variables, PATH (google how to do this, very easy). What this does is allow adb/fastboot commands to be run from anywhere in the system, so you don't have to be in the platform-tools folder to run adb/fastboot commands and flash an Android Image (Official or Android Fork such as ProtonAOSP).

    Rooting-related


    No longer applies - Things that make rooting more complicated on Android 12
    @V0latyle posted a new thread with some very important and fascinating information about the increased difficulty to root Android 12: Read this before rooting. Be sure to thank him there.

    A list of the other important guides - be sure to thank the respective OPs
    For all relevant guide threads just click the yellow "How To Guide" quick filter above the list of threads in the Pixel 6 Pro section.


    TWRP (not made for the Pixel 6 Pro yet - will update when it has)
    I would guess that this should be the appropriate URL for official TWRP custom recovery for the Pixel 6 Pro, but who knows when/if that will actually be made available, and it may become available unofficially in these forum sections before being made official. I'll adjust this URL as needed. https://twrp.me/google/googlepixel6pro.html.

    Custom kernels for stock ROM(s)

    Factory Images (requires an unlocked bootloader)
    It's also handy to have to the full official firmware available, whether it's to recovery from accidents or for actual development. Note the official link to the general Factory Images for Nexus and Pixel Devices page. The following link goes directly to the Pixel 6 Pro (Raven) section: Pixel 6 Pro Factory Images. I prefer to actually bookmark a link to the device listed immediately below the device I want the firmware for, because Google dumbly (in my opinion) puts the latest firmware at the bottom of the list for each particular device, and that ends up making you scroll a lot after a year or two of monthly updates.

    Note: You can still get the December 2021 Factory Images and OTA from this thread, if you need them for any reason: Alternate links to December - all full factory images and OTAs available

    Full OTA Images (doesn't require an unlocked bootloader)

    The usefulness of having Verity and Verification enabled (now that it's not needed for root) - post #2 below.

    Regarding P6P 5G model numbers and capabilities - post #3 below.

    List of all Pixel monthly security bulletins and Play System Updates - post #4 below.

    How I root and update (which is identical whether rooting the first time or updating):
    • Use the latest Magisk Stable (in my case, I keep the app "hidden" / renamed)
    • Used the full firmware zip, extracted to the same folder as the latest Platform Tools (S:\platform-tools)
    • Extracted the new boot.img
    • Copied new boot.img to the phone
    • Patched the new boot.img with Magisk Stable
    • Renamed Magisk'd boot.img so I know what version of firmware it's for
    • Copied the Magisk'd boot.img back to the computer
    • Disabled all my Magisk Modules
    • Removed the "-w " from the flash-all.bat
    • Re-edited the flash-all.bat to verify I saved it with the "-w " taken out
    • Open a Command Prompt, navigated to S:\platform-tools
    • adb reboot bootloader
    • flash-all.bat
    • Let phone boot, unlock it, check that it's working, allow the update process to finish (gave it five minutes or so)
    • adb reboot bootloader
    • fastboot flash boot kernel.img (renamed Magisk'd boot.img)
    • fastboot reboot
    • Unlock, check everything's working
    • Re-enabled the most basic Magisk Modules which I was sure wouldn't cause a critical issue
    • Reboot, unlock, made sure everything's working
    Back to modding!

    I may append these first four posts with further useful information or links as needed.
    15
    The unlock process works like this;

    1) Take brand new fresh phone out of box. Do NOT put sim card in it, just power it on.
    2) When it starts harassing you to join google, hit "skip" and "remind me tomorrow" as applicable until you reach home screen. YOU DO NOT need to plug in a google account.
    3) Settings --> About --> Build number. Tap it until it says you're a developer.
    4) Back --> Network --> Wifi and connect it.
    5) Back --> System --> Developer --> OEM unlocking (check), USB debugging (check), plug in USB, authorize when requested.
    6) # adb reboot-bootloader
    7) # fastboot flashing unlock

    Now that you've unlocked it, it has been wiped, so repeat 1-4, then disable all the google spyware, and go ahead and start using it while waiting for aosp and root.
    15
    SDK Platform Tools updated to v33.0.1 (March 2022):

    33.0.1 (March 2022)​

    • adb
      • Fixes Windows mdns crashes.
      • Fixes enable-verity/disable-verity on old devices.
      • Fixes "install multiple" on old devices
      • Improves the help output to include all supported compression methods.
    13
    Just to let everyone know, updating to .037 and re-rooting (without wiping anything) worked with no problems. My method is to just replace -w with --disable-verity --disable-verification in the flash-all.bat file and run the flash-all command. I then let it reboot, patch the boot image, return to bootloader and flash the patched boot image.

    Canary 23014

    EDIT: Thank you @ipdev for confirming my inquiry that this method would work back on Nov. 4 👍
    11
    SDK Platform Tools have been updated to v32.0.0 (January 2022). Update now before you forget and flashing the February update on the 7th gives you hassles. :)

    Direct download for Windows: https://dl.google.com/android/repository/platform-tools-latest-windows.zip

    Revisions​

    32.0.0 (January 2022)​

    • adb
      • Fixed adb w/o args SEGV regression.
    • fastboot
      • Reinstated recovery execution from b/158156979 (removal of preprocessor guards for root/secure).