Google let loose with a torrent of updates yesterday, many of which offered little more than bug fixes and fairly small changes. Drive and its lineup of editors made the list with a few improvements, but not much to get excited about. However, a little digging around revealed that a previously seen Easter egg has finally been enabled. Also turning up is one of the most shocking features yet, an actual terminal. The power users are going to love this.


Disclaimer: Teardowns are necessarily speculative and usually based on incomplete evidence. It's possible that the guesses made here are totally and completely wrong. There is always a chance that details may change or plans may be cancelled prior to the launch of a new feature discovered in a teardown. Much like rumors, nothing is certain until it's officially announced.

Driveshell Terminal

Last month, I turned up a single string during a teardown of the Drive app that suggested there might be some kind of "secret nextgen ui" that could be activated with a search for the key phrase #driveshell. Frankly, I expected this to be a hoax. It wouldn't be the first time somebody at Google tried to trip us up. Well, now there's no doubt, it's actually real... Probably. It doesn't seem to be accessible yet.

The basic evidence includes a new activity and about 30 new strings. The activity is called TerminalDisplay, but there's not much to learn from it. The strings are quite a bit more telling. Most of them are comprised of error messages and help text, but they represent the responses users will get from failed commands. These should look very familiar to anybody who has ever used a Unix-style terminal. All of the most common file management commands are represented, including the ability to create and navigate directories, delete files, and display information.

An examination of the code further shows that these aren't just randomly added strings, but there's plenty of real code to back it up. The commands are actually implemented and appear to be fully supported. There's too much here to have any reason to believe it's a prank, so I think it's safe to call this real.

Here are the basic observations:

  • Based on 'Help' text and code, it's safe to assume these commands will be available: cd, cat, clear, cowsay, echo, exit, help, ll, ls, mkdir, mv, open, pwd, rm, and whoami.
  • There are error messages for these commands: rm, mkdir, mv, and open.
  • Naturally, it wouldn't be a Google app if there wasn't a little levity buried somewhere inside. One of the commands is called cowsay, and it has the help text: "Moo." The best part is that executing the command will spit out some text you give in the command line followed by the image you see below, so it will look like a voice bubble above the cow. Again, this is 100% real.

Screen Shot 2015-05-14 at 11.50.51 AM

<activity android:exported="false" android:label="@string/title" android:name="" android:theme="@style/Theme.AppCompat" android:windowSoftInputMode="adjustPan|stateVisible"/>

<string name="drive_shell_version">Drive Shell, version 1.0.</string>
<string name="title">Drive Shell</string>

<string name="error_gokart_cannot_fetch">shell: unable to fetch data from Drive</string>
<string name="error_gokart_rename">shell: unable to rename</string>
<string name="error_gokart_set_parent">shell: unable to set parent</string>
<string name="error_gokart_trash">shell: unable to trash</string>

<string name="error_invalid_path"><g example="rm" id="command">%1$s</g>: cannot stat <g example="foo/bar/baz" id="path">%2$s</g>: No such file or directory</string>
<string name="error_make_dir_invalid_path"><g example="mkdir" id="command">%1$s</g>: cannot make directory <g example="foo/bar/baz" id="path">%2$s</g>: No such directory</string>
<string name="error_missing_operand"><g example="mdkir" id="command">%1$s</g>: missing operand</string>
<string name="error_move_home_root"><g example="mv" id="command">%1$s</g>: cannot move home or root</string>
<string name="error_remove_dir_without_recursive"><g example="rm" id="command">%1$s</g>: cannot remove <g example="foo/bar/baz" id="path">%2$s</g>: Is a directory</string>
<string name="error_remove_home_root"><g example="rm" id="command">%1$s</g>: unable to remove %2$s</string>
<string name="error_remove_invalid_path"><g example="rm" id="command">%1$s</g>: cannot remove directory <g example="foo/bar/baz" id="path">%2$s</g>: No such directory</string>
<string name="error_resource_busy"><g example="mv" id="command">%1$s</g>: cannot move - resource busy</string>
<string name="error_open_resource"><g example="open" id="command">%1$s</g>: cannot open <g example="foo/bar/baz" id="path">%2$s</g></string>

<string name="help_change_dir">Change the shell working directory to DIR. The default is ~</string>
<string name="help_clear">Clear the terminal screen</string>
<string name="help_cowsay">Moo</string>
<string name="help_echo">Write the given arguments to the standard output</string>
<string name="help_exit">Exit the Drive Shell</string>
<string name="help_help">Display information about the built in commands</string>
<string name="help_list">List the contents of a folder in Drive</string>
<string name="help_make_dir">Make the specified directory</string>
<string name="help_move">Rename or move source to destination file or directory</string>
<string name="help_open">Open a resource from your Drive account</string>
<string name="help_print_working_dir">Print the name of the current working directory</string>
<string name="help_remove">Remove the specified file or directory which sends it to trash</string>
<string name="help_whoami">Show details about the current user</string>

Seriously, take a moment to let it all sink in. A mobile app from Google is going to include a functioning command line interface. Did somebody sign off on this when Matias wasn't looking?

It's purely speculative, but I think this might be an intentional step toward a more desktop-like experience on mobile devices. A touch interface is great for a lot of things, but some activities like file management can be more efficient with a keyboard. Google might intend this interface for convertible tablets that can act like laptops, or possibly Chromebooks now that they are increasingly capable of running Android apps. Of course, it's also possible Google will never make this publicly accessible, but that seems pretty hard to believe.

Whatever the reasons Google has for building in a shell, it will probably be very popular among power users. So far, I haven't seen a way to actually get into Driveshell, but I can't be certain that it's not live yet. Keep an eye out and let us know if you find anything.

Color-Shifting Easter Egg

Another previously discovered treat turned up in this release, and this one is definitely live. Back in February, I found an Easter egg in the Drive app and each of the editors. It was clearly activated with a series of taps, and seemed to have something to do with colors. It wasn't active at the time, but the latest release has finally turned it on. Too bad it missed Easter by... a lot.

The Easter egg is called Colors, and it just cycles the background of the action bar through a rainbow of colors. The first few seconds of this are awesome, but it gets annoying pretty quickly. I wish there were a way to slow it down, but no such option exists.

To enable Colors mode, simply go into the Settings screen and tap on the action bar 5 times in a row (anywhere but the back button). This activates the cycle. It will remain running on any screen within the Drive app, so long as there is a visible action bar. To end Colors mode, just go back to the Settings screen and tap once on the action bar. This process can be repeated anytime you want to turn it back on.