After switching from my Nexus S to a Nexus 4 I noticed that my phone was transferring huge amounts of background data. Like 70 MB in 15 minutes. As my data plan only allows 300 MB per month I was not amused. Even when connected to WiFi, it often (but not always!) was uploading tons of data.
According to the "Network Usage" the culprit was "Android OS". So I tried to limit the background data of it only to find that "Android OS" seems to be the only "app" which doesn't offer this option. Great.
Well okay, that's what firewalls apps are made for.
I configured AFWall+ but that only cured the symptom not the cause.
Next I redirected the traffic to a laptop with a WiFi card and used the usual tools (tcpdump, wireshark) to analyse the traffic. Result: many many uploads to some Google servers but SSL encrypted so no chance to see the contents.
I kept investigating and found this very interesting article on Android data usage.
Apparently Google has began expanding its cloud-based backups of the phone settings so that it now also does backups of the data of some apps. So, I turned off "Back up my settings" in the Privacy settings and whoopiedoo, the sending stopped and the data traffic returned to a normal amount!
There is a post in a Google forum with similar experience: Something within the Android System—maybe Backup—is using up all my data allowance.
I started looking in the Android documentation and found that there is such a thing as "Android Backup Service" which apps can use to backup their application data to the Google cloud: Data Backup
And there is even an CLI utility "bmgr" to interact with the Backup Manager.
But I cannot find any information about how the phone owner can find out which application is backing up which data, or how to influence or stop this. I'd be happy to use the backup service—it saved me a lot of time when switching to my new phone—but the way it is implemented now it's definitely unusable.
After talking to my former coworker and Android expert Izzy who was clueless too, I decided to post this issue here as—like he said—I will find the best experts here. Well, let me know if you have any idea about this. Any hint is welcome!
The list of applications with backups as well as how much space each backup uses is on your Google Account Dashboard under "Android Devices".
Unfortunately, there isn't, I believe, any way to control it other than turning it on or off entirely.
@David Silva Smith :
You are saying that I should answer my own question?
Okay, looking at the comments there is actually more technical information in my question than in any of the answers. :-)
The (currently) final answer seems to be that Google doesn't allow us more insight and no way to influence the backed up data. This is inacceptable but how can we change Google's behaviour???
It's true that the Google Dashboard shows a little more detail about the saved data. BUT: it takes a day or two for the information to appear AND it's definitely not complete. I reactivated the cloud backup feature about a week ago, it has uploaded 178 MB of data, but the dashboard shows just this:
Android Wallpaper 05.03.2013 10:52 6,6 MB
Android System Settings 05.03.2013 02:16 3,61 KB
Android Market 03.03.2013 13:27 16 B
AndroRadio 03.03.2013 13:27 8 B
That's wrong AND not useful. sigh
Quite certain that this is a bug in Nexus 4.
Ended up using close to 100 MB for Android OS last month and my current plan is only for 350 MB.
Turning off 'Google backup' did not really have much of an impact as indicated in many forums.
I did notice that 'Android OS' is active only when connected to my mobile network and not when connected to Wifi.
The issue is severe only when connected to my mobile network with "restrict background data " turned ON.
I have used the phone for couple of days with background data unrestricted and Android OS consumed limited data.. less than 1 MB.
now, I restrict data based on individual apps while on mobile networks and this seems to work fine.
I would propose to disable the Android built-in Google Cloud Backup in the settings and use another app to backup your phone.
For example, Carbon supports backing up apps online to different cloud storage providers, and allows to restrict backups to times when you're connected with a Wifi network. Carbon also has the advantage that it can backup apps that are not backed up by Google Cloud Backup.
TitaniumBackup also supports backing up your data online, but requires root.
Both apps also support that they only back-up when your phone is connected to a charger, so that they don't suck your battery empty when you need it for other purposes.
The disadvantage of this solution would be that they both only support scheduled backups, so if you back-up only once a week, you might lose a week of your backed up data if you lose or destroy your phone just before the backup would run. However, I don't know exactly which schedule is used by the Google Backup solution, so this could suffer a similar problem.
I don't know if this answers the original question, but I think this will explain data usage at least in some cases.
I was having issues with excessive usage by the Android OS and I have discovered that
on my phone (Sprint GS3 running Android 4.1.2) manually changing the wallpaper causes the android system to upload aprox 15MB of data (on one occasion it uploaded close to 60MB but I have been unable to duplicate that), so if you have an app changing the wallpaper several times a day that could explain Android OS data usage - at least in some cases.
Android OS also includes the YouTube data or any video data which you have viewed online using browser/YouTube. You must have watched equally that much amount of videos online from your device. When you browse in the YouTube app or browser only browsing data is recorded by respective apps the actual data streamed for video is recorded under Android OS
I have a Samsung Galaxy Gio running Android 2.3.3 Gingerbread.
How can I block packet data for background programs only? When I disable Settings -> Wireless & networks -> Mobile networks -> Enable packet data the default browser and Opera Mini don't work.
Settings -> Wireless & networks -> Mobile networks -> Enable packet data
(I'm trying to keep down my network billing charges!)
If your device is rooted you can use LBE Privacy Guard to allow/deny network access based on a per-app setting (and much more). Since I couldn't find the version I use (and shown in the screenshots) on the market minutes ago I think there's a new version of it available. But I didn't get an update via Android Market on my phone.
If your phone's rooted, use the excellent DroidWall to selectively allow / disallow apps from connecting to the internet.
Like all apps that need root, read the instructions carefully and of course, do make a complete backup before trying things out.
In addition to Sparx's answer:
Droidwall has been discontinued and now forked into AFWall+ Play Store and continues in the spirit of open-source for the deprecated/obsolete Droidwall here GitHub.
Whether your phone is rooted or not – if it's running Android 4.0 or newer, there's help built-in:
Done. This app will only use data when it's the foreground app now, or when you're connected to WiFi (above settings are for mobile data only).