Now that I have your attention, I'd like to shed some light on what inspired this tirade I am about to display. Recently I purchased a Samsung Galaxy Tab 10.1 Android tablet. Regular readers will remember that I previously owned a Motorola Xoom tablet, which I have since passed on to Jason Perlow.
I love the hardware on the Galaxy Tab. It's thin, it's light, it's comfortable to hold. The display is sharp and bright, and the battery life is excellent. The power adapter uses a proprietary connector, but at least that connector goes into a fairly standard 5 volt, 2 amp USB brick that can be used to charge pretty much any device that gets its juice through a USB cable.
On July 12, however, my love of all things Samsung came crashing down upon me as I suddenly discovered that my shiny new tablet was misbehaving--badly.
The highly touted bookmark sync between the desktop Chrome browser and Android 3.x Honeycomb tablets had stopped working. It was causing the automated background synchronization process between the tablet and all Google services to crash.
It turns out that at some point Google started making some changes to the backend systems that handle Google's user account data. There's nothing wrong with them doing this; it happens all the time. In fact, no other Android 3.1 tablets had any issues at all with the changes, and their bookmark sync continued to work without a blip on the radar.
Not Samsung, however. I've discussed the issue with a number of people, including Howard Burgess, author of the ChromeMarks for Android app. Howard tells me that his app stopped being able to sync with Google on July 12, requiring him to make an emergency update to his app. Apparently the ability to push the bookmarks from his app into the Samsung browser has always been problematical even though it works fine on other devices.
I also discovered that the PhoneMarks app, which provides similar functionality, is also having issues operating properly on Samsung devices. When I tried to run it on my tablet, the app would continually crash as it tried to access the Google data backend.
So what does this mean? Well, I did some digging around the internet, and it's become somewhat well-known amongst Android developers that Samsung actually modifies core source code in the Android operating system that handles communicating with Google's backend data services.
Yes, that is correct. Just head over to the XDA Developers forum and search for yourself. There are people complaining about modifications to the browser, the backend communications issues, and more.
What really bothers me about this is that while it is important for OEMs to make sure the software functions properly with the hardware, Samsung is changing code they should not be touching at all. What made their developers think they know better than Google what goes on with their backend services? Samsung can't even get their own OTA update services for their devices working properly; they shouldn't be messing with the core communication software that connects to a service they have no access to whatsoever.
It's not just Samsung doing this, although currently they seem to be the worst offender. Motorola and HTC respectively put out heavily modified kernels for Android that include their Motoblur and SenseUI interfaces. Samsung does the same with TouchWiz. Some people love these custom launcher/skinned interfaces for their phones and tablets. I even tried the leaked TouchWiz 4 interface from Samsung for my tablet.
Then again, some people don't love them. Most of the time they add an extra layer of apps that are pre-loaded into memory, causing an unnecessary burden on the CPU and decreasing battery life. I liked the TouchWiz widgets, but didn't like the modification of the browser. I was annoyed by its tendency to load apps I didn't use into memory, and couldn't even block from loading. Also, over time, my tablet became more and more unstable the longer the TouchWiz interface was running.
Here's the thing: When I was running the Motorola Xoom tablet, I had none of these problems. Why? Because it's Google's flagship tablet device. As such, they are not allowed to modify the operating system in any way. It has to be plain vanilla Android. As such, it was quite stable when I used it--after the Honeycomb 3.1 update, of course.
Non-flagship devices are not limited by this restriction, which means the OEMs can do whatever they want to them. And that results in the issues I experienced with my tablet. I should point out that I was finally able to sync my bookmarks to my tablet, but I have to do it manually. If I keep the automated bookmark sync option enabled in my tablet settings, it will crash the sync process every single time it runs.
So who's at fault here? I'm inclined to just swing wildly and include everyone involved. Samsung modified core operating system functionality when they should have left well enough along. Google didn't stop any of the OEMs from fiddling with things that should have been outside their permission to mess with.
Also, Google hasn't released the Honeycomb source code--I would love to see the folks from CyanogenMod get a hold of it so they could release a stable, vanilla firmware for all tablets. Samsung provides a website where developers can test their code, but their website is broken so you can't create a new account to test your code.
At this point I am in total agreement with Jason in that these devices need to have a low-level hypervisor that interfaces between disparate OEM hardware and a standardized version of Android. Stop letting the OEMs make decisions about the operating system.
Microsoft lets OEMs put a bunch of unnecessary apps onto new systems being sold, but they don't let the OEMs modify the core operating system. I would like to see Google take back control from the OEMs. Lock down the core operating system and let them just stick branded widgets and launchers on top, rather than integrating their buggy code directly into the OS.
Yes, Android is ostensibly supposed to be open source, but that should not be an open license to muck about with the inner workings of the operating system when the OEM devs haven't a clue as to what they're doing.
Finally, Google and the OEMs need to start learning what the phrase "factory reset" really means. I performed a factory reset of the Xoom in the tablet settings before I sent it to Jason. When he got it, it still had all of my movies, documents and ebooks still loaded on it. Turns out that factory reset doesn't include the /sdcard/ directory, even though it's internal storage on tablets like the Xoom and the Galaxy Tab.
Reminder, folks: if you're going to sell your Android tablet, or return it, or need to have a warranty replacement, you better make sure that your data is actually gone. Get an app like ES File Explorer and delete every last file in the /sdcard/ directory before performing that factory reset. Because you never know who will end up with your private documents and data if you didn't make sure it was gone.