Skip to content

Instantly share code, notes, and snippets.

@behnam
Forked from zhuowei/glasslabs.md
Created July 2, 2013 22:14
Show Gist options
  • Save behnam/5913728 to your computer and use it in GitHub Desktop.
Save behnam/5913728 to your computer and use it in GitHub Desktop.

Glass Lab Experiments

Updated: July 2nd (XE7)

Ron Amadeo of Android Police did a review of these experiments: http://www.androidpolice.com/2013/05/24/google-glasss-hidden-labs-features-ok-glass-everywhere-web-browsing-video-stabilization-and-more-video/

Google Glass has a series of Labs experiments that can be enabled on engineering or userdebug builds. Using APKTool, I've removed that restriction and now they can be enabled with root access.

To start, for example, the SOUND_SEARCH lab, type in a root shell

setprop persist.lab.sound_search true

and restart the Glass home screen.

This is tested with the Xenologer modded APKs for Nexus 7.

If you have an actual Glass (lucky you), you might be able to enable these by using root to edit build.prop so your build shows up as a userdebug instead of a user build, and then using the properties to enable individual labs.

Experiments:

This is the list of experiments extracted from a Google Glass Home XE5 APK.

Format:

NAME("NAME_AGAIN", random number, is enabled by default);

the property name to enable is persist.lab.(the name in all lowercase).

      BLUETOOTH_HEADSET("BLUETOOTH_HEADSET", 13, true),
      BLUETOOTH_PCM("BLUETOOTH_PCM", 14, false),
      CALL_NOISE_CANCEL("CALL_NOISE_CANCEL", 29, false),
      CLASSIC_SALIL("CLASSIC_SALIL", 47, false),
      DEBUG_LAUNCHER("DEBUG_LAUNCHER", 15, false),
      DEV_SERVERS("DEV_SERVERS", 22, false),
      DING_ON_LOAD("DING_ON_LOAD", 34, false),
      GCAM("GCAM", 0, true),
      GPS_DEBUG_CARD("GPS_DEBUG_CARD", 24, false),
      GPS_ENABLE_LOCAL("GPS_ENABLE_LOCAL", 26, false),
      GPS_ENABLE_REMOTE("GPS_ENABLE_REMOTE", 27, true),
      GPS_IN_BACKGROUND("GPS_IN_BACKGROUND", 25, false),
      HO_B("HO_B", 4, false),
      HO_CONNECTIVITY("HO_CONNECTIVITY", 7, false),
      HO_HO_HO("HO_HO_HO", 8, false),
      HO_LOG_VERBOSE("HO_LOG_VERBOSE", 5, false),
      HO_SUPER_DEBUG("HO_SUPER_DEBUG", 6, false),
      HO_USE_SVC("HO_USE_SVC", 3, true),
      KANNADI_DEV_SERVER("KANNADI_DEV_SERVER", 18, false),
      LOG_NEG_HOTWORD_REC("LOG_NEG_HOTWORD_REC", 11, false),
      LOG_POS_HOTWORD_REC("LOG_POS_HOTWORD_REC", 10, true),
      LONG_TAP_TO_SEARCH("LONG_TAP_TO_SEARCH", 35, true),
      LONG_TAP_UI_SEARCH("LONG_TAP_UI_SEARCH", 36, true),
      NATIVE_APP_VOICE("NATIVE_APP_VOICE", 31, false),
      NAV_CONTAMINATE_FIX("NAV_CONTAMINATE_FIX", 45, true),
      NV_TRST("NV_TRST", 28, false),
      OKG_INC_CALL("OKG_INC_CALL", 52, true),
      OMELETTE_DU_FROMAGE("OMELETTE_DU_FROMAGE", 49, false),
      PEOPLE_GRID("PEOPLE_GRID", 44, false),
      PHONE_AEC_LOG("PHONE_AEC_LOG", 43, false),
      PRODUCTION_SERVERS("PRODUCTION_SERVERS", 19, true),
      PUPPIES_IN_PJS("PUPPIES_IN_PJS", 48, false),
      QUICK_QR_CODE("QUICK_QR_CODE", 37, false),
      SAVE_AUDIO("SAVE_AUDIO", 9, false),
      SC_RM("SC_RM", 53, false),
      SEARCH_DEV_SERVER("SEARCH_DEV_SERVER", 16, false),
      SEARCH_FEEDBACK("SEARCH_FEEDBACK", 12, false),
      SEARCH_GWS_FLOW("SEARCH_GWS_FLOW", 40, true),
      SEARCH_TEST_SERVER("SEARCH_TEST_SERVER", 17, false),
      SMS_FROM_VOICE_MENU("SMS_FROM_VOICE_MENU", 32, true),
      SOUND_SEARCH("SOUND_SEARCH", 46, false),
      SPECIAL_GWS_SERVER("SPECIAL_GWS_SERVER", 41, false),
      STAGING_SERVERS("STAGING_SERVERS", 20, false),
      TESTING_SERVERS("TESTING_SERVERS", 21, true),
      THIRD_PARTY_VOICE("THIRD_PARTY_VOICE", 30, false),
      TOUCH_VOICE_MENU("TOUCH_VOICE_MENU", 39, true),
      UPLOAD_SESSION_MNGR("UPLOAD_SESSION_MNGR", 23, true),
      USE_SAX_PARSER("USE_SAX_PARSER", 42, false),
      VIDEO_PLAYER("VIDEO_PLAYER", 50, false),
      VOLUME_SLIDER("VOLUME_SLIDER", 51, false),
      VSTAB("VSTAB", 1, false),
      VSTAB_CALIBRATION("VSTAB_CALIBRATION", 2, false),
      WEB_BROWSING("WEB_BROWSING", 33, true),
      WINK("WINK", 38, false);

