Why Android Upgrades Take So Long
adeelarshad82 writes "Last month Google released the Android 4.0 'Ice Cream Sandwich' code base to the general public and manufacturers but it may be a while yet before it's actually rolled out to existing phones. In an attempt to explain why it takes so long, Motorola and Sony Ericsson shed some light on the process. Motorola described the long testing process involved in getting the new code out there, whereas Sony focused on explaining the time-consuming certification process."
You'll get fed up waiting and buy a new phone instead.
Great phone, the Fascinate, just can't stand the software they stunk it up with.
when you have a slew of devices, carriers, api versions, applications etcetc and considering android has become a really complicated deal
frankly, i think updates are *not* talking that long.
(16GB to compile ICS? jesus fuck why?)
Looking for people to chat about multicopters, coding, music. skype: gtsiros
So, this long and rigorous testing process is why smartphones are known for their rock-solid stability, seamless integration between hardware and software, and general lack of baffling fail, right?
OEMS: I takes time to integrate our own buggy, irremovable software into the kernel.
Summation 2
That's why!
Anyone else having a hard time taking something called "Ice Cream Sandwich" seriously?
where is sue? sue is idle.
"Operators then may want to customize the software, and the OS must be localized for the market and language."
I think that is where the bulk of the time is spent.
Is it because the handset manufacturers don't make any money from the software and are probably more interested in selling you a new phone? After a year or so of support, they've generally shown almost no interest in pushing out additional upgrades as they probably don't even sell that particular model of phone any longer. Unless it's a Nexus phone, or a particularly popular model, support is pretty sketchy. There are a lot of promises to update phones to ICS, but I won't be surprised when a lot of those plans get canceled or delayed indefinitely.
Wading through the code and carrier requirements certainly tacks on some additional time, but considering that these companies don't have much incentive outside of brand loyalty, which may not even exist to any serious extent, to update their old hardware, I don't think that they try too terribly hard to get it done in a timely fashion.
It compiles. What more do you want?
Deleted
More like a long and arduous process of developing dumbass manufacturer interface overlays and bloatware.
I know I am going to get flamed for being an apologist, but you know that until about a year ago Dell was selling computers preloaded with Windows XP, right? Windows XP, which made its debut in 2001? They were selling (and people were glad to get) a computer with 9 year old software on it. Now we have Android OS from Google and the turnaround can be anywhere from 4 months to a year before it is running on a good portion of the install base, and we complain about it? Why? If the phone doesn't do what you want it to, don't buy it thinking that some software release will come along next week and make it all better (even if the retailers want to insist that)...
Learn from history: buy the phone that does today what you want your phone to do today. For a crowd of computer dorks who know all too well the ups and downs of the software development lifecycle, we here on /. sure do like to play dumb...
The community will port 4.0 to existing phones and newer ones, just like gingerbread. This is because google releases the code to everybody, rather than OEMs. On the atrix, it was due to go up to gingerbread by Motorola, but long long before that gingerblur came out bringing with it most of the features. The official update was of course slightly better, but then again the atrix is locked, what can we expect?
P.S. unlocked phones get much much better support from the community, such as the g2, so it may be worth staying tuned to XDA for your phone and see if 4.0 is ported to it yet.
Took about 2 days before my phone auto-upgraded.
Why is this step even listed? I don't want my carrier to certify the software running in my phone. My carrier can't even bill me without mistake. Why would they be competent in testing smart phone OSes?
What certification process is SONY talking about if in the end, (as evidenced by apps that will not correctly run on their devices), apps deemed compatible with Android still will not install/run on all their product portfolio? Who is SONY trying to fool?
Reminds me of the original A64 procs from AMD. "Hey we have the first x64 procs for desktops" Great, no software will be able to take advantage of it for the next 3-5 years.
So the manufacturers with all the driver source code and dedicated teams take much longer than people without the driver source and in their spare time.
I am already running a port of Ice Cream Sandwich on my year old T-mobile G2.
I know it is unrealistic, but if they tested every app in the Android market for security issues or other issues that might have opened because of the code changes, it would take much longer.
In the first Ice Cream Sandwich source code that was released, the Hardware Abstraction Layer (HAL) – the software layer giving applications direct access to the hardware components – was to some extent adapted for a Texas Instruments hardware platform. However, for all 2011 Xperia phones, we used a Qualcomm hardware platform. This means we have to replace the default HAL coming with first source code released for Ice Cream Sandwich, with our own HAL.
The HAL changes have impact on several features on a phone, including the camera, different sensors (such as proximity, light, accelerometer and compass), audio, Bluetooth, Wi-Fi, GPS, as well as multimedia and graphics components. Thus, we do not only have to modify and configure the HAL according to the Qualcomm hardware platform, but also all the other hardware components used in a phone.
Wow, I sure hope they're just mixing up terminology here. The entire point of a HAL is that you just plug in your drivers. If you have to modify the HAL because you're using different hardware than the reference device, you're doing it wrong.
Comment removed based on user account deletion
When will I be able to install whatever OS I want on my phone from a flash drive, in the same way I install the OS on my PC?
Now I understand the carriers do not exactly want this and perhaps the manufacturers are not keen on the idea either, but someone stands to benefit from the model and force everyone to follow.
So we have the politics to deal with in some ways, lets talk technical and economic first.
If I can swap a SIM card or forge an ESN then I have a technical solution around the carriers, right?
It seems CDMA may be a bitch, does anyone know if I can technically bring any CDMA phone with the right modem to the likes of Verizon and Sprint without their "help"?
Now we just need a manufacturer willing to make some open hardware, there seems to be a few out there and the Nexus line of phones is not too bad.
But the bootloader and then the driver issues seem like another pain I hear about.
What is the issue there, and what are the solutions?
PCs work with the fabulous x86 BIOS stuff? Just need a Windows or Linux driver then and you are good to go? Can that be possible with the ARM architecture, or is everything wild west and so custom outside of the standards that it will not work that way?
Economics? It will never sell? Everyone expects a $200 on contract phone. These free, as in speech, phones cost to much and no knows they want them except geeks?
Cell phones are a status symbol, they are jewelry?
Oh well, maybe we can get enough of use geeks to buy them. Perhaps people will get fed up with the constant phone upgrading and everything will level out like the PC and notebook PC markets seem to have.
What do these new OSes offer me anyway? Android Froyo sped up my applications with JIT and gave me tethering. After that Gingerbread and the like have just slowed down my Nexus One and offer no new features.
Maybe I do not really need to ability to upgrade the OS on my phone, it is not worth it.
A kernel does not an operating system make.
Yoda, is that you?
Yoda would more likely say "Make an operating system, a kernel does not."
There's a difference between Yoda-speak and German-speak. Yoda-speak is OSV (object subject verb; "a fine mess this is") or VOSv (verb, object, subject, helping verb; "help you I will"), in contrast with the SVO or SvVO order of English (and presumably of standard Galactic Basic). The "X does not Y make" pattern is SvOV, as commonly used in German and Dutch and occasionally in English until the early modern (17th century) period. It's an allusion to a Richard Lovelace poem.
The Moar You Know ...:::*
I've been thinking this for some time, and the more I see articles like this (and for that matter Android phones), the more convinced I am that a rapidly evolving platform put together by a company famed for an attitude of "foist a beta onto users, we can always update it later" and the cellphone industry as it stands simply do not mix.
Why don't they mix? Well, think back to a dumb phone - more specifically back to when that was more-or-less your only option.
Every manufacturer had at least 4-6 models available to the general public at any point in time and each model was generally quite different from any others from the same manufacturer available at the same time; each model would be sold for a relatively high price on contract for maybe 9-12 months before being offered at a knockdown price on pay-as-you-go for maybe another 9-12 months before being discontinued. A few were developed down to a price to begin with so they'd only ever be available on pay-as-you-go. Firmware updates were applied by phone stores and were only ever released to correct really bad bugs. 99% of the manufacturer's work on the firmware was completed before the phone was released to the general public; the development team would be on to other things by the time the phone was actually released and wouldn't be taken off to work on bugs in existing firmware unless really necessary. Brand loyalty was virtually non-existent, so there was little point in worrying too much about providing a stellar user experience as long as you didn't actively annoy the user.
AFAICT, most phone manufacturers haven't really changed. Samsung do this, so do Sony Ericsson, so do HTC. But when your business model is based around building phones in this fashion, you can't really make drastic firmware upgrades available for existing models. You'd need to significantly increase the development team simply to get Android working on phones that are already shipping. To what benefit? By the time you've done so on a shipping model, it's just about to be discontinued, its replacement is around the corner and such work will get a return on investment of approximately zero.
Unfortunately the manufacturer is right here. Currently in the ARM world every printed circuit board (PCB) model requires its own kernel version - even if the SoC is the same. Even if the components in the board are exactly the same, a new kernel version is required if the components are just wired differently!
Why is this? Because in the ARM world there is no any universal bus like PCI is in the x86 world. Typically components are connected by using quite primitive buses like I2C or SPI, which has no bulletproof way to do a listing of connected components. Also ARM is heavily power optimized - also in the PCB-level. There are software controlled regulators powering different components ON when needed and OFF to save power. Because there is no any standard way to do this - every manufacturer is designing the powering differently. Power and the communication bus are not connected by any means - powering the component on/off might require using a totally different bus - not told to software by the communications bus. This knowledge is typically just put (hacked) into the kernel code.
In PC world most of the hardware is initialized by BIOS and all the peripherals are usually nicely listed by the PCI bus (try lspci -command in your x86 linux box). Drivers can be easily attached into peripherals by unique device IDs. The same driver works for all boards even if the PCI bus address is different.
No such luxury in the ARM world. Typically you can see multiple versions of drivers for the exacly same component in the Linux kernel source tree. Just because the ARM architecture has brought too many obstacles for developers to easily use the same driver for different boards. You can imagine - it is a total mess. Also typically those drivers do not enter into mainline kernel so there is again more work for phone makers to port drivers for the new kernel version. Also Android kernel has some differences to normal Linux kernel.
Correct me if I'am wrong, but in my understanding the Android HAL-interface is in the user space - not kernel space. The HAL-interface might change a lot between Android versions. But not only the interface has changed - also the kernel space interfaces - those on the top manufacturer have to implement the HAL-interfaces - have changed breaking the existing drivers the manufacturer has made.
But there is hope in the future. Developers of linaro.org have work in progress and already very good demonstrations of how this mess can be sorted out. But we are not there yet and the work is huge. It needs also some common standards and practices to be adopted by the ARM hardware makers.
See also: The Ugly State of ARM Support On Linux http://linux.slashdot.org/story/11/06/20/2039229/the-ugly-state-of-arm-support-on-linux
But this ARM-problem is not just related to Linux. Windows Phone 7 is currently working only on Qualcomm SoC, probably because Microsoft wants to keep things simple at this point. Apple has solved the problem by making its own hardware and SoC and probably standardized the hardware in house.
I just got a Samsung Focus S Windows Phone 7.5. It came installed with both AT&T and Samsung bloatware.
15 minutes after I had the phone powered on, all of it was gone. I just deleted it.
I came off iPhone because I hated how controlling they were of the OS. I WANT to like Android, but the level of shit I have to deal with to get a bare OS without all of the bloat is more than I want to hobby with on a phone I need to depend on.
Windows Phone, while it has some pretty huge downsides (anemic app selection, limited multi-tasking), has turned out to be the least restrictive of the three. I just didn't see this coming, honestly. I expected to be an Android user.
Grammer Nazis - I mod you "troll" unless you actually add something on-topic. Yes, I know I have mispellings in my sig.
Why do Android upgrades take so long? You're kidding, right? Probably not... about the time that Android 4.0 came out, there was an article about Android 2.3 being "long in the tooth". I bought my Android 2.1 phone in June 2010. Android 2.2 had just come out, but the only things that the 2.2 phones offered over 2.1 were built-in wifi sharing (didn't need), 4G (not available within 300 miles of my home), and a front-facing camera -- and I wasn't going to spend an extra $100 for the front-facing camera. Since then, Android 2.3 came out (December 2010), then 3.0 (February 2011), 3.1 (May), 3.2 (July), and 4.0 (October). Looking back, 2.1 came out in January 2010, and 2.0 in October 2009. Ignoring the tablet-only 3.x, that's still five versions in two years! Even the ten month wait from 2.3 to 4.0 is hardly an eon.
cb
Oooh! What does this button do!?
Bravo sir, you pretty much nailed my feelings on almost every phone I've even owned.
One of the things Apple does right is that they dont need to go through months of testing with every iPhone-selling carrier on the planet just to release a new iOS update, they can and do release on their own terms.
Other manufacturers need to follow Apple on this and take control over firmware releases.
Can be found here:
https://supportforums.motorola.com/thread/55402?start=0&tstart=30
The atrix phone, which "does everything", cannot play music without the sound micro-pausing.
The fix is in faux's kernel. The CPU isn't ramping up fast enough when there is a sudden large cpu load.
What is the #1 cause of random large CPU loads on the atrix? Motoblur. If you break motoblur by signing into a different phone, 95% of the random cpu spikes go away. You're not allowed to have two phones with the same account, so it disables the functionality on your old account. Except the phone seems to work perfectly fine without it. It also reboots a lot quicker with motoblur broke.
If you listen to music your phone will eventually randomly reboot
If Android kills the built in music player app when it is idle to conserve memory, it will go into a state where shuffle is stuck on and your playlist will be corrupted
Motorblur's big feature is that it keeps the state of phone saved.
Except it doesn't. I've gotten 6 phones and in my most recent restore, it was 6 months out of date. My home screen arrangement was old and wrong, and my sticky notes were out of date.
Oh yeah, Motorola doesn't actually test their phones with a working SIM card and motoblur account.
In fact motorola doesn't even turn their phones on for more than 15 seconds. A lot of refurbished phones get sent out with a defective screen that would had been caught if someone actually went to the set-up screen.
Also the hard reinstall only deletes the /data directory, so it will not fix a corrupt upgrade, OS installation, or user who dicked with their phone