[HTC Wildfire S] no.human.being:
Yeah, sometimes it's stupid, but I tend to respect it.

Btw, I think that the S-ON lock by itself is actually copyright infringement committed by HTC. The GPL forbids the licensee (and in this sense HTC is "licensing" Android from Google and Google is "licensing" Linux from the GNU project) to "put restrictions in place that prevent others from redistributing and/or modifying the software" covered by GPL and that GPL and non-GPL software may not be "distributed as a coherent system". This basically means that HTC must license HBOOT as GPL. They basically have no choice. Either they GPL it (then we'd be allowed to modify or) or they cease to distribute it with Android. What they're currently doing is totally against copyright law. But this is a war the Free Software Foundation has to fight (as it's their copyright that is infringed), not us. However, I'm sure they'd get a great amount of "compensation fees" and manufacturers would have to stop locking their bootloaders if the FSF did file a lawsuit. :D

The S-ON is definitely infringing the GPL, no doubts about that.

In addition, the Radio firmware is basically Iguana (operating system, OzPLB license, similar to BSD license) on top of Pistachio (kernel, BSD license). So if someone was really committed, he could probably build the Radio firmware from the sources of the two. Then we could be sure that it's really free.

Yeah, the problem is that we must not base it on HBOOT. So basically we'd create an "HBOOT compatible bootloader" from scratch. Of course that's perfectly legal. It really ain't that much code either. HBOOT is an extremely primitive program. The code that was supposed to do the analysis and patching was in fact more complex than HBOOT itself. (This is no joke! :D ) And much of the stuff is "security related" (checking signatures and such), which we could completely omit of course as we want to encourage modification of the firmware, not prevent it.

However, UBOOT is very proven software that is trusted upon in the embedded world (and of course it's legal :D ). The problem is that it's designed to load Linux kernels and as we already know Linux and Android are very similar ("genetically" similar in fact), but they're not completely identical. Most of the difference is in the headers. Android kernels have a different header that the bootloader has to evaluate in order to set up the processor so that it's in a state in which the kernel expects it to be. This means that we either have to modify UBOOT to enable it to read Android kernel headers (I'm not familiar with the UBOOT source, but it's probably a substantial amount of work, as UBOOT is much more "generic" than HBOOT is so it probably has a much more extensive codebase :D ) or modify Android to work with Linux kernel headers (this seems to be a lot more likely to be possible to accomplish, most likely modifying the "mkbootimg" utility would be sufficient).

Note that this is an entirely different project than what we originally planned to accomplish. Basically, we know how to S-OFF now, we just can't provide a utility (for two reasons: first, we have no kernel that allows us to write to the HBOOT area, second, we are not allowed to distribute such a utility). Do you think it's ok if we "S-OFF manually"? I mean we "know" which instructions we have to patch, we can map the memory, we can dump. When we have a good kernel we can erase and write back. For me it's definitely enough once we get the kernel. I don't need a "one click solution", I just want to "get it done somehow" and as long as you're all doing it manually and on your own personal handsets, I don't see a lot of legal concerns.