I have been using a rooted Android phone with DriveDroid which mounts images as a USB drive for a PC. It works pretty well too. (Except for Windows setup ISOs. Those does not support direct booting from a USB drive and I had to mount a blank image and use Rufus to properly write it as a bootable non-optical disk.)

This seems to be a fine alternative that I will have to try. The problem is that I don't really have large USB sticks for this anymore...

> Windows setup ISOs

You can't dd them. Format a USB drive, make a fat32 or ntfs[1] partition. Extract all the files from the ISO (mount -o loop to an intermediate directory and copy the files out, 7z can also do it) onto said partition. Set the bootable and ESP (EFI System Partition flag) flags. Works like a charm every time.

(You can also try the woeusb[2] tool, but it's not doing anything fundamentally different to or better than that.)

1. Fat may be problematic; iirc install.wim is >4gb lately. But ntfs-3g is adequate if lacklustre.

2. https://github.com/slacka/WoeUSB

> make a [...] ntfs partition

I think it would only work if your UEFI firmware happen to contain a driver for reading NTFS partitions. UEFI firmwares are only required to read FAT12/FAT16/FAT32. Rufus solves this by making an extra FAT partition with a UEFI:NTFS [1] binary which loads its own NTFS driver to boot the Windows `bootmgfw` EFI binary.

[1]: https://github.com/pbatard/uefi-ntfs