I have fond memories of parsing random things to pipe to gource as a younger me. The code is ancient, but here [0] was an experiment to get something like nmap (and other data) ready to feed to gource. Fun to watch indeed!
Happy to see the kernel init parameters fix land! For context, I used firecracker (very successfully) in a CTF, driven via a Discord bot.
One of the challenges I tried to build was one where a player would get access to the kernel commandline with the goal being that they should hack their way around the environment to get access to an encrypted disk. Unfortunately, that was when I get the now fixed bug[1].
I really enjoyed the debugging process here, and am glad to have learnt about the -k flag which seems to only be available on systems with strace version 5.5, at least for me.
As for the patch (and my love for all things Frida [1]), I think a call to Intercerptor.replace() after locating the symbol with Module.getExportByName() [2] would make for a simpler patch (at the cost of installing Frida). For example:
Author here. The amount of data per QR depends on the QR size specified. If I remember correctly, its about 10 bytes per code in the default config (QR code size of 30). Transfer boilerplate is a few codes in the start to setup the conversation and a FIN like message at the end.
[0] https://github.com/leonjza/py2gource