Skip to content

List of requested permissions

When Gadgetbridge requests a lot of permissions, this is due to the amount of supported features that require permissions, like notifications, call logs, phone state, calendar, and so on. One notable permission is access to location, which is caused by the Android permissions system: because discoverable devices might reveal information about the user's location, the device discovery process requires location access.

Since recent versions of Gadgetbridge, the location permission has also been used to provide GPS data to the gadget for sports activities.

Good to know

To ensure that none of the accessed data is ever forwarded anywhere, Gadgetbridge does not have (and will not have) the Android INTERNET permission, which means that Gadgetbridge has no means of sending any data anywhere. This is one of the most critical safeguards in the Gadgetbridge permission system.

Help needed

This page has been created in response to issue #2062. The permissions list and the initial explanation are taken from current manifest file of the Gadgetbridge source code. You can help us improve the page!

Used for discovery and pairing

Bluetooth
  • android.permission.BLUETOOTH
    • Allows applications to connect to paired bluetooth devices.
  • android.permission.BLUETOOTH_ADMIN
    • Allows applications to discover and pair bluetooth devices.
Location
  • android.permission.ACCESS_COARSE_LOCATION
    • Because discoverable devices might reveal information about the user's location, the device discovery process requires location access.

Used for background service

To keep the Bluetooth connection running even if the app is not currently in use at the moment, it needs a service to keep it from being killed by the system.

Other
  • android.permission.RECEIVE_BOOT_COMPLETED
    • Allows Gadgetbridge to automatically start when the phone has finished booting up.
  • android.permission.FOREGROUND_SERVICE
    • Used to start a foreground service (with accompanying persistent notification).
  • android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND

Used for automatic starting

Gadgetbridge services are started automatically on boot, notifications and Bluetooth, so you don't need to open Gadgetbridge for each time you restart your phone.

Other
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
Bluetooth
  • android.permission.BLUETOOTH
  • android.permission.BLUETOOTH_ADMIN

Used for "find phone"

Other
  • android.permission.VIBRATE

Used for weather provider access

Other
  • cyanogenmod.permission.ACCESS_WEATHER_MANAGER
  • cyanogenmod.permission.READ_WEATHER
  • lineageos.permission.ACCESS_WEATHER_MANAGER
  • lineageos.permission.READ_WEATHER
  • org.omnirom.omnijaws.READ_WEATHER

Used for workout GPS track recording

For workouts started from the band, if supported by the band and by Gadgetbridge.

Location
  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION

Required on Android 10 and up

This is to indicate access to user data, such a call log, calls, contacts and more.

Location
  • android.permission.ACCESS_FINE_LOCATION
    • Because discoverable devices might reveal information about the user's location, the device discovery process requires location access.
  • android.permission.ACCESS_BACKGROUND_LOCATION
    • "Only when the app is open" is unsuitable because Gadgetbridge runs the Bluetooth discovery scan in a background worker.
    • Because discoverable devices might reveal information about the user's location, the device discovery process requires location access.
Call logs
  • android.permission.READ_CALL_LOG
  • android.permission.PROCESS_OUTGOING_CALLS
Phone
  • android.permission.READ_PHONE_STATE
  • android.permission.CALL_PHONE
  • android.permission.ANSWER_PHONE_CALLS
    • Call control, such as hanging up.
SMS
  • android.permission.RECEIVE_SMS
  • android.permission.SEND_SMS
Contacts
  • android.permission.READ_CONTACTS
Calendar
  • android.permission.READ_CALENDAR
    • Used for syncing calendar events with gadget.
Storage
  • android.permission.READ_EXTERNAL_STORAGE
Other
  • android.permission.ACCESS_NOTIFICATION_POLICY
  • android.permission.MEDIA_CONTENT_CONTROL