[Thunderbolt Android Development] Jaxidian:
Keep in mind that CM is AOSP AND a RIL to interface with our radio. Why would you think that RIL could just work with any radio regardless of what changes in it? Different radios have different commands and different functionality. You can't just change software in one place and not expect it to affect other things that require it.

A little lesson for you....

(a bit over-simplified but should help you understand)

RIL stands for Radio Interface Layer. Having a functional RIL is what keeps us from having CM, MIUI, etc. on our TBolt. We have tons of RILs that have been written for numerous radios, but this LTE radio is more complex and MUCH newer than all of the other radios. Additionally, the RIL is what sits between Android and the radio's APIs. We definitely don't want Android talking directly to the radio because there are far too many places to keep updated for far too many radios. As such, we use an RIL, which has a standard API (regardless of how it's been implemented) for Android to call. Once we have that, then Android is done being customized and should work for any radio. However, that means we need to have a functional RIL for every radio.

Now what is a radio? Clearly there are hardware components there. Consider that there is also a chip there. We need the RIL to be able to control that chip. However, we don't want to have software developers all over having to know all of the ins and outs of that chip - that would be insane (since there may be multiple chips as well)! So instead, we have developers hired by the company that produced that chip to become experts on that chip and to write this software. They create an API for RIL developers to follow so that way the RIL can control the chip indirectly, which allows for Android to control the chip very indirectly. So this hardware and this chip-expert software are what make up "the radio".

So with this background, we have the CM7 which is AOSP (standard) and a RIL (which was developed against the Froyo radio). Forget that it still isn't perfect even with the Froyo radio - it would still need updates to keep up with the changing radio, because the software portion of the radio has changing requirements and changing APIs. There may have been an Initialize function in the Froyo radio but it was renamed to Startup. So when the CM7 RIL tries to call call Initialize, well, it's not there and the RIL crashes.

---

So no, CM7 cannot "just work" with any radio without making changes. Ultimately, this is precisely why all phones with unlocked bootloaders aren't already supported. The hard part about adding an additional phone to the list of supported ones for the CM team is that they need to create a functional RIL for every phone. Now some phones use the same hardware and have similar or even identical firmwares on them so it's much easier to add some phones to the list than others. However, there has never been a phone supported that runs on an LTE network, so this is kind of a from-the-ground-up effort. And I guarantee you that this from-the-ground-up RIL is very immature, unstable, and not the most robust system out there. As it matures, perhaps it can be more immune to radio changes (it is possible, to an extent), but they're still struggling with basic functionality, forget all of these extra features to play nicely with incompatible radios.

Did that help? Check this page out. The Baseband is what I was referring to as the software written by the chip experts.