Gravel
A de-googled, hardened fork of the Pebble companion app for de-googled phones
david-cant-code Konnektivität Sport / Gesundheit
Screenshots
Beschreibung
Diese Beschreibung liegt nicht in deiner Sprache vor, angezeigt wird die englische Fassung.
Gravel is a de-googled and hardened fork of the Pebble mobile app by Core Devices, for managing Pebble and Core Devices smartwatches on GrapheneOS, LineageOS, and other phones without google play services or Firebase.
The watch features of the official app are all here: pairing and reconnection, notifications, calendar, music, health, and weather on the watch, watchface and app gallery browsing, firmware updates, and voice dictation. What is gone is the google plumbing and the reporting built around it: no play services, no Firebase, no telemetry, no analytics, no crash reporting. (The one casualty is the official app's battery analytics page, which was rendered by the telemetry server and so has no data source here. The Pebble Index 01 ring and Index AI features do not function for now, because of how heavily they rely on telemetry and Firebase; work on a way to incorporate them is ongoing.)
On top of the de-Googling, Gravel tightens the app's own security posture:
- Per-app permissions for watchapps' companion code: internet and phone location are denied by default and granted per app, and revoking a permission applies to running watchapps immediately
- The app's exported Android interfaces are authorization-gated or removed
- Plain-HTTP (cleartext) traffic is blocked app-wide
- Core watch firmware updates are fetched from the public PebbleOS releases and integrity-verified before install
- On-device voice dictation with the whisper.cpp speech engine, built from source; the speech model is an optional, integrity-pinned download you start yourself
- Manual latitude/longitude entry replaces the play-services place search for weather
- App store searches leave the phone only when you tap search, never while you type, and are sent with Algolia's query analytics and personalization switched off and no user token
Some watchapps and watchfaces need internet or your location to work, and they will not function fully until you grant them access. That is deliberate: Gravel puts the decision in your hands rather than trusting every watchapp by default.
The app talks to the Core Devices and Rebble web services (app store, weather, timeline, notification icons, language packs), to Algolia, which hosts the app store's search index, whenever you search the store, to the PebbleOS release feed on GitHub for firmware, and to the speech model host on first download; there is no google endpoint. An app store source you add yourself is the one host you choose: it is fetched only after you confirm it, with no account token and no search traffic.
Permissions Gravel asks for are the ones the watch features need: Bluetooth and location for finding and staying connected to the watch (background location so location-based watchapps and weather keep working while the app is not open), notification access to forward notifications, contacts, call log, and phone state for caller names and call control on the watch, calendar for timeline pins, Health Connect write access to sync the watch's health data, and the list of installed apps for per-app notification settings. Each is requested when the corresponding feature is first set up.
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-licensed source code, under its own name and icon to avoid any confusion with the official app.
Anti-Features
Eigenschaften dieser App, die man vor der Installation kennen sollte.
- NonFreeNet
Versionen
Berechtigungen
Was die App beim System anfragt. Sensible Zugriffe gibt Android erst nach deiner Bestätigung frei.
- InternetzugriffDaten über das Internet senden und empfangen.
- Dienst im VordergrundDauerhaft im Hintergrund laufen, sichtbar in der Statusleiste.
- FOREGROUND_SERVICE_CONNECTED_DEVICE
- BenachrichtigungenMitteilungen anzeigen.
- health.WRITE_STEPS
- health.WRITE_HEART_RATE
- health.WRITE_SLEEP
- health.WRITE_EXERCISE
27 weitere Berechtigungen anzeigen
- health.WRITE_EXERCISE_ROUTE
- NetzwerkstatusPrüfen, ob und wie das Gerät verbunden ist.
- RUN_USER_INITIATED_JOBS
- BluetoothVerbindung zu Bluetooth-Geräten herstellen.
- BLUETOOTH_ADMIN
- Bluetooth-VerbindungMit gekoppelten Bluetooth-Geräten verbinden.
- BLUETOOTH_ADVERTISE
- Bluetooth-SucheNach Bluetooth-Geräten in der Nähe suchen.
- Genauer StandortStandort per GPS bestimmen.
- Ungefährer StandortStandort per Netzwerk bestimmen.
- Standort im HintergrundStandort auch dann ermitteln, wenn die App nicht geöffnet ist.
- REQUEST_COMPANION_RUN_IN_BACKGROUND
- REQUEST_COMPANION_USE_DATA_IN_BACKGROUND
- REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND
- REQUEST_COMPANION_PROFILE_WATCH
- REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE
- Installierte AppsSehen, welche Apps installiert sind.
- Kalender lesenTermine lesen.
- Kalender ändernTermine anlegen und ändern.
- TelefonstatusErkennen, ob ein Anruf läuft, und Geräteinformationen lesen.
- READ_CALL_LOG
- MANAGE_ONGOING_CALLS
- Kontakte lesenAuf das Adressbuch zugreifen.
- permission.RECEIVE_DATA_FROM_WATCH
- Standby verhindernVerhindern, dass das Gerät in den Ruhezustand wechselt.
- AutostartNach dem Einschalten des Geräts automatisch starten.
- gravel.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Kommentare