Normally I rip apart APKs looking for news-worthy items and unreleased features, but I've covered everything that's currently out, so this teardown session is going to be a little different. During my usual digging for features, I've stumbled across a surprising amount of unused files, movie references, and canceled beta assets. I've always thought it was a shame that no one knows about them, so today we'll be exploring all the crazy leftover files that ship on our phones and tablets. If you've ever checked out the deleted scenes section of a DVD, this article will be right up your alley.
I'll be jumping from app to app and cover anything that doesn't show up during normal usage. I don't stand a chance of knowing every nook and cranny of Android, so when I inevitably cover something that is actually used in Android, just yell at me in the comments and I'll change it. All of these discoveries are from a bone-stock Galaxy Nexus or Nexus 4. I won't have an explanation for a lot of this stuff, so be sure to leave your conspiracy theories (or enlightening explanations, if you happen to be a Googler <3) in the comments. We've got a wild ride ahead of us, so let's get to it.
The System UI is what draws the on-screen system buttons, power menu, status bar, and notification panel. It also houses a bunch of stuff will never pop up while using Android. Just look at all this:
This is called "jandycane.png," and should give you an idea of the craziness that is in store for us. Your guess as to why this is there is as good as mine. This is a sugary snack that starts with "J," so maybe this was the internal, made-up codename for Android 4.1, before they settled on Jelly Bean. I could see needing to call it something before an official name was picked, so they went with something that couldn't possibly be right, and someone drew up a quick logo.
Steve Palacios from the comments is apparently pretty lucky, he managed to score a screenshot. Thanks guys!
All this proves that, yes, it was a fake logo for the OS, and they threw it in with the real logos just for fun.
I can't help but notice that this is a hand-drawn (or, you know, Wacom-drawn) image, and a placeholder, so it has a lot in common with the "Future Site of Quick Settings" image I found in our alpha Nexus 4 dump. I wonder if they were made by the same artist, and if hand-drawn placeholders are a standard thing for the Android Team. The red Jelly Bean logo has a hand-drawn look, too.
Speaking of Quick Settings, there's an unused tile hiding in the code. There are images and xml for a clock tile with moving clock hands! That would be really neat. This was probably cut because the Googlers realized a clock tile wouldn't be particularly useful. I propose they rework this idea and use it for the alarm Quick Settings tile. It could show the actual alarm time instead of a generic time.
Oh, and remember how our leaked alpha build allowed you to double swipe down to open Quick Settings?
<string name="status_bar_help_text">"Access them anytime by swiping down.
Swipe down again for system controls."</string>
Getting to Quick Settings would have been much easier with one hand. Bring back the double swipe down, Google!
This guy is called "arrow_dashed.png." There are references to it in an XML file called "status_bar_help.xml," so apparently it was going to teach you how to open the status bar. It came with some text, too:
<string name="status_bar_help_title">Notifications appear here</string>
When you first start up Android, there are a few tutorials that show you how to open the app drawer and launch an app, but a tutorial showing you how to use the notification panel never comes up. This arrow probably got cut because it was part of the double swipe down explanation. When that got cut, so did this.
System UI also houses image files of the red Jelly Bean in various states of construction. These are named "readbean[0-2]", and "redbeanandroid". These guys are probably used for the Bean Flicker Easter egg, but the interesting thing is that these are the only colors.
These buttons are labeled, predictably, "hd_on" and hd_off." They would probably be in reference to playing video, but the System UI has no business playing video. YouTube is the only thing with an HD button, but that button looks totally different from these. Interestingly, these actually have code that makes the button work. There's an "HD.xml" file for swapping from the red one to the white one when you press it - it's just not implemented anywhere. Again, what is this doing in the SystemUI?
Daydreams is a new Android 4.2 feature, which is basically a collection of screensavers. The only interface for it is buried in the display settings, yet these 3 picture files ship in Android. These guys are called "ic_daydreams.png," "ic_dreams.png," and "ic_launcher_dreams.png." The pillow is named as if it were a launcher icon, but there isn't an app icon for Daydreams, it only launches automatically or from settings. Daydreams actually comes with an app icon, and it doesn't look like the pillow, it's a rainbow and some clouds.
Since Honeycomb, widgets have had preview thumbnails instead of icons, and Google had a bit of fun with this one. This is visible on a phone, but it's kind of hard to see, so it's here now.
And speaking of time machines, this is "other_preferences.xml" from the Calendar, and it is all kinds of weird. For starters, it has multiple references to TARDIS, Dr. Who's time-traveling police box (time travel in a calendar app! Get it?) and second, it has an orphaned bit of black text that never made it inside a tag. Shouldn't
a compiler some kind of error checking catch this?
The strings.xml file has an entry that just says "<string name="tardis">TARDIS</string>," which is referenced in the above xml file. As for the other strings; "Copy_db" translates to "Send database," and "do_not_check" translates to "Do NOT check ->" complete with the little ASCII arrow and everything. It probably pointed to the check box. Cute.
Google+ has some interesting notification icons. Now when I say "Google+" notifications, I don't mean system notifications, I mean the notifications within the app, like in the left picture. There are files for a "coffee mug" notification and a mail notification.
The coffee mug must be someone at Google messing around, but it's actually referenced in the notification code:
<ImageView android:id="@id/notification_count_overflow" android:background="@drawable/badge_red" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/ic_notification_coffeemug" android:scaleType="center" />
It says it has something to do with G+'s notification overflow, but G+ doesn't have a notification overflow, it shows your last 50 notifications and just stops.
The Mail icon is just all kinds of interesting. Is this some kind of future feature, or just a junk file? There are images and code to flip the mail notification from white to grey, for read and unread, and that's it.
The Gallery and Camera are actually 1 APK. So they get 1 section.
Whoever made the string file was a little ambitious. It has entries for ISO, Exposure, Aperture, and Focal Length; all things you would normally only see on a DSLR or high-end point and shoot. Maybe they saw things like the Galaxy Camera coming.
The 4.2 Camera introduced us to Photo Spheres, a way to take a 360 degree panorama. It's easy to screw up a Photo Sphere if you don't know the all the tricks. Google is aware of this, because, at some point, there were plans for a cute little introduction to Photospheres. For some reason, they never released it!
These little guys are called "help_[1-8]"and show you all the things needed to make a great Photo Sphere. It bothers me that these never made it out the door, because they're very helpful, and very cute.
Of course, there is a bit of beta cruft that would need to be removed from these images. Photo Sphere's code name was apparently "Lightcycle," and you can see the Arc Reactor-esque logo emblazoned on the little bugdroid's chest in the last image. The Tron-theming didn't just extend to the codename, either - Photo Sphere used to have a different UI.
MY EYES! This is bright - way too bright. I'm glad they got reeled in. I can't even imagine this on something like a hyper-saturated Galaxy Nexus screen. You would need sunglasses. My guess is that the left and right arrows would guide you through the Photo Sphere process, the green hourglass was for processing the panorama, the red circle is for when something breaks, and the up arrow was for uploading it. The rest is anyone's guess. The names for these are not the slightest bit helpful. They are all descriptive of what they are (glow8orange2.png) and not what they were for.
This thing is called "filtershow_border_film2.9.png." "Filtershow" is the name of all the files for the Gallery editor, and "borders" are literally polaroid-style borders you can put around your pictures. Apparently this used to be one of those photo borders. Again we see a lightcycle reference: "LIGHTCYCLE EX34," which is pretty interesting. Any ideas as to what "EX34" refers to?
There is also some old text from before the final redesign. "Tracking" and "Alignment" probably have to do with lining it up vertically and keeping track of the panning. It sounds like the beta version of Photo Sphere was a lot fussier than it is now.
The shipping camera viewfinder overlay is a circle, so that means these two are unused.
There is also this awesome "Google Confidential" label. This is easily my favorite discovery, because it is aimed directly at people like me, who are out to spoil all of Google's secrets. Your label has no power over me, Google!
(Please don't send another take down request, I love you guys. <3)
Yes, the Death Star is in Google Earth, and it's called "icon_dev.png." Considering the regular Google Earth launcher icon is called "icon.png," it's safe to say this is what the dev version uses as its app icon. According to the strings file, the name changes, too. It's called "Earth Dev." I wonder what the developer version of Google Earth does.
Ok, follow me on this one. Here are the various Maps icons throughout Android's history, going all the way back to the blackberry clone days. Take a look at all of them. Now, tell me, what the hell is this?
This is called "icon45x45.png" and, well, it looks like an app icon. As far as I can see, Google has never used this publicly, so why is it in here? Who made it? Was it ever used? The icon perspective would place it around the Android 1.0 design era.
I'm pretty sure these dots are used as spot markers for search results, but that's not the point of pointing them out. It's their names that are noteworthy. Google calls them "Search Measles." These guys are "search_measles_large.png," and there's a few other sizes. I just thought that was funny.
This little bit of Google Maps is called "spicybowl_example_red_ring.png," and I'm pretty sure it isn't used anywhere. Ideas? Anyone?
I have managed to figure out that "Spicybowl" is the internal codename for Google+ Local (formerly Google Places), which makes all these "spicy" files a lot easier to figure out:
Anything that says "migration" or "optin" has to do with the switchover from Google Places to Google+ Local, but I think a lot of this is unused. The one file, "spicy_optin_dogfood_dialog.xml" is particularly interesting ("Dogfood" refers to the internal testing of a product), but considering we all have already opted in to Google+ Local, my guess is that it's just really old.
A few of the spicybowl files are for "filters" and there are even image files that go along with them. There's a filter for "Wishlists," which has the exact same icon as the Play Store, and presumably would be a way to save places you want to go to. There's also "Experts" (people who review a lot of places), and "Circles" filters. The only filters I can think of in Google+ Local are the search filters pictured on the right, but those are text-only, and don't include experts or circles. I guess these files would be for filtering reviews at some point, but then "wishlists" doesn't make any sense. Either way, this stuff is very old, so I wouldn't expect them to be implemented any time soon, if ever.
All the Live Wallpapers come with thumbnail previews, and this is one that ships with Android. It's called "seethru_thumb.png" and it's referenced in a file called "Walkaround.xml." This was a "clear" wallpaper. It would fire up the camera and use the video feed as your background. There's stuff in the strings file, too.
<string name="wallpaper_walkaround">See Through</string>
<string name="wallpaper_walkaround_desc">See through your phone and walk around without risking accidents.</string>
Do a little Googling and you'll actually find source code for it. This would probably drain your battery in a few seconds, and you still wouldn't be able to "walk around without risking accidents," because, really, how much stuff do you do on your home screen?
Arrays.xml is the file that powers many of the list popups in Android, like when you jump into the display settings and pick a screen timeout, each of those choices is in the array file.
Settings has a rather interesting set of options that I'm pretty sure aren't accessible anywhere, check this out:
Anyone want to take a swing as to what this is for? I have no idea.
The other thing in settings I really enjoy is that all the encryption settings strings are labeled as "crypt_keeper."
The packed-in version of Google Search on Jelly Bean is often called "Velvet.apk," so that must have been an early codename.
And speaking of codenames, remember when Google Now was called "Project Majel"? The references are still alive and kicking in the code. A lot of things are still called "Majel." So far we've had references to Star Trek, Star Wars, Tron, and Dr. Who.
Apparently, at some point, Google Now planned on asking you how accurate its traffic predictions were. I found this in the strings file:
<string name="did_not_take_this_commute">Did not take this commute</string>
<string name="traffic_reported_correct">Traffic reported correctly</string>
<string name="traffic_heavier_than_reported">Traffic was heavier then reported</string>
<string name="traffic_lighter_than_reported">Traffic was lighter then reported</string>
So far as I can tell, this never happens.
<string name="punt_message">"That didn't work out. Do you want to ask Google?"</string>
This one's also a little weird. Doesn't every query ask Google by default? This must be a leftover beta string.
Finally, we have this from the Google Wallet team. They must really have a thing for Starbucks, because all the large sized images are referred to as "venti." If you're keeping track, this is the second coffee reference. The Googlers are a caffeinated bunch.
That's all the crazy stuff I could find. I hope you enjoyed it. If anyone has an explanation for some of the more "out there" stuff, I'd love to hear it.