02
May
ic_head_wake_up_large_lower

Despite not (yet) having Google Glass, I've managed to get a hold of a system dump, so it's time to have some fun for the day and see if Glass has any (more) hidden goodies for us. It'll also be fun to see just what makes Glass tick, and how the OS is laid out.

APK Teardown is usually at its best when I have a previous version to diff against and, you know, when I've actually used or at least seen the software in question. I don't have any of those benefits for this teardown, so things could get interesting.

Glass Vs. Android

According to build.prop, this version of the Glass software is "XE4," so that's what I'm going to call it. "XE" no doubt stands for "eXplorer Edition." I wonder what XE 1 through 3 looked like? The device name is a very simple "Glass 1." Compared to the ridiculous code names we're used to with phones, this is a nice change of pace.

wm_2013-04-29_19-29-56

Here's the /system/app folder, and boy is this familiar. The Glass "OS," if you can call it that, is pretty much Android 4.0.4 (give or take a few 100,000 build counts) with a few special APKs that make up the Glass interface. It reminds me a lot of Facebook Home or Windows 3.1. There's this underlying OS (Android) that powers everything and, most of the time, you aren't supposed to see it. All of the typical user-facing Android apps (Calculator, Contacts, Clock, Gmail, etc.) have been ripped out, but the core is just plain Android.

Anything labeled "Android stuff" just seems to be the same 4.0.4 that we're familiar with, with all the non-English stuff stripped out, and maybe one or two extra permissions. The two exceptions to this are "GoogleTTS.apk," which is the Android 4.2 version of Google's Text To Speech engine, and "GoogleLoginService.apk," which, despite being labeled as "4.0.4," has some artwork I've never seen before:

android_make_it_googlesetups_bg_accountandroid_gplus

The top left one is called "android_make_it_google.png," the top right is "setups_bg_account.png," (a honeycomb setup screen?) and the bottom one is "android_gplus.png." Has anyone ever spotted these before?

It's interesting that Glass is running on a version of Android that's over a year old. I wonder if they plan on eventually upgrading or if they're going the GTV route, and seemingly not caring about the base Android version. (GTV still runs Android 3.0!)

wm_2013-04-29 21.13.31wm_2013-04-29 21.14.13wm_2013-04-29 22.15.53

The framework has been tweaked to make Glass look like Glass and not like Android, which means Glass APKs aren't going to easily run on your phone. I was really excited for a bit, though.

Glass Could Use a Cleanup

It's hard to be critical of a 0.0000001 version of a piece of software, but I will try my best anyway: Glass code currently seems like a bit of a disorganized mess. Normally I wouldn't dare question my Googley cyborg overlords when it comes to programming, but there are just a few things in here that bother me.

2013-05-01_13-54-39

This set of images (and all the supporting XML for them), is included in nearly every Glass app. That means there are twelve copies of this stuff floating around. Anything labeled "bar candy" is the Glass scrollbar, and probably belongs in a system-level location that everything has access to, like the framework. The same goes for things that would have a universal use, like the share button, "X" button, and the check marks. And this is just an example - there's duplicate stuff all over the place.

I get the feeling they made one Glass app, and just duplicated the base stuff for that app over and over again for everything else. There's no other explanation for why the Bluetooth app contains things like camera libraries. I guess wasting space doesn't matter when you have 16GB of storage and almost no apps, but it just seems unnecessary.

The "Glass Home" app is another thing that bothers me. This one app is responsible for the "Ok Glass" home screen, sure, but it's also handles the camera, settings, timeline, voice actions, email, and messaging. Shouldn't all this stuff be separate apps? The only Glass apps important enough to actually have separate APKs are Maps, Phone, and Handouts.

This reminds me of Android in the pre-Froyo days when every app (Maps, Gmail, etc.) was bundled with the system, and the only way to update anything was to push out a full system update. Google spent a lot of the Froyo/Gingerbread era working on "decoupling" apps from the Android system and offloading them to the Android Market so that they could be easily updated, and to this day Google still occasionally runs into problems from this early decision. Hopefully Glass doesn't have similar issues.

Maybe Glass is fine with one monolithic APK because everything is so simple, or because they are just getting started, or because there is no app store to speak of right now, but it just doesn't seem like the right way to do things.

Wink To Take A Picture

If you've been following Glass news, you might have already heard of this. Currently, Glass allows you to take a picture by pressing the physical camera button, or with a verbal command, but Reddit user fodawim discovered that Glass had a few references to taking a picture by just winking.

