Originally Posted by WarEduar
What is RIL?
Radio = firmware
RIL(radio interface layer) = driver
Android = operating system
All 3 are "programs" that are running at different "levels", I have listed them from top to bottom in the order typically considered for how they interact. It is important to understand that a program is just code and how they interact is a philosophy programmers created and are now use to and not because it has to be set out that way.
In the case of the RIL, the API rarely/never changes so it is rarely/never updated.
The actual changes HTC make happen in the "Radio" program.
This is opposite to how say Windows/Nvidia tackle things. The firmware rarely/never changes and they make their changes in the "driver".
In Nvidia's case they do this because there is no standard way in x86BIOS/Windows for GPU firmware to be loaded from something as simple as the installed HDD, the firmware is actually written to chips on the card itself. It is just simpler to make all the code that gets changed inside the "driver" which is easily updated.
For our phones "radio" its trivial for the changes in code to happen at the "driver" level or the "firmware" level, HTC/Google decided they would stick changes in the "firmware". They did this because they created a separate partition for the radio so that they can protect it separately to the OS. Android typically means the phones OS should be open for tweaking, so it must be assumed the driver could easily be replaced.
Countries and Carriers have licensed spectrum to protect and transmitters must be licensed to use it, running custom radio code would break laws in many countries. This leads to the radio firmware being protected much more heavily than the OS itself.
It is because HTC is lazy and because we have awesome devs that we can replace the radio firmware at all. As far as HTC, Country communication regulators and carriers are concerned the user should NEVER be altering the radio software.
radio(fancy code stuff) <-> ril(boring translator) <-> Android OS
firmware(advanced fixed code that allows for flexible access) <-> driver(fancy code stuff and translator) <-> Windows
Radio is about wireless communications
Nvidia is about graphics processings. They are not similar technologies just some tech you may be familiar with.
PS. API = application programming interface.. and lets just say if you do not understand what that is.. I cant be arsed trying to explain that, go Google it.