Development [DEV][EOL] Vbmeta Patcher, Devinfo Patcher, and Boot Image Tool

Search This thread
I was on the A1 firmware and it was bad so O reverted to the version 37 I think it was called using Android flash tool using wipe and upgraded to the a5 Australian firmware and didn't check the disable Verity or verification and didn't check wipe. And it updated and worked fine and then I flashed the downloaded boot file with the new magisk canary and flashed it so this seems to work. I'm guessing this now means we can like update via system settings and download new boot img and pstch it and flash like usual right.
 

capntrips

Senior Member
Aug 29, 2020
175
273
OnePlus 6T
Google Pixel 6
I was on the A1 firmware and it was bad so O reverted to the version 37 I think it was called using Android flash tool using wipe and upgraded to the a5 Australian firmware and didn't check the disable Verity or verification and didn't check wipe. And it updated and worked fine and then I flashed the downloaded boot file with the new magisk canary and flashed it so this seems to work. I'm guessing this now means we can like update via system settings and download new boot img and pstch it and flash like usual right.
Canary 23016 doesn't enable patching the inactive slot on Pixel devices, so you would still need a custom build to take the OTA via System Update. The issue I'm currently experiencing is that my Pixel 6 doesn't even detect an OTA is available, but I'm not sure how common that is.
 

bzz11g

Senior Member
Oct 17, 2010
132
62
OnePlus 5
Google Pixel 6
anyone using my Magisk builds that has gotten it?
Hi, I taking root with your build of Magisk v23015-19f2116b, then before OTA I'm updating to b7bdd55c build, then I receive OTA and successfully update my phone

Now I'm updating to latest 23016 build from previous post

What should I do here (update menu after install new build)?

photo_2021-12-16_09-56-46.jpg
 
Last edited:
  • Like
Reactions: capntrips

capntrips

Senior Member
Aug 29, 2020
175
273
OnePlus 6T
Google Pixel 6
Hi, I taking root with your build of Magisk v23015-19f2116b, then before OTA I'm updating to b7bdd55c build, then I receive OTA and successfully update my phone

Thanks for the feedback. I may try to reinstall the November update with the factory image, see if that allows me to find the December update. Maybe there's still some lingering weirdness from installing it originally, given I was doing quite a bit of testing during that update.

Now I'm updating to latest 23016 build from previous post

What should I do here?

I'm not entirely sure what you're asking, but if you're updating builds, you're probably looking for Direct Install.
 

bzz11g

Senior Member
Oct 17, 2010
132
62
OnePlus 5
Google Pixel 6
I'm install new build v23016-8f719c7b
Open Magisk app and see Update button
photo_2021-12-16_10-53-36.jpg

My question is this: Do I need to upgrade Magisk (direct install) or just leave it as it is?
If I need it: should I upgrade only in the current slot, or in both?

Thank you
 

capntrips

Senior Member
Aug 29, 2020
175
273
OnePlus 6T
Google Pixel 6
I'm install new build v23016-8f719c7b
Open Magisk app and see Update button
My question is this: Do I need to upgrade Magisk (direct install) or just leave it as it is?
If I need it: should I upgrade only in the current slot, or in both?
Yes, you'll want to keep your app, ramdisk, binaries, and scripts in sync, so anytime you install a new version of the Magisk app, you should update Magisk, as well.

Only update the current slot. When you do an OTA, you can do both, if you want, but anytime you install to the inactive slot, it will force you to switch slots.
 
  • Like
Reactions: bzz11g

capntrips

Senior Member
Aug 29, 2020
175
273
OnePlus 6T
Google Pixel 6
I made a draft pull request to include an updated bootctl in the build process of Magisk. If I get some positive feedback from them, I'll clean it up and submit it to be merged.

On a related note, even after going back to stock for two weeks, I was never given the option to install the delta OTA. I tried installing the factory image and full OTA for the November release, but neither helped, so I manually installed and rooted the December update today. Hopefully I'll be able to install the January delta OTA.
 

bzz11g

Senior Member
Oct 17, 2010
132
62
OnePlus 5
Google Pixel 6
I made a draft pull request to include an updated bootctl in the build process of Magisk. If I get some positive feedback from them, I'll clean it up and submit it to be merged.

On a related note, even after going back to stock for two weeks, I was never given the option to install the delta OTA. I tried installing the factory image and full OTA for the November release, but neither helped, so I manually installed and rooted the December update today. Hopefully I'll be able to install the January delta OTA.
Jan OTA already available, i'm waiting for system optimization
 

capntrips

