package icon

Gravel

A de-googled, hardened fork of the Pebble companion app for de-googled phones
New in version 0.3.3
PebbleOS updates for Core watches now follow Core's public changelog, and Settings > About > Choose a PebbleOS build lists newer builds. Watchfaces and apps with internet access off run their code inside Gravel again where Gravel can block UDP. Where it cannot, such as on LineageOS, CalyxOS and Android 9 and older, a switch in Settings > Apps > Watch App Permissions, on by default, lets that code run with Android System WebView 152 or newer.
Gravel is a de-Googled, hardened fork of the Pebble mobile app by Core Devices, for Pebble and Core Devices watches on GrapheneOS, LineageOS and other phones without Google Play services or Firebase.

The watch features are here: pairing, notifications and replies, calendar, music, health, weather, watchfaces and apps, firmware updates, and voice dictation. What is gone: Play services, Firebase, telemetry, analytics and crash reporting. The battery analytics page depended on that telemetry and has no data here, and the Pebble Index 01 ring and Index AI features do not work for now.

Hardening:
- Code that watchapps run inside Gravel gets no internet or location access until you grant it, per app, so some watchfaces and apps need a grant before they work fully. On phones where Gravel's UDP filter can't be turned on, such as LineageOS and CalyxOS, watchapps without internet access still run their code by default if Android System WebView is up to date. Their real-time connections (the kind video calls use) then depend on a single layer instead of two. You can turn that code off under Watch App Permissions. With an older WebView, that code does not run
- Classic PebbleKit, which broadcasts watch data to apps on your phone, is off by default; turn it on under Watch App Permissions if a companion app stops receiving watch data
- The speech engine runs in an isolated Android process
- Other exported Android interfaces are authorization-gated or removed, and plain-HTTP traffic is blocked
- Core watch firmware comes from the public PebbleOS releases and is verified before install
- App store searches are sent when you tap search, not while you type, with the search provider's analytics switched off

Dictation runs on the phone with whisper.cpp, built from source; the speech model is an optional, integrity-pinned download. You can also send dictation to your own transcription server over https. Weather locations can also be entered by latitude and longitude.

Gravel contacts the Core Devices and Rebble web services, Algolia when you search the app store, GitHub for firmware, and the model host when you download a speech model, as well as an app store source or transcription server you add yourself and any host a watchapp you grant internet access connects to. Where Gravel's UDP filter can't be turned on and a watchapp without that grant still runs its code (see Hardening above), that code's real-time connections depend on one layer instead of two.

Background location is used so location-based watchapps and weather work while the app is closed.

