@airtower (and anyone else that wants to log the OTA process), it
looks like the March update for Pixel 6 is scheduled for the 21st.
In addition to the various logs and the output from the
bootctl
commands, it might be handy to grab the modified
boot
image that Magisk generates. After seeing some people have similar issues when freshly rooting or installing a custom kernel, I wonder if there's something off with the
vbmeta
image embedded in
boot
.
It might even make sense to grab both the one installed directly to the inactive slot and one from Patch a File, just in case there is a difference (if booting fails initially, you might try to
fastboot flash
the latter before completely reinstalling, to test that theory).
The simplest method to acquire the new stock
boot
image after the OTA would likely be using Boot Image Tool in the OP. Clicking Download in the section for the inactive slot will put a copy of that image in the Download folder.
If you do it again after installing Magisk to the inactive slot, it will do the same for the patched image.
Alternatively, you can run something like this for the appropriate slot:
cat /dev/block/platform/14700000.ufs/by-name/boot_a > boot_a.img
You could also pull the stock one from the backup that Magisk creates in
/data
, after installing to the inactive slot, though you'll still need to use one of the other methods to acquire the patched image written to the inactive slot.
For quick reference, here are the steps:
- Run
getprop ro.boot.slot_suffix
to get the current slot and note the output.
- Run
bootctl get-current-slot
and bootctl get-active-boot-slot
and note the output. Both should match the current slot (zero indexed).
- Run
adb logcat | grep update_engine | tee update.log
. See the notes about output flushing in my previous post.
- Check for and install the OTA in System Update. Do NOT reboot.
- Run
bootctl get-current-slot
and bootctl get-active-boot-slot
and note the output. I initially expected no change from step 2, but the active boot slot had changed at this point on a Pixel 5a.
- Download the stock
boot
image from the inactive slot with Boot Image Tool.
- Install Magisk to the inactive slot.
- Save the Magisk log.
- Run
bootctl get-current-slot
and bootctl get-active-boot-slot
and note the output. This will likely be the same as step 5.
- Download the patched
boot
image from the inactive slot with the cat
command noted above.
- In the Magisk app, patch the stock
boot
image downloaded in step 6. It might make sense to compare the two patched images using sha1sum
, at this point.
- Save the Magisk log.
- Reboot (NOT in System Update).
- Run
adb logcat | grep update_engine | tee reboot.log
. The wait for device flag for adb
might be appropriate here, but I didn't have to use it when I did the trial run on a Pixel 5a, granted on a successful boot.
- If possible, run
bootctl get-current-slot
and bootctl get-active-boot-slot
and note the output. The current slot should have changed and the active slot should match.
Then post the log files (
logcat
and Magisk), any unexpected output from the commands, and all three
boot
images (stock, inactive patched, and file patched). I'll perform all of the same steps and post all of the same files. Hopefully some difference that can be used to isolate the issue will be apparent.
I'm planning to use the latest canary (24303, at the time of this post). If you would prefer to use the latest stable, just let me know, and I'll switch channels.
Edit: I made a
test build of Magisk based on 24303 with AVBv2 signing enabled. It is basically a simplified version of
this PR updated to build against 24303. I'm sure there are posts from that time period in this thread, if anyone wants additional details. After the above steps have been completed, I'll add a signed
boot
image, as well, in case steps 7 and 11 don't work for anyone, and they want to test one more thing.