How do those projects write open-source drivers for proprietary hardware legally? I know that there’s “clean-room” reverse engineering, but is it really a requirement? From what I understand, you can write docs about how the hardware works and then the other team can write a software based on that documentation.

What if the new software is just implementing the necessities for compatibility and other than that is a different product? Is it still illegal for just one team to do that?