Gravel is not affiliated with or endorsed by Core Devices. "Pebble" and "Core Devices" are trademarks of their respective owners; Gravel is an independent fork of their GPLv3 source code.

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 0.3.3 (2477) suggested Added on Sep 28, 2026

    arm64-v8a armeabi-v7a

    This version requires Android 8.0 or newer.

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

    Permissions
    • access location in the background
      This app can access location at any time, even while the app is not in use.
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • 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.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • advertise to nearby Bluetooth devices
      Allows the app to advertise to nearby Bluetooth devices
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • discover and pair nearby Bluetooth devices
      Allows the app to discover and pair nearby Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "connectedDevice"
      Allows the app to make use of foreground services with the type "connectedDevice"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • Manage ongoing calls
      Allows an app to see details about ongoing calls on your device and to control these calls.
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • Read calendar events and details
      This app can read all calendar events stored on your phone and share or save your calendar data.
    • read call log
      This app can read your call history.
    • read your contacts
      Allows the app to read data about your contacts stored on your phone. Apps will also have access to the accounts on your phone that have created contacts. This may include accounts created by apps you have installed. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge.
    • 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.
    • Companion Watch profile permission to manage watches
      Allows a companion app to manage watches.
    • run in the background
      This app can run in the background. This may drain battery faster.
    • Start foreground services from background
      Allows a companion app to start foreground services from background.
    • use data in the background
      This app can use data in the background. This may increase data usage.
    • Observe companion device presence
      Allows a companion app to observe companion device presence when the devices are nearby or far-away.
    • android.permission.RUN_USER_INITIATED_JOBS
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • add or modify calendar events and send email to guests without owners' knowledge
      This app can add, remove, or change calendar events on your phone. This app can send messages that may appear to come from calendar owners, or change events without notifying their owners.
    • android.permission.health.WRITE_EXERCISE
    • android.permission.health.WRITE_EXERCISE_ROUTE
    • android.permission.health.WRITE_HEART_RATE
    • android.permission.health.WRITE_SLEEP
    • android.permission.health.WRITE_STEPS
    • com.anopticlabs.gravel.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
    • io.rebble.pebblekit2.permission.RECEIVE_DATA_FROM_WATCH

    Download APK 10 MiB PGP Signature | Build Log

  • New in version 0.3.2
    Fixes Gravel closing right after opening on LineageOS-based phones. For now, a watchface or watchapp with internet access off does not run its code inside Gravel; an update that brings this back is in progress.
  • Version 0.3.2 (2456) - Added on Sep 25, 2026

    arm64-v8a armeabi-v7a

    This version requires Android 8.0 or newer.

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

    Permissions
    • access location in the background
      This app can access location at any time, even while the app is not in use.
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • 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.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • advertise to nearby Bluetooth devices
      Allows the app to advertise to nearby Bluetooth devices
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • discover and pair nearby Bluetooth devices
      Allows the app to discover and pair nearby Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "connectedDevice"
      Allows the app to make use of foreground services with the type "connectedDevice"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • Manage ongoing calls
      Allows an app to see details about ongoing calls on your device and to control these calls.
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • Read calendar events and details
      This app can read all calendar events stored on your phone and share or save your calendar data.
    • read call log
      This app can read your call history.
    • read your contacts
      Allows the app to read data about your contacts stored on your phone. Apps will also have access to the accounts on your phone that have created contacts. This may include accounts created by apps you have installed. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge.
    • 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.
    • Companion Watch profile permission to manage watches
      Allows a companion app to manage watches.
    • run in the background
      This app can run in the background. This may drain battery faster.
    • Start foreground services from background
      Allows a companion app to start foreground services from background.
    • use data in the background
      This app can use data in the background. This may increase data usage.
    • Observe companion device presence
      Allows a companion app to observe companion device presence when the devices are nearby or far-away.
    • android.permission.RUN_USER_INITIATED_JOBS
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • add or modify calendar events and send email to guests without owners' knowledge
      This app can add, remove, or change calendar events on your phone. This app can send messages that may appear to come from calendar owners, or change events without notifying their owners.
    • android.permission.health.WRITE_EXERCISE
    • android.permission.health.WRITE_EXERCISE_ROUTE
    • android.permission.health.WRITE_HEART_RATE
    • android.permission.health.WRITE_SLEEP
    • android.permission.health.WRITE_STEPS
    • com.anopticlabs.gravel.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
    • io.rebble.pebblekit2.permission.RECEIVE_DATA_FROM_WATCH

    Download APK 10 MiB PGP Signature | Build Log

  • New in version 0.3.1
    Turning off internet access for a watchface or app now covers more than web requests: Gravel blocks UDP sockets in its own process, and an app with internet access off runs in a sandboxed page set to allow no connections. Web pages inside Gravel lose HTTP/3 and WebRTC over UDP as a result. Changing the setting restarts the app's session. On Android 17, plain-HTTP connections to services on the phone itself are denied again, like all other plain HTTP.
  • Version 0.3.1 (2452) - Added on Sep 22, 2026

    arm64-v8a armeabi-v7a

    This version requires Android 8.0 or newer.

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

    Permissions
    • access location in the background
      This app can access location at any time, even while the app is not in use.
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • 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.
    • access Bluetooth settings
      Allows the app to configure the local Bluetooth phone, and to discover and pair with remote devices.
    • advertise to nearby Bluetooth devices
      Allows the app to advertise to nearby Bluetooth devices
    • connect to paired Bluetooth devices
      Allows the app to connect to paired Bluetooth devices
    • discover and pair nearby Bluetooth devices
      Allows the app to discover and pair nearby Bluetooth devices
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "connectedDevice"
      Allows the app to make use of foreground services with the type "connectedDevice"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • Manage ongoing calls
      Allows an app to see details about ongoing calls on your device and to control these calls.
    • show notifications
      Allows the app to show notifications
    • query all packages
      Allows an app to see all installed packages.
    • Read calendar events and details
      This app can read all calendar events stored on your phone and share or save your calendar data.
    • read call log
      This app can read your call history.
    • read your contacts
      Allows the app to read data about your contacts stored on your phone. Apps will also have access to the accounts on your phone that have created contacts. This may include accounts created by apps you have installed. This permission allows apps to save your contact data, and malicious apps may share contact data without your knowledge.
    • 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.
    • Companion Watch profile permission to manage watches
      Allows a companion app to manage watches.
    • run in the background
      This app can run in the background. This may drain battery faster.
    • Start foreground services from background
      Allows a companion app to start foreground services from background.
    • use data in the background
      This app can use data in the background. This may increase data usage.
    • Observe companion device presence
      Allows a companion app to observe companion device presence when the devices are nearby or far-away.
    • android.permission.RUN_USER_INITIATED_JOBS
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • add or modify calendar events and send email to guests without owners' knowledge
      This app can add, remove, or change calendar events on your phone. This app can send messages that may appear to come from calendar owners, or change events without notifying their owners.
    • android.permission.health.WRITE_EXERCISE
    • android.permission.health.WRITE_EXERCISE_ROUTE
    • android.permission.health.WRITE_HEART_RATE
    • android.permission.health.WRITE_SLEEP
    • android.permission.health.WRITE_STEPS
    • com.anopticlabs.gravel.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
    • io.rebble.pebblekit2.permission.RECEIVE_DATA_FROM_WATCH

    Download APK 10 MiB PGP Signature | Build Log