Skip to content

GadgetBridge

Gadgetbridge is an Android (4.4+) application which will allow you to use your Pebble, Mi Band, Amazfit Bip and HPlus device (and more) without the vendor's closed source application and without the need to create an account and transmit any of your data to the vendor's servers.

It wont be ever be as good as the proprietary application, but it supports a good range of features, and supports a huge range of bands.

Installation

On GrapheneOS you may need to enable the restricted permissions

Data extraction

You can use the Data export or Data Auto export to get copy of your data.

Here is an example of a Python program that post processes the data. Also is this post explaining how to reverse engineer the miband2 with this or this scripts. If you start the path of reverse engineering the Bluetooth protocol look at gadgetbridge guidelines.

If you start to think on how to avoid the connection with an android phone and directly extract or interact from a linux device through python, I'd go with pybluez for the bluetooth interface, understand the band code of Gadgetbridge porting the logic to the python module, and reverse engineering the call you want to process. There isn't much in the internet following this approach, I've found an implementation for the Mi Band 4 though, which can be a good start.

Heartrate measurement

Follow the official instructions.

Sleep

It looks that they don't yet support smart alarms.

Weather

Follow the official instructions

Events

I haven't figured out yet how to let the events show in the "events" tab. Mobile calendar events show up as notifications, but you can't see the list of the next ones.

For the Amazfit band 5, there is a bug that prevents events from showing in the reminders tab. Notifications work well though.

Setup

In the case of the Amazfit band 5, we need to use the Huami server pairing:

  • Install the Zepp application
  • Create an account through the application.
  • Pair your band and wait for the firmware update
  • Use the python script to extract the credentials
    • git clone https://github.com/argrento/huami-token.git
    • pip install -r requirements.txt
    • Run script with your credentials: python huami_token.py --method amazfit --email youemail@example.com --password your_password --bt_keys
  • Do not unpair the band/watch from MiFit/Amazfit/Zepp app
  • Kill or uninstall the MiFit/Amazfit/Zepp app
  • Ensure GPS/location services are enabled
  • The official instructions tell you to unpair the band/watch from your phone's bluetooth but I didn't have to do it.
  • Add the band in gadgetbridge.
  • Under Auth key add your key.

References