Software developers have a piece of jargon for a disruptive, non-backwards-compatible change.  We call it a “flag day,” riffing off the meaning of a day set aside to celebrate a unique event.  When the second Jelly Bean release (API level 17, Android 4.2) shipped in November 2012, Google introduced a developer flag day.  Or you might like to think of it as another piece of jargon – an Easter Egg (you can look that one up in the Jargon file).

This blog post tells you how to enable Developer Options on the Samsung Galaxy S4 device.  The technique also applies to  other Android devices that ship with or can be updated to the Jelly Bean 4.2.x firmware, like the Google Nexus S phone.   Jelly Bean 4.2 introduced a whole raft of new features, like wireless display mirroring, and giving multiple users their own home screen and apps.  You can see a complete list at http://www.android.com/whatsnew/ (for a limited time).  But the very first change that many developers will hit on the S4 and other devices, is the way you enable “Developer Options”.

All post-2.0 Android releases have a section in the Settings App titled “Developer Options”.   As the name suggests, this section allows you to configure all kinds of choices useful to developers.  The most important one is “Go into debug mode when a USB connection is made” but there are other options that will make aspects of the hardware reveal more about themselves.  I occasionally like to enable “Show surface updates” to make the device flash in a way that live wallpaper just cannot do.    ”Show layout bounds” is another good one to set on your brother’s phone when he leaves it out in plain sight.  I can’t do justice to these with a static screen snapshot, but they usually cause the brother to want to put you in a headlock.

The point is that users who are not developers can get into trouble if some of these developer options get switched on.  They won’t usually know how or where to switch them off again.  So Google decided to make it a bit harder for non-developers to stumble into this part of the Settings app.   They did this in an unusual way – with a secret handshake.  Read on for the details.

Untitled-2

The secret handshake to enable Developer Options

 

THE SECRET HANDSHAKE

On Android devices starting at API level 17, Android 4.2, the “Developer Options” section is not shown as one of the sections in the Settings app. To make it appear, you have to launch the Settings app, and tap on “About phone”.  Inside the “About phone” section is a list item labeled “Build Number”.   Tap on that selection 7 distinct times.   After 3 taps, each tap shows a new toast message encouraging you to keep going (see attached screenshot).  After the last tap, it shows a message saying “you are now a developer”  and hey presto, the “Developer Options” will now be visible as one of the sections at the top level of Settings.

Untitled-4

Once you can see the “Developer Options,” you can set flags like “Stay awake while charging” and “USB debugging”.  That last one enables you to use ADB to access the device.  That in turn allows software development, debugging, and side-loading of apps.  And that’s the secret handshake for enabling “Developer Options” on phones with API level 17, Jelly Bean 4.2.x, or later firmware.

There’s a PS to this blog post.  If you tap the “Android version” item repeatedly and quickly, you get this Easter egg on the screen.

Untitled-3

What’s it for? Nothing, really. Make up your own rationale. I like to think it’s to remind us to enjoy life, smile, and consume a few jelly beans from time to time. Please post a URL below if you can find this easter egg code in the Android Open Source Project.  Cheers!

Peter van der Linden, Chief Android Technology Evangelist