While "wink to take a picture" is not the world-exclusive information APK Teardown is used to dealing with; I'll cover it anyway while I'm here, because there's some stuff that hasn't seen the light of day yet.

ic_wink_for_photo_off_bigic_wink_for_photo_on_big

Like this! These two are called "ic_wink_for_photo_off_big" and "ic_wink_for_photo_on_big." They're located in "GlassHome.apk" which, remember, is also the camera app. While I don't agree with the privacy nut's take on Google Glass; Google might want to show a little a more concern for how their product is presented. A camera silhouette with the Eye of Sauron in the middle in not the most comforting thing in the world.

wink_alpha_00000

If you somehow don't understand the concept of winking, Google has helpfully included not one, but two instructional animations. The first is a "first-person wink," which I assembled into a gif based on 14 incremental images and some animation XML. Example number 2 is a .MOV file of a winking Glass user.

Two videos about how to wink. I believe that such a clear lack of familiarly with a common human gesture proves that Glass is, in fact, alien technology.

Both of these animations are from "GlassGesture.apk" which seems to exclusively deal with the currently-unused wink gesture. GlassGesture is also packing some explanation text:

<string-array name="wink_calibration_first_wink_hints">
    <item>Look straight ahead - not at Glass - and wink.</item>
    <item>Use only your right eye.</item>
    <item>Can you see all four corners of the screen?</item>
    <item>Make sure your hair is not in the way.</item>
</string-array>

<string name="wink_calibration_success_hint">Now you can wink anytime to take a photo</string>
   <string name="wink_calibration_success">Calibrated</string>
   <string name="wink_calibration_failure">Failed to calibrate</string>
   <string name="wink_calibration_save_failure">Failed to save calibration data</string>
   <string name="wink_calibration_timeout_failure">Calibration timeout</string>
   <string name="wink_calibration_need_help">Need help?</string>

The real question with all of this is, is winking an upcoming feature, or a canceled feature? Google has always been careful to design social cues into Glass. Looking up to see the screen, or using a verbal command, or raising your arm to use the touchpad or camera button are all obvious indicators to the people around you that you are using Glass. This non-subtle design was on purpose. I could see Google deeming winking a little too unnoticeable by those around you and axing the feature.

GlassPhotosphere.apk

Glass can view (but not create) Photospheres, which is handled by this APK. There are a few crazy things in here that jumped out at me.

Lightcycle Is Back!

The package name for GlassPhotosphere.apk is actually "com.google.android.apps.lightcycle.glass!" If you were paying attention during APK Teardown's Mysterious Leftovers Special then you know all about Lightcycle. For the rest of you, Lightcycle is the code name for Photosphere. While Photosphere was in development, it had an entirely different UI that had this crazy neon Tron theme - all of that stuff made it to Glass as extra crap. It's not the first time the Glass Team has include some "bonus" material. I hope you've got a pair of sunglasses handy:

arrow_leftarrow_rightbarbluelitbargrayunlit

glow8blueglow8green80_loadingglow8orange2glow8red80warningglow8upload80

Glass is also packing the full suite of beta Lightcycle text and the "How to take Photospheres with your Galaxy Nexus" comic series:

nexusae0_Untitled-0help_1help_2help_3help_4help_5help_6help_7help_8nexusae0_Untitled-2

I am showing you all this to make a point: The Glass photosphere APK contains a lot of stuff that it probably shouldn't contain. Most of the stuff in here is from the Android Gallery/Camera app. That means anything else in this section, while it is in the APK, should not be taken as concrete confirmation of something coming to Glass.

pano_reticule_activatedic_pano_rotate_error_ccwic_pano_rotate_error_cw

pano_alignhint_downpano_alignhint_uppano_target_activatedpano_target_default

Like, for instance, this. There's lots of pictures and text in here about Photosphere creation, but there's also phone rotation icons, and the Android photosphere UI. It's a mess.

Since it is a mishmash of the beta-photosphere, released photosphere, and the Glass app, figuring out what is new is a bit of a challenge. What we can do is diff it against the Android 4.2 Gallery, which teased out the following (again, highly suspect) details:

HDR

We'll start with the most plausible. High Dynamic Range pictures!

<string name="experimental_settings">Experimental settings</string>
<string name="enable_hdr_mode">Enable HDR Mode</string>
<string name="enable_hdr_mode_description">If supported by the device, uses HDR mode to take pictures. You need to stay over the target for a while until the HDR picture is fully taken. Will crash on non-HDR capable devices.</string>