New and removed labs in XE7: https://gist.github.com/zhuowei/5913178

Known working labs

DEBUG_LAUNCHER: Adds a new option in Settings -> Device Info -> Start Launcher; brings me to the standard Android home screen. Edit: after looking at the code, I realized it calls the vanilla Android launcher by name, so it won't work with any third-party launchers.

WINK: Adds a "Wink" option to the Settings bundle. I haven't installed the GlassGestures APK which contains Winking-related code, so I can't test. Edit: Ron Amadeo proved this works.

NATIVE_APP_VOICE: allows native apps to add themselves to the OK Glass screen. Crashes if you don't have any installed, but works fine otherwise - Launchy now has support for this.

SOUND_SEARCH: New in XE6: OK Glass -> Google -> (swipe right) I tried holding it to headphones playing "Fireflies" and it recognized it.

Labs that may do something on the Glass but won't work on a Nexus 7

GPS_DEBUG_CARD: Just gives a new blank card in the Settings bundle. From the code, it should be printing to LogCat GPS info, but I haven't checked.

SEARCH_FEEDBACK: No visible effect.

VSTAB and VSTAB_CALIBRATION: Enables video stabilization as seen on http://developer.android.com/reference/android/hardware/Camera.Parameters.html#setVideoStabilization%28boolean%29 . I did not even bother to try this on the Nexus 7, as I hardly believe the front camera can stabilize video.

Labs that graduated

GCAM: Enabled by default in XE6; probably the enhanced camera abilities

NAV_CONTAMINATE_FIX: Enabled by default in XE6; no idea what it does

WEB_BROWSING: XE7 added a browser.

PEOPLE_GRID: XE7 added the new People view, so this seems to have graduated. Its Lab entry is still false, though.

TOUCH_VOICE_MENU: XE7 enabled this (probably to Ron Amadeo's chagrin)

Labs that were killed:

OK_GLASS_EVERYWHERE: you can say "OK Glass" even if you are in a different bundle than the home screen; e.g. in the Settings app. Removed in XE7. (boo!)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment