Close

Not a member yet? Register now and get started.

lock and key

Sign in to your account.

Account Login

Forgot your password?

Playing With the Labs Features on Google Glass

29 May Posted by + in Glass Development | 5 comments
Playing With the Labs Features on Google Glass
 

First of all I would like to thank Github user Zhuowei for his tear down of the APK and figuring out how to enable the labs features on Glass here.  I spent the evening playing around with all of the different features and figuring out what each one does and broke them down here for you.  I will update this post and I figure out each feature and exactly how it is utilized by the system.

To begin, you are going to need to have access to a root shell on your device.  If you have not done this or want to do it, please check out my post, How to Unlock, Root and Reset Glass Using Factory Images.

DISCLAIMER: I have tested this on my Glass device however, I am not responsible if you brick your device so proceed at your own risk.  If you run into trouble, shoot me a message and I will try to help you the best I can.

You are only going to be editing one file on your device and that is the build.prop file located in /system (hence the need for adb root).

  1. Pre-requisites: Must have Android SDK Tools installed and accessible on the system that you are using and your device must be in debug mode.
  2. Open up a terminal or command prompt. Once it is loaded use the following to pull the build.prop file off of the device:

  1. Keep your terminal open! The build.prop file will be located in whatever directory that you were at in the terminal.  First create a backup of the file in case you want to go back to your original settings. Open it up in a text editor and make these changes:

  1.  At the end of the build.prop file you can begin enabling labs features at the end of the build.prop file.  I have put them all here with their default values for easy copy/paste but I do not recommend just blindly enabling all of them at once.  If you want to enable an option just copy that line to the bottom of your build.prop file and change it’s setting from false to true.  Try to experiment a little.  (At the bottom of this post I have included my build.prop file if you want to compare it to your own before saving the changes.)

  1.  Once you have edited your build.prop file to your liking, you can then push it back onto the device.  If you have closed your terminal, you will need to open it back up and run the adb root command again.  Make sure that you have navigated in the terminal to the same folder that you have your edited build.prop file in and run this command to push it back to the device:

  1. Congratulations, you just enabled labs features on your Glass!  Here is a rundown of each setting and what I have discovered it does.  It is listed by:
    COMMAND_NAME (default_value)
  • AUTO_SHARE_TARGETS (false)
    • Untested
  • BLUETOOTH_HEADSET (true)
    • Whether or not the Glass can be used as a bluetooth headset with your phone.
  • CALL_NOISE_CANCEL (false)
    • Experimental noise cancellation features when recoding and during calls.  This was a bit buggy and caused the mic to cut out occasionally.
  • CLIPLET (false)
    • Untested
  • COMPANION_API (false)
    • Untested
  • DEBUG_LAUNCHER (false)
    • This will add a Launcher shortcut in the Settings menu.  Note: This will not work if you do not have the Launcher2.apk installed on your device.
  • DEV_SERVERS (true)
    • Tells the device to use development servers.
  • DING_ON_LOAD (false)
    • Untested
  • DISABLE_GAZE_ON_MIC (true)
    • Enabled by default.  Do not know what this actually does though.
  • GCAM (false)
    • Untested
  • GPS_DEBUG_CARD (false)
    • Adds a GPS information card to the Glass settings.
  • GPS_IN_BACKGROUND (false)
    • Allows device applications to run GPS in the background.
  • HO_BG_WAITING (false)
    • Untested
  • HO_USE_SVC (true)
    • Untested
  • KANNADI_DEV_SERVER (false)
    • Enables another development server.  Unkown as to what server it actually uses.
  • LOG_NEG_SENSORY_REC (false)
    • Adds a log entry if a sensor reading is unavailable.
  • LOG_POS_SENSORY_REC (true)
    • Adds a log entry when a sensor reading is taken
  • LONG_TAP_TO_SEARCH (true)
    • Enables the tap and hold to start a Google search from the screen off.
  • LONG_TAP_UI_SEARCH (true)
    • Enables the tap and hold to start a Google search from any active screen on the device.
  • NATIVE_APP_VOICE (false)
    • This feature allows native apps to take advantage of the OK, Glass screen and be launched from them.
  • NAV_CONTAMINATE_FIX (false)
    • Untested
  • NAV_NO_COMPANION (true)
    • Untested
  • NAV_USE_LOCAL_GPS (false)
    • Allows you to use the GPS from the Glass unit instead of the tethered GPS from your phone for navigation.
  • OK_GLASS_EVERYWHERE (false)
    • Allows you to say “OK, Glass…” from any screen on the device.  It will not work if the screen if off. (Lets just call this the Glass Bombing Enabler)
  • PHONE_AEC_LOG (false)
    • Untested
  • PRODUCTION_SERVERS (true)
    • Tell the device to use the production servers.
  • QUICK_QR_CODE (false)
    • When this is enabled, if you take a picture it is automatically scanned for QR codes.  This works, but since there is no QR software in the device yet it will give you a “Stopped Working” error whenever a QR code is detected.  Your picture still remains though.  If there is no QR code detected, then the camera functions as normal.  I am leaving this disabled until I can play with it some more.
  • SAVE_AUDIO (false)
    • This will save an audio recording of every search and command that you give to Glass.
  • SEARCH_DEV_SERVER (false)
    • Tells the device to use the Google development servers for search.  This is not a public feature that should be enabled.
  • SEARCH_FEEDBACK (false)
    • Untested
  • SEARCH_GWS_FLOW (false)
    • Untested
  • SEARCH_TEST_SERVER (false)
    • Tells the device to use the Google development servers for search.  This is not a public feature that should be enabled.
  • SHORT_TIMELINE_POLL (false)
    • Untested
  • SMS_FROM_VOICE_MENU (true)
    • This lets you send an SMS from the voice menu.
  • STAGING_SERVERS (false)
    • This tells the device to use the staging servers.
  • TESTING_SERVERS (true)
    • This tells the device to use the testing servers.
  • THIRD_PARTY_VOICE (false)
    • Untested
  • TOUCH_VOICE_MENU (false)
    • Untested
  • UPLOAD_SESSION_MNGR (false)
    • Untested
  • VSTAB (false)
    • Enables the video stabilization features in Glass.  I took a video with this feature enabled then recorded an identical video without the feature enabled and it does work to some degree, unfortunately even with the calibration enabled, there is no menu option or way to calibrate it.  Another note if you enable this, the video will appear choppy in the screen as you are recording it, but it will come out crisp and clean.
  • VSTAB_CALIBRATION (false)
    • This is supposed to enable the video stabilization calibration but as of now I do not see any additional menu options or anything.
  • WEB_BROWSING (false)
    • Enables opening up a web browser from timeline card search results.  This will only work if you have a web browser installed on your device.  Otherwise you will get a crash when you try to use this feature.
  • WINK (false)
    • Enables the “Wink to Take a Picture” feature in the settings.

My build.prop:

If you figure out what any of these Untested features are used for let me know in a comment so I can update the post.  I will be testing more of these features as soon as I have the free time.

Source: Glass Labs Experiments 

Jeff Thomas

Jeff Thomas

I have been a computer programmer for the last 15 years. As a Glass Explorer, I am looking forward to working with other developers on new applications and help encourage and educate new developers.

Jeff Thomas

Jeff Thomas

Latest posts by Jeff Thomas (see all)

  1. Zhuowei06-02-13

    Actually, you can set the properties dynamically by only changing the debug.prop build type then enabling labs by typing

    setprop persist.lab.companion_api true

    into a root shell. That way, you can change labs on the fly without rebooting.

    Companion API and Native Voice do work: https://github.com/zhuowei/NotifyTooth https://github.com/kaze0/launchy/commit/d39c70b2268dd8ec581180b42200c6b817ebb095

    Android Police’s Ron Amadeo also did a review of the Labs feature.

    • Jeff Thomas06-05-13

      Thank you for commenting Zhuowei. The only problem with using the setprop method is that it does not permanently enable the features on Glass, while editing the build.prop allows the changes to be saved even during a device reboot.

      I am glad to see that you have gotten the companion API feature working as well as the Native Voice. I was under the impression that the Native Voice enabled voice input in native apps, but it looks as though I was wrong. Still happy to see the feature working. All very exciting!

      • Zhuowei06-05-13

        Setprop saves any property beginning with persist. into /data/properties and reads them after a reboot; I don’t have a Glass, so I don’t know if the Glass team’s changed that core Android feature. I did notice that there were persist. properties being set from build.prop, so you might be right.

        Companion API’s since been removed to my disappointment.

  2. Russ Nelson06-16-13

    I speculate that gaze_on_mic uses the IR emitter and detector to look for a maxima in the response to IR illumination of the pupil, indicating that you are looking up and to the right.

    • Jeff Thomas06-20-13

      Hmm, interesting. I will have to play with that this weekend and see if I can get logcat to spit something out for it. Although this labs feature was removed in XE6.

Leave a Reply