I could easily see this coming to Glass - HDR pictures would be nice. I'm not sure how you would deal with the camera settings, though. When you say "Ok Glass, take a picture." does that take an HDR picture or a regular one? Would they add "Take an HDR picture" as a voice command?

Photosphere Calibration

<string name="photo_sphere_calibration">Photo Sphere Calibration</string>
<string name="tap_to_take_photo">Tap to calibrate</string>
<string name="marker_distance">Marker distance (in cm)</string>
<string name="marker_distance_description">The distance in centimeters between the solid lines on the target pattern.</string>
<string name="target_distance">Target distance (in cm)</string>
<string name="target_distance_description">The distance in centimeters from the device to the target pattern.</string>
<string name="settings_button_text">Setup</string>
<string name="displayed_fov_label">Displayed FOV :</string>
<string name="reported_fov_label">Reported FOV :</string>

Photosphere Calibration? This sounds far too technical to ever see the light of day outside of Google, so I'm going to flag this as "testing software." It's really weird that this deals with things like Field of View, which I guess would relate to the default zoom level of a Photosphere. Strange. Anyone have any theories? (Theories that don't involve the phrase "Augmented reality"?)

Photosphere Live Wallpaper

<string name="panorama_wallpaper_title">Photo Sphere Live Wallpaper</string>
<string name="panorama_wallpaper_description">This live wallapper displays photo spheres.</string>

Lol, What?

Glass doesn't even have regular wallpaper, let alone live wallpaper. Glass is transparent - it could never use a live wallpaper.

Actually, this brings up and interesting point: the Glass Photosphere app is based on the Android Photosphere app (aka the Camera/Gallery) but we really don't know what version of the Android Gallery/Camera app they based it on - the version in the manifest only says "glass-1." This couldn't be based on Android 4.0.4 like everything else, because Photosphere was only introduced in 4.2. My completely crazy theory is that they based GlassPhotosphere on the latest internal version of the Android Gallery/Photosphere app that they could find, which is a little newer than the public Android 4.2 version.

This would explain where the never-before-seen and completely Glass-irrelevant Photosphere live wallpaper feature came from, and it would explain the new HDR text. So I'm going to tentatively flag this one as a possible Android 4.3 feature. How's that for a stretch?

If you want to see what this would look like, there's already a 3rd party app that does it.

Also, Google: "This live wallapper?" Really? Get a spell checker.

Photosphere Creation?

I guess the big question would be, is "Photosphere creation coming to Google Glass?" Well, probably, but there's no proof of that in this APK, just a bunch of legacy Android stuff. I'd like to see some Glass-specific photosphere creation stuff, and there isn't any.

For what it's worth, the application name (which I guess you would never see in Glass) is "Glass Photo Sphere Viewer."

The Glass Team <3s Typography

guest_flight

Glass has this really awesome minimalist aesthetic going for it. It so minimalist that usually the only thing they have to communicate with the user is the typography, and it is beautiful. The Glass team is apparently quite passionate about it, as they've chosen to name Glass's primary TextView "com.google.glass.widget.TypophileTextView ." I just thought I'd point that out.

Glass also shipped a new weight of Roboto: Roboto-Black. Any typophiles out there will probably be interested in this download link. Roboto-Black will look great in your collection next to Google Keep's Roboto Slab and the original Roboto pack.

That's it for Glass XE4. Now that we've got a good base layer down, the next Glass update should be a lot easier. They're supposedly doing monthly updates, which I intend to keep an eye on. Here's hoping for some cleanup work between now and then.

Also, Google, If you could hurry up with that Glass shipment, that would be swell. I'll see you next update!

Ron Amadeo
Ron loves everything related to technology, design, and Google. He always wants to talk about "the big picture" and what's next for Android, and he's not afraid to get knee-deep in an APK for some details. Expect a good eye for detail, lots of research, and some lamenting about how something isn't designed well enough.
  • XBIRDIE98

    The pictures that you found in the Google Setup app are the Honeycomb/ICS-era tablet setup background pictures. I remember them from the various times I had to completely wipe a device with Honeycomb, and had to re-login to my Google Account. I didn't realize that they called it "Make it Google" then, that particular phrase was either smaller or absent compared to the current Jelly Bean version, I forget which.

    • http://www.androidpolice.com/author/ron-amadeo/ Ron Amadeo

      Well they're definitely not from ICS, that was the first thing I checked. I don't really have a honeycomb system dump to check against that, and the download links I saw out there were broken. =/

      • XBIRDIE98

        Odd, I honestly thought I saw them in the ICS-era setup on the TF101, but maybe that was only on HC.
        I probably saw something similar, as I remember the setup app evolving since the days of Gingerbread, through Honeycomb, to ICS to JB - it's certainly had some major visual refreshes.
        Thanks for the info. Also, if you want to poke around a HC ROM (stock-based) this is a link: http://d-h.st/5nq22pbbeo5o/Revolver_2.1_TF_gnufabio.zip

        • http://www.androidpolice.com/author/ron-amadeo/ Ron Amadeo

          Oh cool, thanks. That's got the blue screen in it, but not the other two.

          • XBIRDIE98

            I think I remember the "make_it_google" image overlaid on top of the screen that asks you if you are making a new Google account or using an existing one. It certainly behaves similarly in new versions, just with a different image. (Which is actually rather similar now that I look at it.) I'll post again on this thread if I can get HC running and figure it out.

          • XBIRDIE98

            Found it, in all places, on the Galaxy Nexus in ICS, with the ICS image from Google's "Factory Images for Nexus Devices" page.

          • http://www.androidpolice.com/author/ron-amadeo/ Ron Amadeo

            oh wow, cool, thanks. Strange that it's not in the 4.0.4 build I looked in.

  • Yannick Binnenweg

    "If supported by the device, uses HDR mode to take pictures." Does that string match the one in the 'normal' Android camera/gallery apk's? Or would it suggest we'll get different kinds of Google Glasses? (with different specs etc.)

    • http://www.androidpolice.com/author/ron-amadeo/ Ron Amadeo

      That string is not in the normal Gallery.

  • http://www.droidextra.org/ Ujjwal Kumar

    I'm a fan of your APK teardowns. Keep up the great work people.

  • Stefan A

    "I'll also be fun to see just what makes Glass tick, and how the OS is laid out." I don't know if I'm right or wrong, but don't you mean "It'll also be fun to see...."? :)

    • http://www.androidpolice.com/author/ron-amadeo/ Ron Amadeo

      Yes. darn.

  • http://twitter.com/trickedoutdavid David Margolin

    can we get a link to the system dump? i wanna take a look for myself :)

    • http://www.androidpolice.com/author/ron-amadeo/ Ron Amadeo

      The guy I got this from says I'm not allowed to give it out. Sorry.

      If I ever get my Glass I'll post the dump from that.

  • Xyber

    First!

    Great job Ron, now Glass feels much more like the familiar "Android" territory we are used to, rather than a just Google "Spin-Off". +1 for Android, yay!

  • http://twitter.com/xplodwild Guillaume

    I've had Roboto Black variant for a long time in my Photoshop. I think it was already packed for a few months in the TTF file provided at the Android Design portal.

  • Steve

    "The only Glass apps important enough to actually have separate APKs are Maps, Phone, and Handouts."

    Hmm, I wonder what Google Handouts would do, will Google start giving out random prizes to Glass users? Or is it just a typo, who knows? :P

    • http://k3rnel.net Juan Rodriguez

      Google Handouts their "Photosphere wallappers".

  • arafsheikh

    Google is genius in confusing people.

  • Seq_see_tym

    Would be sweet if you found a paper bag icon in there...
    You know for all the POV getting laid movies.. when umm... her head ain't the best.
    "Glass, begin record... and activate the baggie"

  • http://www.facebook.com/abhikurve Abhi Kurve

    " Actually, this brings up and interesting point: the Glass Photosphere app is based on the Android Photosphere app (aka the Camera/Gallery) but we really don't know what version of the Android Gallery/Camera app they based it on - the version in the manifest only says "glass-1." This couldn't be based on Android 4.0.4 like everything else, because Photosphere was only introduced in 4.2. My completely crazy theory is that they based GlassPhotosphere on the latest internal version of the Android Gallery/Photosphere app that they could find, which is a little newer than the public Android 4.2 version.. "

    Man you're so brilliant,take a bow! :)

  • Matthew Fry

    LOL Ron. "Two videos about how to wink. I believe that such a clear lack of familiarly with a common human gesture proves that Glass is, in fact, alien technology."

  • tym0

    I remember seeing the make_it_google image recently but can remember where, maybe in a Google explanatory video or something.

    For Roboto-Black you can find it in the normal roboto package on google font: http://www.google.com/fonts/specimen/Roboto

Quantcast