I am do my programming with VSCode and PlatformIO which works fine. But now I like to set the Bod fuse which is actually not support by PlatformIO. So how can I change it at best without loading the boodloader? Is there anything I can do with avrdude?
You'd need a device programmer that supports the ATmega4809 (perhaps another Arduino running jtag2updi, but preferably something like a PICKit4 or SNAP programmer.)
I believe that you can modify the BOD behavior from within your sketch. It's only the initial values that are loaded from the fuse. (Of course, if you need different initial values, then you need to change the fuse.)
(that's pretty specific to my install. But you will want the Arduino "latest" avrdude and conf file in order to support jtag2updi and the 4809. Most of the command is copied from what happens when you do an "upload" from the IDE.)
That'll depend on whether platformIO sets any of the fuses each time you upload.
The Arduino IDE sets SOME fuses (every time. But not the BoD fuse.)
I think MegaCoreX sets all of the fuses (unless you've set it to use a bootloader.)
I don't know what platformIO does.