[OnePlus 9 Pro] Aqq123:
That's excellent news, actually. Saves the extra hassle.

Flashed your build today. Works solid. It's great to have an update without having to build it myself. Thanks again.

***

Just for the record if anyone wants to do the same: there's now an extra step involved, since this isn't an actual XML file anymore but an ABX (Android Binary XML). This format, which (also for the record) is different than the "usual" binary XML files inside APKs, can be converted to and from with abx2xml and xml2abx on the device.

***

And incidentally, I also ran into an issue when the LOS installer would crap out almost at the finish line for reasons unclear (kPostinstallRunnerError):

I [INFO:action_processor.cc(143)] ActionProcessor: starting PostinstallRunnerAction
I [INFO:postinstall_runner_action.cc(274)] Performing postinst (system/bin/otapreopt_script at /postinstall/system/bin/otapreopt_script) installed on device /dev/block/dm-8 and mountable device /dev/block/dm-8
I [INFO:postinstall_runner_action.cc(281)] Format file for new system/bin/otapreopt_script is: data
I [INFO:subprocess.cc(98)] Running "/postinstall/system/bin/otapreopt_script 1 3"
I [INFO:subprocess.cc(156)] Subprocess output: Error: boot-complete not detected.
I [INFO:postinstall_runner_action.cc(274)] Performing postinst (bin/checkpoint_gc at /postinstall/bin/checkpoint_gc) installed on device /dev/block/dm-14 and mountable device /dev/block/dm-14
I [INFO:postinstall_runner_action.cc(281)] Format file for new bin/checkpoint_gc is: data
I [INFO:subprocess.cc(98)] Running "/postinstall/bin/checkpoint_gc 1 3"
I [INFO:dynamic_partition_control_android.cc(1053)] Snapshot writes are done.
E dm.cpp:529] DM_TABLE_STATUS failed for system_a: No such device or address
E snapshot.cpp:3540] Could not read snapshot device table: system_a
E snapshot.cpp:302] Cannot ensure there are no overflow snapshots.
I snapshot.cpp:2206] Successfully unmapped snapshot system_a [...]
I [INFO:dynamic_partition_control_android.cc(296)] Destroying [odm_b, product_b, system_b, system_ext_b, vendor_b, vendor_dlkm_b] from device mapper
I [INFO:postinstall_runner_action.cc(459)] Unmapped all partitions.
E [ERROR:postinstall_runner_action.cc(466)] Postinstall action failed.
I [INFO:action_processor.cc(116)] ActionProcessor: finished last action PostinstallRunnerAction with code ErrorCode::
I [INFO:update_attempter_android.cc(565)] Processing Done.
I snapshot.cpp:2206] Successfully unmapped snapshot system_a [...]
E snapshot.cpp:2425] Open failed: /metadata/ota: No such file or directory
E Error in /sideload/package.zip (status 1)

This is unrelated to @MJPollard's build but a general issue also happening with official LOS 19.1 (and apparently LOS 20), although it seems to be rare. I see others reporting it, such as this LOS thread for another device:

But nobody had a solution. I can't be bothered to investigate what's going on exactly but the workaround that solved it for me was to flash everything directly in fastbootd. More or less like this (on Windows):

fastboot reboot fastboot
unzip lineage-*-lemonadep.zip payload.bin
payload-dumper-go -o . payload.bin
for %i in (*.img) do fastboot --slot=all flash %~ni %i

Afterwards the flashable ZIPs complete fine again.

Sometimes (but not this time) when a LOS install is failing, it might be enough to run:

fastboot snapshot-update cancel - or -

fastboot wipe-super super_empty.img

Putting this here, hoping it might save some people from having to wipe their data (which also resolves such issues but should be the last resort).