http://www.androidcentral.com/why-you-ll-never-have-latest-version-android.
I found this link on android central which basically explains the same thing that wayback mentioned as well with more details and comparisons with iOS and Windows Phone.I found this very informative so I though that it would be nice to post it here. :)
Basically it explains that the variety of the Android-based devices uses different hardware.As a result of the aforementioned is that there are different drivers for the variety of hardware that can be found on different devices.Unfortunately Android Jelly Bean (4.1) itself was build by Google on TI's OMAP 4460 chipset,like the one that we find on the Galaxy Nexus and NVidia's Tegra 3 chipset like the one that it can be found on Nexus 7.So when it comes to flash the Android on the device in order to make a device usable over the Android UI manufacturers start to modify/enhance Android in order to enforce it to use/handle/manipulate the hardware that they have used to build their device.This is something very difficult and demands a lot of time to implement and because time == money they just decide to drop the updates on older devices.
Even if they are some similarities in hardware in between different devices there are other hardware and not only hardware mismatchings.For example,Nexus 7 and HTC One X (International Version) have the same Tegra 3 chip.The problem is that HTC uses also another chip,the HTC ImageSense chip,which can not be found on the Nexus 7.Plus consider the fact that the internal storage on the HTC One X is defined/used/organized differently from the one on the Nexus 7,as it uses a different partition for the media.All of a sudden,as Android Central's article mentions,porting the Jelly Bean update on the HTC One X from the Nexus 7 or vise versa becomes very difficult.
Moreover,consider the carriers' custom Android ROMs as well.Well I am not an expert in this field,because in my country carriers do not lock the devices,but I will try to explain it with the help of Android Central's article.Carriers,such as Verizon,I suppose,use different/custom ROMs than the one that it can be found on the unlocked version of the same device.For example,if I am not wrong,in order to make an OS to start whenever you push the Power Button,a bootloader starts to load basic/necessary files for the OS from the storage device that it is programmed to do so.What carriers do is that they lock bootloader,in order to restrict users not to boot other ROMs that they may have transferred in some storage device on the phone.So what do they care if we boot something different from the official?They care,because they want to prevent users to use other cellular networks(such as AT&T,Sprint,Vodafone) because that way they are going to lose their customers (==money).It is not only the bootloader of course.If you have already done a small research over the Internet,you will see many valid website that offer unlocking services on carrier's devices for a small amount of money without reflashing you device with a different ROM.If you notice in the whole procedure of the unlocking they will ask the user to type on the dialling pad a string of numbers and symbols such as pound key and the star key.If someone types the string write the device will open a hidden menu,which contains information about the network settings.The whole point of mentioning this is to show you that this menu requires more coding,which differentiates the Android OS from device to device in order carriers to use it and manipulate it they way the want and insert their own settings according to the operation of the network.Of course,the procedure that you have to follow in order to unlock your device may vary from unlocking service to unlocking service.For example,most of these services ask only for the device model,IMEI and the carrier who has locked the device,so may not come across to that menu that I am referring to.
Carrier's as the article mentions are moving very slowing on the procedure of approving an Android ROM for a device that they offer on their networks.This happens because they "move" with caution and they have limited resources in order to approve software for the devices offered alongside with their network's services.And because they care about profits,they do not waste time on older devices or devices which haven't sold many units.They will pay attention on the newer and the one that sells the most in comparison to the others.Thus,they approve devices which are already profitable for them or they will be profitable if we are referring to something newer or something that it will keep selling for a longer period of time.Let's face it,most people would not care about the Samsung Galaxy SII,they will care about the SIII(a.k.a : "THE NEXT BIG THING") and in a few weeks they would not even care for the SIII they will care about the LG Optimus G (for example),which is the newer and the more improved in comparison to the SIII.It is like somehow the new ruins the older.But it is doesn't.It's all in our heads.Like Jimmy Kimmel said on his show when he referred to the iPhone 5 and to how iPhone 4S owners react to the announcement of the 6th iPhone.
And now you may be wondering why many or most of the Windows Phone or iOS smartphones receive update to the newest version of the OS that they have installed.The answer is simple.There are fewer devices who have installed these platforms and most of them are carrying the same or almost the same hardware.Even if there are some dissimilarities they spent time to adjust their platforms to make them work on every on almost every device that they have.
But it is not only that.iOS and Windows Phone are more static to changes like memory quotas or button setups,or changes at the UI.I mean take a quick look on iOS 6 and iOS 5.Both look very similar in terms of visualisations on the UI and the buttons on the newer devices are the same in number and in operation with older ones.They might have added a few extra operations on some buttons but it is not like they changed something dramatically.They same thing with Windows Phone 7.5 and 8.The UI is the same and if you take a look to the buttons on the older and newer devices you will find out that they are pretty much the same.On the other hand,Google does some heavy changes from an update to another.Take a look on Gingerbread,Froyo,Honeycomb,Ice Cream Sandwich and Jelly Bean.ICS and Jelly Bean look the same,but what about Jelly Bean and Gingerbread or Ice Cream Sandwich and Froyo or maybe Cupcake and Honeycomb.They hardly look the same in terms of UI.Consider this,when it comes to build a device which is planned to run Froyo and you intend to update it to Jelly Bean.Basically this happens because manufacturers lack of warning for what it is going to follow to the Android updates.This was mentioned by Sony and Google responded by stating that is going to help manufacturers with PDK (PDK stands for Platform Developers Kit) which it will give the manufacturers a limited sneak peak to the framework of the upcoming Android versions.Limited because it will give early access only to some parts of the Android's upcoming versions framework.