Senior Member
Aug 29, 2020
175
273
OnePlus 6T
Google Pixel 6
How did you get the ota take?
I restored stock boot and got thisView attachment 5508855
(I'm on AU December firmware)
If you filter your logcat for update_engine during install, it'll give you an error message. My first guess would have been the vbmeta partition, but if you never patched it, my only thought would be Magisk restored the wrong boot image, somehow.
 
  • Like
Reactions: shoey63

capntrips

Senior Member
Aug 29, 2020
175
273
OnePlus 6T
Google Pixel 6
In Magisk news, an updated bootctl landed in Magisk. Unfortunately, installation to the inactive slot has not. I made a fresh PR containing only that change.

I also made a fresh build with the new bootctl binary included and installation to the inactive slot enabled. This is functionally equivalent to my previous builds, unless there are other upstream changes you're interested in.

I was finally offered an OTA on my Pixel 6, so I was able to take the January delta OTA using this build.
 

shoey63

Recognized Contributor
Jun 5, 2012
4,070
4,054
Somewhere in Oz...
ASUS ROG Phone 3
If you filter your logcat for update_engine during install, it'll give you an error message. My first guess would have been the vbmeta partition, but if you never patched it, my only thought would be Magisk restored the wrong boot image, somehow.
I thought that too, so I restored original boot with DD command, still no luck.
Now I remember that I flashed November modem over December firmware. This must have caused the mismatch.
In the end I just brute forced the January update on the PC by flashing the images after swapping slots lol.
So no more using devinfo patcher then?
 

capntrips

Senior Member
Aug 29, 2020
175
273
OnePlus 6T
Google Pixel 6
So no more using devinfo patcher then?
It's still handy for testing and development (for example, to verify new bootctl builds), but most users have no need for any of the tools in the OP, at this point. Someone on a pre-23016 build of Magisk might need Vbmeta Patcher to take an OTA; otherwise, they're only there because I haven't bothered to retire them, yet.
 
  • Like
Reactions: bzz11g and shoey63

Top Liked Posts

  • There are no posts matching your filters.
  • 2
    I released a new version of Boot Image Tool, for anyone still using it.

    This fixes the backup image restore that was broken in the previous version. It also allows downloading boot images from either slot, patched or not. The patched images are now labeled as such.
    1
    For example, if I issue the above command for one of the slots on a Pixel 5a, it looks like this:

    Code:
    barbet:/ $ su
    barbet:/ # dd if=/dev/block/by-name/vbmeta_a bs=4 count=1 status=none
    AVB0barbet:/ #

    At first glance, it appears that there was no output, but the last line is AVB0barbet, rather than just barbet.

    In any case, I took a closer look at the previous stacktrace, and I think I figured out the problem:

    v1.0.0-alpha04-allow-non-ab2

    Edit: I'm fading fast, so it may be morning before I make any additional replies.
    Yes, the app is working now. Thank you for giving your time.
  • 29
    The original purpose of these three apps was to help deal with the changes in Android 12 when taking an OTA. Most of the functionality has been superseded by the newest builds of Magisk.

    Vbmeta Patcher is still useful when migrating from Magisk builds before 23016, and Boot Image Tool can still be used for downloading backups of newly installed boot images or restoring missing backups for Magisk.

    I'll leave the links and descriptions below, but future development of these apps is unlikely.

    Vbmeta Patcher screenshot
    Devinfo Patcher screenshot
    Boot Image Tool screenshot


    Vbmeta Patcher is an Android app that toggles the disable flags of the vbmeta partitions.

    Devinfo Patcher is an Android app that marks the inactive slot as successful on devices with a valid devinfo partition.

    Boot Image Tool is an Android app that helps juggle boot images for OTAs.
    1. Uninstall -> Restore Images in the Magisk app.
    2. Take the OTA in System Update. Do NOT reboot.
    3. Install -> Install to Inactive Slot in the Magisk app.
    4. Reboot (NOT in System Update).

    Latest Updates

    2022-05-01 Boot Image Tool v1.0.0-alpha03
    2021-11-19 Devinfo Patcher v1.0.0-alpha02
    2021-11-19 Vbmeta Patcher v1.0.0-alpha04
    10
    I made a new build of Magisk that will detect the vbmeta partition, set KEEPVBMETAFLAGS, and AVBv2 sign the boot image after patching. This allows you to root without patching vbmeta or wiping data.

    It also has the updated bootctl binary, so you can flash to the inactive slot after an OTA.

    I updated the related pull request, but it will remain in draft status until it is compatible with all of the possible algorithm types.

    The steps to take an OTA with this will be:
    1. Restore Images in the Magisk app.
    2. Take the OTA in System Update. Do NOT reboot.
    3. Install Magisk to the Inactive Slot in the Magisk app.
    4. Reboot (NOT in System Update).
    If you're taking the OTA on with vbmeta patched with disable flags, you'll have to restore vbmeta in Vbmeta Patcher, first. After that, vbmeta will remain stock.

    Edit: I pulled the build, patching vbmeta is not required since 23016.
    8
    Devinfo Patcher has been released. See the OP for usage details.

    Until there is movement on the Magisk end, you'll have to use my builds of Magisk to enable flashing to the inactive slot.

    As I noted previously, I would rather not maintain ongoing builds of Magisk, so depending on what, if anything, ends up in Magisk in the near future, I may make an all-in-one tool. In that case, I imagine I'll stop developing the individual apps, but I'll leave up the final builds of each, if that happens.
    8
    I made a new build of Magisk that will patch and restore the vbmeta partition on Magisk install and uninstall. It also includes the bootctl binary from the previous release. I made a draft pull request (closed in favor of #5018) to start the process of getting this into mainline.

    Once all of the backups are in place, the steps to take an OTA with this will be:
    1. Restore Images in the Magisk app (which will also restore the stock vbmeta partition from backup).
    2. Take the OTA in System Update. Do NOT reboot.
    3. (optional, but recommended) Direct Install Magisk in the Magisk App (which will also patch and backup the vbmeta partition in the active slot).
    4. Install Magisk to the Inactive Slot in the Magisk App (which will also patch and backup the vbmeta partition in the inactive slot, mark the inactive slot as active, and mark it as successful during the first boot).
    5. Reboot (NOT in System Update).
    The first time you restore images, you'll have to restore vbmeta in Vbmeta Patcher. After that, Magisk will keep backups of the stock images.

    Note: This is now obsolete. Recent builds no longer a need to patch the vbmeta partition.
    6
    Any address to donate to?
    I look at it as my contribution back to the community. If you really want to make a monetary contribution, I suggest Code.org or EFF.