Chromecast is one of the slicker devices to come out of Google HQ in a while. After you're all set up, just tap a button on YouTube or Netflix, and BAM, whatever you were watching is now on your television. It's really awesome.

For the researchy-types like me, the Chromecast comes with two piece of software to dig through. The first is the physical device software, which, while it is sort-of Android based, it's only Android-based at the low level. While that has some interesting things going on like dev and beta channels, there aren't any APKs to decompile, so it's really not my department.

There's also the Android companion app, which is much more my style. It contains a few eyebrow-raising entries, which hopefully give us a look at the future of Chromecast.

More Backgrounds

When the Chromecast isn't displaying any content, it drops into this "ready to cast" mode. Rather than display a boring "ready" message, the developers decided to make it look pretty by having it cycle through background pictures.

Internally this mode is referred to as "IMAX." I guess the Googlers have really big televisions.

It looks like the Chromecast devs have (or had) much bigger plans for Imax; there are several options for configuring the background.

   <string-array name="pref_content_source_descriptions">
       <item>Featured photos</item>
       <item>Photos from Google+ of particular themes</item>
       <item>Top news</item>
       <item>Google offers</item>
       <item>Recent photos</item>
   </string-array>
   <string-array name="pref_picture_theme_descriptions">
       <item>General photography</item>
       <item>Nature</item>
       <item>Seasons</item>
       <item>Water</item>
       <item>Animals</item>
       <item>Travel</item>
       <item>Food and Wine</item>
       <item>Space</item>
       <item>Sports</item>
       <item>Arts</item>
       <item>Vehicles</item>
   </string-array>

According to these (non-functional) settings values, you'd be able to pick "themes" of pictures pulled from Google+ for the Chromecast to cycle through. Presumably the Chromecast would continually update these, so you'd never get sick of the pictures on your TV.

New background images are nice, but the most interesting options are for "News," "Offers," and "Recent Photos." Having the Chromecast pump news or your personal images to the TV sounds really neat.

<string name="playpause_button_content_description">Set IMAX to auto-play or manual-control status</string>
<string name="previous_button_content_description">Show previous IMAX event on Chromecast</string>
<string name="next_button_content_description">Show next IMAX event on Chromecast</string>
<string name="imax_preference">Set preferences</string>
<string name="progress_message_start_imax">Connecting to %1$s to start IMAX session...</string>

Things start to get weird when you look at the Imax-related strings. The language here really clings onto the Imax metaphor, but it sounds like you would be able to control the background changes by manually hitting "next."

An Old Universal Remote Idea

One of the neatest tricks the Chromecast has (provided your TV is new enough) is the ability to turn on your TV and switch to the correct input when you press the cast button. This is all because of an HDMI feature called "Consumer Electronics Control (CEC)." Basically, the Chromecast can send remote control signals to your TV through the HDMI plug.

CEC can do much, much more than just hit power and cycle through inputs. If you check out the Wikipedia entry for CEC, you'll see it can basically do anything a remote can: play, pause, and rewind things, control volume, switch inputs, navigate menus, record things, and even do fancy things like displaying text. So theoretically, the Chromecast could control all your stuff.

<string name="dismiss_button_content_description">Dismiss the universal remote control</string>
<string name="unlock_button_content_description">Dismiss the universal remote control activity</string>

<string name="dismiss_dialog_title">Cast remote</string>
<string name="dismiss_dialog_question">Hide this remote until the next time you cast?</string>
<string name="dismiss_dialog_never_show">Never show this remote</string>

<string name="preference_remote_control_summary">Show the remote control on the lock screen</string>

It looks like the Googlers are well aware of the abilities of CEC, because at some point they've kicked around the idea of building a "universal" remote into the Chromecast app. Currently, while Chromecasting, you are able to play, pause, and seek with your phone, but it's important to realize that the individual apps handle that duty. The Chromecast app never directly controls your TV. This text suggests it would be able to automatically bring up a remote when casting starts.

While the APK certainly doesn't contain enough buttons for a full universal remote, there are a few. As always, we have to ask the million dollar teardown question: "is this an abandoned feature, or an in-development feature?" Well, one look at the hideous art for these buttons should give you your answer. This all looks pretty old; like something a programmer whipped-together in his spare time. It never made it to the "professional design" stage.

I show you this just in the hopes that Google decides to bring this feature back. I mean, clearly the Chromecast can control your TV - it does it every time you cast something, so why not expose that to the user? A long-range Wi-Fi remote would be awesome! And, assuming the Chromecast supports most of the features of CEC, they could make it do so, so much more. It would be great to control the actual volume instead of the laggy Chromecast volume.

Simplicity is one of the Chromecast's best attributes, so if they do add any extra features like this, they'd have to be careful to not overcomplicate things. I guess we'll just have to wait and see how Google handles updates for its newest piece of hardware.