I know this is an incredibly newbish question, but I'd flipped through various forums and articles and googled it and still don't quite seem to understand it.
My question is why is android dependent upon manufacturer's release?
Take for example, a desktop computer.
OS
This is the core of the device and the UI between the user and the hardware.
Applications talk to the OS to instruct the hardware to do stuff.
Microsoft and Apple makes the OS.
ex. Windows 7, Mac OS, Linux.
Hardware
Asus, Nvidia, Realtek, marvell make the hardware.
ex. video, LAN, sound etc.
Hardware Bundler
Dell, Alienware, Gateway, Acer
They take commercial hardware and some OEM hardware and assemble it in a way that many consumers will buy their bundle.
For 99.9% of us, not counting Synapse, this is the only way the hardware is packaged together.
Device Standards
Collectively, the manufactures work together to determine certain industry standards ex. ATX, PCI-E, SATA 3, USB 3.0 etc...
Drivers
The manufacturers also make drivers so the OS can make use of their hardware.
Compatibility Is Determined by Driver Support
If the driver exists to talk to a given OS, then the hardware will work.
Not all hardware manufacturers will code for every OS out there.
ex. USB works on all OS because it's more established, but not every sound card will work on a Linux system.
Bringing it home...
So if Microsoft releases Windows 8, and as long as Nvidia releases a driver that works with that OS, then the video card will work.
Can you help me understand how the android phone architecture is so different that it's no longer
OS <-> Driver <-> Hardware?
Sorry for not getting it.
Culverin said:
Can you help me understand how the android phone architecture is so different that it's no longer
OS <-> Driver <-> Hardware?
Click to expand...
Click to collapse
It isn't different, it's exactly as you written. But manufacturers usually don't release sources of drivers, neither binaries for newer versions of OS. Also many manufacturers add protection against installing your own software into "their" device.
Android is open, but many manufacturers of Android devices - aren't.
Many devices just like????
You say manufacturers, are you referring to components such as the modem (???), video encoding/decoding chip (tegra), sound chip (wolfson)? NFC chip?
Aren't these drivers publicly available?
How else would small companies be able to develop low volume items such as these?
http://www.bigboxstore.com/computers/android-tablet-pcs
http://cheapandroidtablet.org/
When a company, samsung for example, makes a phone.
They start tying all the components together and making them talk to each other.
How "custom" are the "motherboard bios"?
Is that what you are saying by the manufacturers add protection?
Like at the "bios" level?
As for things like this...
http://www.engadget.com/2011/01/27/sony-announces-playstation-suite/
Does that mean Sony is banking on Google making it more standardized?
Culverin said:
You say manufacturers, are you referring to components such as the modem (???), video encoding/decoding chip (tegra), sound chip (wolfson)? NFC chip?
Click to expand...
Click to collapse
I mean both components manufacturers and phone manufacturers.
Usually there are problems with Wifi, GPS, GPU support, camera, etc. Many alpha-stage ports have problems with these things.
Culverin said:
Aren't these drivers publicly available?
Click to expand...
Click to collapse
Do you mean sources? Manufacturers rarely release sources of drivers, even on a PC. This is the reason, why there are problems with some devices on linux systems.
Culverin said:
How else would small companies be able to develop low volume items such as these?
Click to expand...
Click to collapse
I'm not sure, but they have to buy a license to use these components in their devices anyway, so I guess they get sources of drivers too, but they can't release them.
Culverin said:
How "custom" are the "motherboard bios"?
Is that what you are saying by the manufacturers add protection?
Like at the "bios" level?
Click to expand...
Click to collapse
"BIOS" or just "boot phase software" is usually 100% custom - there are no standard solutions I know of.
Let's imagine you have bought a new PC with some preinstalled OS. You don't have administrator rights on it, you can't boot from other device than HDD and if you want to update your system, you have to use special software, which has administrator rights, but it checks whether updates were created by device manufacturer. This is more or less how most of phones work.
Culverin said:
Does that mean Sony is banking on Google making it more standardized?
Click to expand...
Click to collapse
I'm not sure what do you mean?
Culverin said:
I know this is an incredibly newbish question, but I'd flipped through various forums and articles and googled it and still don't quite seem to understand it.
My question is why is android dependent upon manufacturer's release?
Click to expand...
Click to collapse
Because individual makers add their own hardware.
Can you help me understand how the android phone architecture is so different that it's no longer
OS <-> Driver <-> Hardware?
Sorry for not getting it.
Click to expand...
Click to collapse
It still is. Android OS is JUST THE BIOS, in your example. The VXDs/drivers are made by different manufacturers (hardware level drivers) and loaded at system time.
You can load a plain Android OS, but it won't be able to talk to the phone's hardware except in a very general sense. You can touch screen, launch apps, but no phone, and only generic camera without special resolution support and such. It won't be able to do data or phone at all. That requires special VXDs (or their linux equivalent, I'm a Windows guy). Not all phones have the same buttons, or the same screen rez, or the same keyboard, and so on.
That's why there are various experimental Gingerbread ROMs out there already, but they don't work that well, because nobody had debugged the "drivers" for the hardware yet.
And if nobody release the source of the drivers (even for the earlier versions) nobody can use that to figure out if they are compatible with the next OS rev. Binary hacking is way too difficult.
i know much fuss is always made about devices getting or not getting updates to newer versions of android. but i don't understand why it's as big of a (technical) issue as it is.
android is based on linux, correct? anyone with a linux-based desktop regularly updates the kernel and various system packages without thinking twice. and the devices continue to work fine. i can run any version of ubuntu i want on my laptop, and they all work fine.
the problem with building the android osp for an arbitrary device is drivers, correct? is it because manufacturers don't release the source code for drivers? i can understand it isn't possible to reverse engineer or transfer a binary blob from one system to another.
but, manufacturers have these drivers (of course); why is it so difficult to package their drivers with newer versions of android? the kernel can't change so much that drivers need to be re-written with every version, or it would have died a long time ago.
this isn't meant to inspire flaming, i'm just curious what it really takes to build android for a device (and have it 100% working). if a device existed with 100% open source drivers, would it be trivial to build android for that device? how many proprietary drivers does an average device have? are they standardized at all beyond the ARM ISA?
I am not a developer so I don't understand why it is so hard to receive updates on some android devices.
Today, particularly I am concerned with the ICS update . Why is it that even though TF meets all the hardware requirements it still can't receive ICS?
To a n average user like me this is like saying "we both have similar computers but Windows 7 won't work on yours and it's nothing do do with hardware".......
it is not the same at all. For windows computers all of the components are supported by their respective manufactures and all of those manufactures write the drivers for the operating system. By doing this you can install windows (or linux) on most platforms because of the cumulative support. In android there are many more steps. Most drivers have to be written by a single manufacturer which may get hardware from other manufactures but they do not provide software support for that hardware. writing those drivers takes some time and implementing them into each release of android as it changes the parameters it accepts ect. then each device has to be tested rather than just testing one part to make sure everything is in order then it goes through google who do even more checks to make sure that it is near perfect before it is released to the general public
Updates for Android devices are always rolled by the gadget manufacturer, so every time Google introduces a new update we have to wait till the manufacturer of the device decides to roll it out, this obviously takes a lot of time and puts Android at a disadvantage against Apple and Microsoft.
For a Windows device irrespective of the manufacturer if Microsoft rolls out an update all can avail of that update through windows update. Android also being an open platform like Windows should be able to do the same.
If I have a software CD of Windows 7 I can install the software in any manufacturers PC and use it. I may just need to do some additional driver installation if required.
Why can't Android develop their platform to function in a similar manner so that once a new version of Android is released I can install it it any device and o fcourse put in the specific drivers to make it work if required.
With the approach of Microsoft looking very prominent now for both Smartphones and Tablets, this may just be a warning bell for Android, I hope they have their eyes and ears open.
Would be nice to know the views of others. As an Android user do you feel this would be a good step for Google?
kaus1108 said:
I may just need to do some additional driver installation if required.
Click to expand...
Click to collapse
The above is the key sentence in your post. The problem is that without the correct hardware drivers for your specific phone the OS may not be able to boot at all and will certainly have limited functionality - just look at the issues there are with trying to run leaded ICS / JB ROMs on phones that don't have an official version of the ROM available with the correct drivers yet.
The reason that Microsoft is able to push out a new OS and have it (mostly) work on any manufacturers PC, with any hardware, is that all the hardware manufacturers are given alpha/beta copies of Windows to test their hardware on and to allow them to build the drivers well in advance of the OS being released by the guys in Redmond.
Google don't do that. They release the OS immediately they have hardware support and compatibility for their devices - and let everybody else deal with the aftermath
windows is the opposite from open platform!
android is an open platform.
the phone makers are free to use android as they wish, they can decide if to upgrade or not.
google only realeses the source code.
XDA is there for providing the latest update.
My phone was supported by Samsung till Gingerbread. But I got jelly bean from XDA devs just after a week after the source code release.
But it does have some bugs which cannot be solved without Samsung's help.
But if you wanted the fastest OEM updates, buy a Nexus.
But 50% of the people are normal users who do not care about updates and new android versions.
Sent from my GT-S5830 using Tapatalk 2
SimonTS said:
The above is the key sentence in your post. The problem is that without the correct hardware drivers for your specific phone the OS may not be able to boot at all and will certainly have limited functionality - just look at the issues there are with trying to run leaded ICS / JB ROMs on phones that don't have an official version of the ROM available with the correct drivers yet.
The reason that Microsoft is able to push out a new OS and have it (mostly) work on any manufacturers PC, with any hardware, is that all the hardware manufacturers are given alpha/beta copies of Windows to test their hardware on and to allow them to build the drivers well in advance of the OS being released by the guys in Redmond.
Google don't do that. They release the OS immediately they have hardware support and compatibility for their devices - and let everybody else deal with the aftermath
Click to expand...
Click to collapse
Thank you for the response and I do agree with what you say and the key to it is that there are certain things that Microsoft do and Google don't and how it is going to impact users in the future.
I remember when I moved from Windows Vista to Windows 7 all the Vista drivers were functioning allright after installing Windows 7 and I have also faced situations where I did not have certain drivers but the PC still functioned on generic drivers provided in the Windows software.
Don't you feel it would be much better if Google just released a Jelly Bean OS and left it to us to install it and I am sure that based on devices already in the market those drivers can always be included in the OS and each phone would pick its own based on its hardware. Only the new devices would need new ones which Google may not be able to provide. If this were true today I would be installing JB in my Galaxy S3 and not have to wait for Sammy.
djbijo said:
windows is the opposite from open platform!
android is an open platform.
the phone makers are free to use android as they wish, they can decide if to upgrade or not.
google only realeses the source code.
Click to expand...
Click to collapse
No, Windows is quite open. Apple is the closed one.
Sent from my MB508 using xda premium
I have the plan to get my fingers dirty with building Android ROMs for some older devices to provide them with security fixes and maybe new functions.
After looking around in XDA and AOSP, I think, I'll get a grip on the build process. However, I'm absolutely not clear what it means, if the device vendor has discontinued software updating and proprietary elements are available from an older version only. The example is the Nexus 5, where Google stopped software maintenance with Android 6. Would those older modules be still usable? Am I thinking too complicated?
Instead of upgrading the device to a new Android version, which apparently can bump into limitations like memory etc., would security fixes be backported to older Android versions?