Skip to content

Latest commit

 

History

History
48 lines (35 loc) · 2.42 KB

File metadata and controls

48 lines (35 loc) · 2.42 KB

Active Edge Service

This is an open-source implementation of the Pixel Active Edge gesture, written from scratch for portability and customizability.

Active Edge, codename Elmyra, is a gesture powered by side grip sensors on the Pixel 2/XL, 3/XL, 3a/XL, and 4/XL that is used to activate the Google Assistant on stock. The gesture is handled by a proprietary nanoapp running under CHRE (ContextHub Runtime Environment) on the sensor DSP.

This app is a reverse-engineered Android client that runs as a standalone service and talks to the CHRE nanoapp for gesture functionality. No decompiled code has been used.

Features

  • Seamless integration in Settings → System → Gestures → Active Edge with no extra changes
  • Integration with Settings search
  • Many actions to perform on gesture trigger
    • Take screenshot
    • Open assistant
    • Open camera
    • Toggle flashlight
    • Mute calls & notifications (replicates default power + volume-up "prevent ringing" gesture)
    • Toggle power menu
    • Toggle screen
  • 10 sensitivity levels (more granular than stock)
  • Setting to control whether gesture is enabled when the screen is off
  • Contextually-appropriate haptic feedback with modern effects
    • Heavy click for squeeze
    • Click for release
    • Reject for unavailable action (e.g. if flashlight can't turn on because camera is in use)

Integration

Sync this repo to packages/apps/ElmyraService.

Add the following to your device tree only for devices with this feature:

# Active Edge
PRODUCT_PACKAGES += \
    ElmyraService

While this service is designed to be as portable and self-contained as possible, Android does not provide the necessary APIs to implement all gesture actions out-of-the-box. This means that some commits must be added to frameworks/base to expose the APIs for full functionality:

Default settings can be changed by overlaying res/values/config.xml.

License

All code in this repository is licensed under the Apache 2.0 License.