package icon

WaveUp

Turn on the display by waving
New in version 3.2.27
New in 3.2.27

★ Improved text rendering in info screens.
★ Updated translations (Chinese, Romanian, Russian).
★ Maintenance: dependency upgrades.
WaveUp wakes up your phone—switches the screen on—when you wave over the proximity sensor.

I built this app because I got tired of pressing the power button just to check the time (a surprisingly frequent habit). Inspired by the great Gravity Screen On/Off. I looked for an open-source alternative and just couldn’t find one. So I made it myself!
Checkout the code: https://gitlab.com/juanitobananas/wave-up
A possibly more more up-to-date README: https://gitlab.com/juanitobananas/wave-up/#waveup

Features

Wave mode: Turns the screen on when you wave over the proximity sensor.
Pocket mode: Turns the screen on when you pull your phone out of a pocket or bag.

Both are enabled by default but can be turned off in settings.

Screen lock: cover the sensor for a second (or your chosen time) and the phone locks. Off by default, but easy to enable.

Wait, what's a proximity sensor?
It’s that invisible little thing near your phone’s earpiece that turns off the screen when you’re on a call.

Known Issues
Some phones keep the CPU running while listening to the proximity sensor and this drains battery (blame your phone, not me). Most phones don’t, so battery use is minimal.

Accessibility Services

▸ Purpose: Starting with Android 9, WaveUp utilizes the Accessibility Services API to allow users to switch off the screen.
▸ Privacy and Security: WaveUp uses the Accessibility Services API exclusively for this purpose and only if the 'lock' option is enabled. No personal data is collected, stored, or shared through this service.
▸ Permission Scope: The Accessibility Services permission is strictly used for enabling the screen lock feature. It does not monitor or interact with any other aspect of device usage.

Permissions (yep, quite a few)

WAKE_LOCK – turn on the screen
RECEIVE_BOOT_COMPLETED – auto-start on boot
READ_PHONE_STATE – pause during calls
BLUETOOTH / CONNECT – avoid pausing when on a Bluetooth call
IGNORE_BATTERY_OPTIMIZATIONS etc. – stay alive in the background
FORCE_LOCK – lock device (Android 8 and below)
ACCESSIBILITY_SERVICE – lock device (Android 9+)
DELETE_PACKAGES – let the app uninstall itself if needed

Uninstalling (Android 8 and older)
WaveUp uses Device Admin permissions, so it won’t uninstall the usual way. Use the 'Uninstall WaveUp' button in the app to remove it properly.

Fun fact

This is my first Android app and my first open-source contribution! I'd love your feedback or help—especially if you're into translations or just enjoy tinkering.
Open source rocks!

Translations

Help translate WaveUp! Even the English version could use improvements.
https://www.transifex.com/juanitobananas/waveup/
https://www.transifex.com/juanitobananas/libcommon/

Acknowledgments
Thanks to all who contributed: https://gitlab.com/juanitobananas/wave-up/#acknowledgments

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 3.2.27 (132) suggested Added on Jun 21, 2026

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 6.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • android.permission.PACKAGE_USAGE_STATS
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • request delete packages
      Allows an application to request deletion of packages.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • android.permission.USES_POLICY_FORCE_LOCK
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • com.jarsilio.android.waveup.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 4.6 MiB PGP Signature | Build Log

  • New in version 3.2.26
    New in 3.2.26
    ★ Fix: permission dialogs shown one at a time, refreshed Material 3 styling.
    ★ Fix: Privacy Policy and Legal Notice readable in dark mode.
    ★ New (Google Play only): lock only on the home screen, protecting other apps.
    ★ Removed first-launch intro slides.
    ★ Maintenance: performance and dependency improvements.

    New in 3.2.25
    ★ Fix: pocket mode not always waking screen after sitting in pocket.
    ★ New: first-launch permission intro slides.

    ...
  • Version 3.2.26 (131) - Added on Jun 18, 2026

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 6.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • android.permission.PACKAGE_USAGE_STATS
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • request delete packages
      Allows an application to request deletion of packages.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • android.permission.USES_POLICY_FORCE_LOCK
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • com.jarsilio.android.waveup.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 4.6 MiB PGP Signature | Build Log

  • New in version 3.2.25
    New in 3.2.25
    ★ Fix: pocket mode not always waking screen after sitting in pocket.
    ★ New: first-launch permission intro slides.
    ★ Maintenance: code improvements.

    New in 3.2.24
    ★ Fix: library licenses shown correctly in release builds.
    ★ Maintenance: dependency upgrades, translation improvements.

    ...

    New in 3.2.17
    ★ Remove 'Excluded apps' option (Google Play only). F-Droid ones remain fully functional. Google doesn't allow WaveUp to read installed apps, which is necessary for this.

    ...
  • Version 3.2.25 (130) - Added on Jun 13, 2026

    arm64-v8a armeabi-v7a x86 x86_64

    This version requires Android 6.0 or newer.

    It is built and signed by F-Droid, and guaranteed to correspond to this source tarball.

    Permissions
    • pair with Bluetooth devices
      Allows the app to view the configuration of the Bluetooth on the phone, and to make and accept connections with paired devices.
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • android.permission.PACKAGE_USAGE_STATS
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • read phone status and identity
      Allows the app to access the phone features of the device. This permission allows the app to determine the phone number and device IDs, whether a call is active, and the remote number connected by a call.
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • request delete packages
      Allows an application to request deletion of packages.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • android.permission.USES_POLICY_FORCE_LOCK
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • com.jarsilio.android.waveup.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 4.7 MiB PGP Signature | Build Log