Skip to content

argrento/huami-token

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Huami-token is now hosted on codeberg.org.

Get it on Codeberg

Huami-token

status-badge

Script to obtain watch or band bluetooth access token from Zepp (Amazfit) servers. For progress on Xiaomi support, see https://codeberg.org/argrento/huami-token/issues/119.

About

To use new versions of Amazfit and Xiaomi watches and bands with Gadgetbridge you need special unique key. Read more here: https://gadgetbridge.org/basics/pairing/huami-xiaomi-server/.

Community

If you would like to get in touch

Installation

From PyPI (currently outdated)

pip install huami-token

From source

  1. Ensure that you can login in the Zepp App with e-mail and password. If not, create new Amazfit account with e-mail and password.
  2. Pair, sync and update your watch with Zepp App. Your pairing key will be stored on Huami servers.
  3. Install uv: https://docs.astral.sh/uv/getting-started/installation/
  4. Clone this repo and cd into it.
  5. Install the package: uv pip install -e ".[dev]"

Usage

After installation, the huami-token command is available:

usage: huami-token [-h] -m {amazfit,xiaomi} [-e EMAIL] [-p PASSWORD] [-b] [-g] [-n]

Obtain Bluetooth Auth key from Amazfit (Zepp). Currently only supports Amazfit.
For progress on Xiaomi support, see https://codeberg.org/argrento/huami-token/issues/119.

options:
  -h, --help            show this help message and exit
  -m {amazfit,xiaomi}, --method {amazfit,xiaomi}
                        Login method. Chose Amazfit for Zepp.
  -e EMAIL, --email EMAIL
                        Account e-mail address
  -p PASSWORD, --password PASSWORD
                        Account Password
  -b, --bt_keys         Get bluetooth tokens of paired devices
  -g, --gps             Download GPS files (AGPS_ALM, AGPSZIP, LLE, etc.)
  -n, --no_logout       Do not logout, keep active session and display app token and access token

You can also run directly via python main.py if you prefer not to install.

Logging in with Amazfit account

Run with your credentials:

huami-token --method amazfit --email your_email@example.com --password your_password --bt_keys

Sample output:

2025-11-14 18:41:43.316 | INFO     | huami_token.zepp:login:67 - Logging in...
2025-11-14 18:41:44.268 | INFO     | huami_token.zepp:_get_refresh_and_access_tokens:120 - Received access and refresh tokens successfully
2025-11-14 18:41:45.217 | INFO     | huami_token.zepp:login:70 - Logged in! User id: 1234567890
2025-11-14 18:41:45.217 | INFO     | huami_token.zepp:get_devices:187 - Getting linked devices...
Device 0:
  MAC: AB:CD:EF:12:34:56, Active: Yes
  Key: 0xa3c10e34e5c14637eea6b9efc06106
2025-11-14 18:41:46.400 | INFO     | huami_token.zepp:logout:178 - Logged out.

Logged out.

Here the Key is the unique pairing key for your watch. The Active tab shows whether a device is active or not.

Logging in with Xiaomi account

This is not yet reimplemented.

AGPS

This script can download AGPS files (requires login):

huami-token --method amazfit --email your_email@example.com --password your_password --gps

The following files are downloaded:

  • AGPS_ALM -- cep_1week.zip
  • AGPSZIP -- cep_7days.zip
  • LLE -- lle_1week.zip
  • AGPS -- cep_pak.bin
  • EPO -- EPO.ZIP
  • LTO -- LTO data file

Development

uv pip install -e ".[dev]"

# Run tests
pytest -m "not integration"

# Lint
ruff check .

# Type check
mypy huami_token/

# Build wheel
uv build

Dependencies

  • Python >= 3.10
  • requests
  • loguru
  • pycryptodome

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Packages

No packages published

Contributors 6

Languages