4 comments

[ 4.3 ms ] story [ 18.9 ms ] thread
Short version: It seems that if you: a) don't perform updates of the current apps b) In "Settings" "Store" you enable "Automatic download" of "Apps" and disable "Use Mobile Data" then iPhone still downloads an xml with the list of your apps every minute even if not connected to a WiFi.

This looks like a real, inconvenient bug. The article author's list was 30 KB which still adds up to cca 40 MB daily or 1 GB per month, really too much over the mobile network.

Still, curiosity only, I'd like to see how that xml looks like, or how many appy you have to have to make it 30 KB big.

I have ~60 apps installed. So, hardly a large number. The 30K is actually 83K that has been gzip compressed. The uncompressed file is a plist containing some encoded data. You can see the form at: https://gist.github.com/1855135 But, since I haven't taken the time to dig into decoding the data, and don't know exactly what it contains, I removed it from the posted file.
Thanks! Wow, it looks really inefficient: some binary data are stored in xml (I guess as base64), then xml gzipped which again produces a binary file. Interestingly enough, if the binary data were encrypted, the gzipped size would be bigger like 60 KB and not 30 KB so even when I don't see the data I know that these 80 KB binary values aren't compressed or encrypted.

If you copy only these 80 KB encoded you can easily convert it from base64 to binary with this:

http://ostermiller.org/calc/encode.html

You can copy the encode.html to your computer, then open it there, it's client side javascript so the decoded data stays in your computer.

python's base64 module works fine ;) and yes, this is very inefficient (in more ways than one). First, the outer xml is actually gzipped twice (once by the web server I'm guessing). The base64 decoded data is yet another xml file. (Which is only ~60K compared to the 80K encoded blob).

This inner xml file is another plist containing a dictionary that is primarily a large set of links to http://itunes.apple.com/WebObjects/*. Most likely to update app store / itunes app functionality. It also contains some configuration parameters (e.g. "<key>eBook-store-available</key><string>YES</string>").

None of it appears to be sensitive (and doesn't appear to list any of my apps). But, there could be an id in one of the links, so I'm not going to post it yet. I'm guessing that this was meant to be downloaded relatively infrequently, so the verbosity wasn't considered an issue.