[Google Pixel 6 Pro] Artem Pisarenko:
UPDATED to latest and minimal release of Ubuntu (small footprint) and latest avbroot tool version (many bug-fixes and improvements)

I've made linux virtual machine for VirtualBox 7.0 in OVA format, so you may use tool on any host OS supported by VirtualBox and have guaranteed working environment without messing host system with all of these dependencies and complex development stuff.

[Download link]

Also I've written instruction how I've "built" this VM "from sources", so you may reproduce it and get trusted one. :)

Login credentials: user 'ubuntu' and password 'ubuntu' (may be connected by ssh via network - don't forget setup networking in VM settings and virtualbox/host).

It's based on Ubuntu 22.10 Minimal cloud image with avbroot tool sourced from git repository (commit 0fff7b77dd284e99da4282a5c12a8aab802480f0) and placed in ~/avbroot directory.

Follow instructions in avbroot README.md while skipping 'Installing dependencies' section, 'Usage' steps 2,3 and replacing python ... invokations with python3 .... To access host file system add VM shared folder (with auto-mount checked, empty mount point). Files in folder path are accessed with prefix /media/sf_<folder_name>/ from guest.

Example usage (when files are located at '/home/artem/Documents' directory on Linux host and shared folder with path '/home/artem' and name 'artem' added to VM):

cd ~/avbroot
python3 avbroot.py patch --input /media/sf_artem/Documents/bluejay-ota-tq1a.230105.001.a2-deb3f832.zip --privkey-avb /media/sf_artem/Documents/avb.key --privkey-ota /media/sf_artem/Documents/ota.key --cert-ota /media/sf_artem/Documents/ota.crt --magisk /media/sf_artem/Documents/Magisk-v25.2.apk

Notes:

I've did my best to achieve as small footprint as possible. Imported VM takes up ~1.0GB on hard drive right after importing. After full cycle of working with Google Pixel 6a stock OTA VM growed up to ~1.2GB due to temporary files created during process. Size may vary depending on OTA files used. (You may try to use separate VM shared folder to place guest temporary dir on host.)

Don't decrease VM RAM to 512MB. I've tried - it's a devil. Because it looks like everyting working ok, but you may not notice that some procedure within script executing failed (due to memory allocation error), but script didn't aborted and just resulted in wrong content in generated output, so you may face this problem later (to be found at very end after flashing, etc... - rooting not working or something like that).

You may change disk medium type to immutable (in virtualbox media manager) which makes VM to automatically reset to initial state and size on each power on (i.e. loosing all system changes you made and data inside VM since point, at which you changed type). Note, that it happens at power ON, not off! It's convenient as long as you keep all your data on host and using VM only as execution environment.

By default VM isn't connected to any network. You may enable network adapter in VM settings to access internet from guest or work via ssh. If you select NAT network, then it already contains port forwarding rule on 2222 tcp port for ssh'ing, but you may need to change guest IP in rule to match address, actually assigned by vbox to your VM instance in your setup (login to started guest, type ifconfig and find address of form '10.0.X.X' in command output). On linux host connect from terminal using command ssh -p 2222 ubuntu@localhost.