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?
Related
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
Which smartphone has the source for the drivers availbale at the moment?
To know what to choose in case i want to port tizen to it...
frullewulle said:
Which smartphone has the source for the drivers availbale at the moment?
To know what to choose in case i want to port tizen to it...
Click to expand...
Click to collapse
I just wanted to post a new thread with the same question.
Also, which are the phones with the best reverse-engineered drivers? And is there much difference between this and open drivers?
If you have open drivers you should pretty easily be able to port every system to it that supports the same specs as screen resolution, etc, right?
Unrelashade said:
I just wanted to post a new thread with the same question.
Also, which are the phones with the best reverse-engineered drivers? And is there much difference between this and open drivers?
If you have open drivers you should pretty easily be able to port every system to it that supports the same specs as screen resolution, etc, right?
Click to expand...
Click to collapse
Although it would be reasonable for you to think so, you would also be incorrect. The reason why this isn't the case is because hardware manufacturers each have their own different firmware that they use, which causes a lot of the bifurcation of the Android ecosystem. Just because you have two phones that are identical in every hardware fashion doesn't mean that their firmware is the same, so there is no guarantee that one set of drivers would work on different devices.
syung said:
Although it would be reasonable for you to think so, you would also be incorrect. The reason why this isn't the case is because hardware manufacturers each have their own different firmware that they use, which causes a lot of the bifurcation of the Android ecosystem. Just because you have two phones that are identical in every hardware fashion doesn't mean that their firmware is the same, so there is no guarantee that one set of drivers would work on different devices.
Click to expand...
Click to collapse
Ooohh, so underneath android and its Linux kernel lies a firmware that handles communication between the kernel/ Android and the drivers/ hardware? So I'd need open drivers and open firmware to be able to port anything with ease to this device (at least theoretically)?
Unrelashade said:
Ooohh, so underneath android and its Linux kernel lies a firmware that handles communication between the kernel/ Android and the drivers/ hardware? So I'd need open drivers and open firmware to be able to port anything with ease to this device (at least theoretically)?
Click to expand...
Click to collapse
Yes, but practically this is impossible as firmware comes straight from the manufacturer, so even if you could develop some sort of open firmware (basically you would be making an open BIOS), you would have no way to install it onto the actual device, since they are hard coded into the chip. You would need specialized tools in order modify on that level.
syung said:
Yes, but practically this is impossible as firmware comes straight from the manufacturer, so even if you could develop some sort of open firmware (basically you would be making an open BIOS), you would have no way to install it onto the actual device, since they are hard coded into the chip. You would need specialized tools in order modify on that level.
Click to expand...
Click to collapse
Awesome, I'm finally learning what I want to know!
So if there was a manufacturer who gave this firmware/ BIOS code away (because it's an old model or they have been convinced by the community or it's a dedicated device for developers or whatever) then it would be finally easy to port every system to it (that supports the hardware)?
And how come it is possible to port e.g. Linux to Android devices without having the sourcecode of the firmware/ BIOS? Because they reverse engineered it? And if you have a device with closed drivers you have to reverse engineer the drivers *and* the firmware/ BIOS? How come no manufacturer tried to build a developer device with open firmware/ BIOS since it would give them a lot of support from developers?
Theoretically yes, but then you would still face the issue of how you are going to interface with the hardware, as the chips were not designed to be interfaced with via usb devices. They tend to be programmed at production then never altered again.
Android is linux-based, so it would stand to reason that you could port a stripped-down version of linux onto the device. Using other tools, you can create a VM on the Android device to have a fully functioning version of linux, but this is all software-level, not physical level. And the reason why they don't make open BIOS is for the same reason textbook manufacturers keep making new versions of textbook that are almost exactly the same.
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
Why everysingle device have his own ROM and there isn't a universal ROM for all devices? I know, every single devices have lots of different features but why just a single HAL which load the appropriate drivers for each device's componente (speaker, io, chipset, etc)? (Like Windows, OSX, Linux Distros does) What is wrong with this? why not? Did anyone ever tried to build something like this?
Scr3w1912 said:
Why everysingle device have his own ROM and there isn't a universal ROM for all devices? I know, every single devices have lots of different features but why just a single HAL which load the appropriate drivers for each device's componente (speaker, io, chipset, etc)? (Like Windows, OSX, Linux Distros does) What is wrong with this? why not? Did anyone ever tried to build something like this?
Click to expand...
Click to collapse
This will take to much space to hold every driver of every device and the partition sizes are limited
Scr3w1912 said:
Why everysingle device have his own ROM and there isn't a universal ROM for all devices? I know, every single devices have lots of different features but why just a single HAL which load the appropriate drivers for each device's componente (speaker, io, chipset, etc)? (Like Windows, OSX, Linux Distros does) What is wrong with this? why not? Did anyone ever tried to build something like this?
Click to expand...
Click to collapse
Some software needed to be in a specific processor/cpu or hardware,every model of device is working differently even though their brand are same and the name of the phone is same,like there are exynos and snapdragon for samsung galaxy s flagship phone and they are working differently.maybe in the future there is but it will need experienced engineer or whatever it takes to build an os that work for every phone,and of course it is costly to maintain the development like the remix os.but it just nearly impossible(maybe not).
You know that when you install Windows, you still need drivers for almost everything, motherboard, gpu, some ssds need drivers to work properly. Maybe in the future because device space is increasing and we might have like chromebooks, 2 partitions for drivers and system files, then after installation, it determines drivers and loads them, then deletes the rest of the double partitions and cleans up. This will take up space though, a lot. And it will take a heck lot of space and will most likely only be available for new devices because what's the point of having devices from 2016 and their files in a ROM for devices from 2020 etc. Space is the only limitation.
Not Possible.
Every manufacturer built it's system using public patents (like IEEE 802.11) and multiple private patents, that they acquire or researched. This way all the companies have different architecture means different drivers set and hardware settings. In order to achieve something that you are describing, they have to agree to 1 manufacturing standard (and believe or not no company will agree to this thing). As another person wrote above about installing many drivers and stuff. This will make the ROM extremely heavy and it will take allot of time each time, it will start as it have to check the system and load all the drivers compatible. This is the thing Richard Stallman is saying for many years but close system developed by each and every company have produced 'restrictions on each and every side of the technological field'
strongst said:
This will take to much space to hold every driver of every device and the partition sizes are limited
Click to expand...
Click to collapse
Well, nice point, honestly how much space are we talking about? We may just have some generic drivers (like windows) and some thirdy part proprietary drivers to download separately
Thunderoar said:
Some software needed to be in a specific processor/cpu or hardware,every model of device is working differently even though their brand are same and the name of the phone is same,like there are exynos and snapdragon for samsung galaxy s flagship phone and they are working differently..
Click to expand...
Click to collapse
Linux (And Windows as well) is/was designed to run on a very large number of platforms, like RISC, ARM, X86, AMD64, IA64 etc. Both Exynos and Snapdragon processors are based on the ARM/ARM64 Platform so this kind of abstraction OSes do already from long time
Thunderoar said:
maybe in the future there is but it will need experienced engineer or whatever it takes to build an os that work for every phone,and of course it is costly to maintain the development like the remix os.but it just nearly impossible(maybe not)
Click to expand...
Click to collapse
We are a open source community, look at Linux kernel, everything is possible.
RAZERZDAHACKER said:
You know that when you install Windows, you still need drivers for almost everything, motherboard, gpu, some ssds need drivers to work properly. Maybe in the future because device space is increasing and we might have like chromebooks, 2 partitions for drivers and system files, then after installation, it determines drivers and loads them, then deletes the rest of the double partitions and cleans up. This will take up space though, a lot. And it will take a heck lot of space and will most likely only be available for new devices because what's the point of having devices from 2016 and their files in a ROM for devices from 2020 etc. Space is the only limitation.
Click to expand...
Click to collapse
"Space is the only limitation" Yeah but space is increasing, everyphone have at least 16 GB, only video drivers are very heavy, we may drive some generic video drivers (like xorg-amd, xorg-nvidia etc) All other drivers are relative lightweight, bluetooth, wifi, modems etc.
GenieKnudson said:
Every manufacturer built it's system using public patents (like IEEE 802.11) and multiple private patents, that they acquire or researched. This way all the companies have different architecture means different drivers set and hardware settings. In order to achieve something that you are describing, they have to agree to 1 manufacturing standard (and believe or not no company will agree to this thing). As another person wrote above about installing many drivers and stuff. This will make the ROM extremely heavy and it will take allot of time each time, it will start as it have to check the system and load all the drivers compatible. This is the thing Richard Stallman is saying for many years but close system developed by each and every company have produced 'restrictions on each and every side of the technological field'
Click to expand...
Click to collapse
I think we already talked about some aspect of this answer, private patents? CyanogenMod, AOSP, are opensource those roms run on kinda everyphone out there, we may just write a real "os" based on those roms. What do u thinK?
I have wondered this for a very long time
Why isn't there any phone hardware which exists (that I'm aware of) where you can simply install any OS you like without jumping through hoops?
I'm referring to something similar to a PC. When you build a PC, it is all standard hardware and you can load any os you want on it, endless flavors of linux, current or old versions of windows, etc. It is simple. Both windows and linux can generally detect all your hardware and install drivers, it is simple.
With phones however it seems you are always limited. You have to find ways to root them, usually requiring exploiting some vulnerability. Hope the bootloader is unlocked. Assuming you aren't a talented developer (like most typical people), you then must search for roms for the phone, usually made by various people on forums sites or similar. It is a big mess. Or if you don't customize it, your stuck with some bloated os that the manufacturer will fail to update.
I don't understand why phones are such a mess like this, and why you can't just buy an OS-less phone, and simply install vanilla android, or any other standardized open source os on it, similar to how things work on a PC?
There aren't any unified standard in the embedded devices in general and in phones in particular. The reason that you can install compatible OS on the PC is because IBM PC is a standard, which specifies how the PC should boot, where to search for the bootloader, what kind of partition table should be on the HDD, how the devices should be connected, how to probe for the hardware, how software should use hardware, and lots of other things.
In embedded word, there aren't such standard. Until recently, every System-on-Chip used its own boot specifications and bootloaders incompatible with each other. Only in the last 2 years something started to change in a better way.