Thursday, 7 March 2013

Why cant you simply download Android source code and install it on your phone?

Ok, To begin with, this is a very basic and good question.

Android as we know is open source. That means its source code is available some where on the internet, Hosted by Google. So it should not be a big deal to download the source code. Compile it using a compiler and install it on your phone.

Well this is very much valid.

You have the power to do this same thing with most of the other Open source software's available out there. So why not with android?

And why is this not so easy ?

Why can't i simply download the Jelly beans 4.2.2 and install it on my phone?

Well for the following reasons :

1. Android is an OS. So what it has is a kernel and programs that manage and run on the kernel. But no where does it implicitly contains the Drivers to manage the bunch of hardware that your device has. Like GPS, Bluetooth, Display device, Audio, GMS antenna etc..

And as all companies who make android devices may chose to buy these devices from different vendors. So all those devices may need different drivers.

And android does not come packaged with all those drivers.

2. But the current Android OS installed in your phone has those drivers in it. So it should just be a matter of pulling those drivers out and packaging the right drivers with the Android OS.

Well this is closer to reality.

The drivers and OS is compiled and assembled together with great amount of effort. It is extremely difficult to take out the OS from your phone and separate all the drivers from it. It will take a lot of effort and trying it would be waste if you are not interested such hacking.

3. If you somehow manage to pull all these Drivers and the source code together then also there is one more limitation. The mobile device communication system is very sophisticated and you most probably cant arrange your own GSM tower and debug you devices working. All those debugging that your device manufacturer can perform as they are rich companies. So you wont be able to easily find bugs.

4. If you find bugs. Fixing them would be very difficult because most probably the drivers will not be open source source code format. They will probably be in binary (machine executable) codes form. So you wont be able to make changes in them. :(

If you manage to pull through these difficulties then also there is no guarantee that the device would work  properly. All in all its no use trying it if you don't find such tasks interesting and love such near impossible challenges :)

As the above mentioned steps are humanly possible so its natural to assume that a whole lot of people love to do these tasks and hence, Some geeks have already done it. They have built custom ROM's for many mobile devices. So its possible to get the latest build of Android for your phone. You have the option to download Custom built ROM'f from multiple sources and Install them on your phone :

Sources like :
xda-developers have prepared custom ROM option for many android phones

These people use device drivers they pull from multiple places and compile it with android source to prepare custom suited ROM's.

They also have an Excellent piece on how Android ROM is built : Putting a ROM together
Please note that such ROM's may be buggy.

I Love Open Source :)