I've been a fan of Amazfit watches for the past 6 years and I am on my second watch right now - the Amazfit GTR4. Back in 2020, I was looking for a fitness tracker that wasn't too "smart" and could work with both Android & iOS. In hindsight, that has worked out great since I'm back on Android after 4 years on iOS.
Over the years, the Zepp app has gotten quite bloated and I've always wanted an OSS replacement. With iOS, this was highly unlikely. So when I moved back to Android this year, I started looking for alternatives and Gadgetbridge seemed to fit the bill.
Setup
Pairing the watch to Gadgetbridge isn't very straightforward - you can't just pair using Bluetooth and call it a day. The connection must be authenticated by the Zepp backend and you need a pairing token to complete the process outside of the Zepp app. This is where huami-token comes in. It's a CLI tool that can authenticate with the Zepp backend and fetch the pairing token for you.
huami-token -m amazfit -e <email> -p <pass> --bt_keys
Updating AGPS
Keeping the AGPS updated was one of the key motivations behind keeping Zepp installed. Luckily huami-token takes care of that as well.
Similarly to fetching the pairing token, you can fetch updated AGPS.
huami-token -m amazfit -e <email> -p <pass> --gps
This downloads a bunch of files but the one of interest to me is EPO.ZIP
Gadgetbridge allows you to install files(firmware, watchfaces, AGPS, etc.) on your watch. Then it's just a matter of selecting the EPO.ZIP file and waiting for Gadgetbridge to finish transferring to your watch. What do I miss?
Gadgetbridge has been an excellent Zepp replacement but it does have a few downsides. You miss out on third-party integrations with services such as Strava. This might be a dealbreaker for some. For me, my workouts are tracked on Hevy and I was only missing out on sharing my badminton games to Strava.
At one point, I started working on a companion that can read the Gadgetbridge activity exports, parsing them and publishing activities to Strava. Midway through the development, I realized that sharing on Strava isn't that important to me and I fairly appreciate that less of my data is out there. This might seem like a "grapes are sour" moment to some but I've been actively reducing how much I share online.