# Mi Fitness Sync: reconstructing workout retrieval from the Android app

> Mi Fitness Sync reconstructs workout retrieval from the Mi Fitness Android app and implements a Python CLI for activity export and Strava uploads. Its JADX-based notes map Xiaomi Passport authentication, activity API calls and FDS download handling. The client decrypts workout blobs and exports available data as GPX, TCX or FIT.

- Type: Case study
- Targets: App
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-06
- Added to the catalog: 2026-11-09
- Original resource: <https://github.com/kevinkwee/Mi-Fitness-Sync>
- Primary source: <https://github.com/kevinkwee/Mi-Fitness-Sync/blob/b51fd421fbdda18b53c13aad12b6868731684583/docs/mi-fitness-activity-findings.md>
- Catalog page: <https://awesomerea.org/resources/mi-fitness-sync-case/>
- Record JSON: <https://awesomerea.org/resources/mi-fitness-sync-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/mi-fitness-sync-case/index.md)

## Requirements & limits

- **Prerequisites:** Python 3.12 or newer and a Mi/Xiaomi account are required.
- **Prerequisites:** Strava upload commands require a Strava API application.
- **Limits:** GPX export requires GPS track points; FIT export includes only fields available in the source data.
- **License:** MIT license.

## Primary sources

1. <https://github.com/kevinkwee/Mi-Fitness-Sync/blob/b51fd421fbdda18b53c13aad12b6868731684583/docs/mi-fitness-activity-findings.md>
2. <https://github.com/kevinkwee/Mi-Fitness-Sync/blob/b51fd421fbdda18b53c13aad12b6868731684583/docs/mi-fitness-auth-findings.md>
3. <https://github.com/kevinkwee/Mi-Fitness-Sync/blob/b51fd421fbdda18b53c13aad12b6868731684583/docs/mi-fitness-fds-findings.md>
4. <https://github.com/kevinkwee/Mi-Fitness-Sync/blob/b51fd421fbdda18b53c13aad12b6868731684583/README.md>

## More in Apps

- [SSL Console Control: reconstructing mixing-console UDP control](https://awesomerea.org/resources/ssl-console-control-case/index.md) · Case study
- [logitech-ipc-protocol: reconstructing Logi Options+ agent messages](https://awesomerea.org/resources/logitech-ipc-protocol-case/index.md) · Case study
- [samsung-notes-format: decoding Samsung Notes handwriting](https://awesomerea.org/resources/samsung-notes-format-case/index.md) · Case study
- [cam-server: reconstructing the Digicam Print Channel backend](https://awesomerea.org/resources/cam-server-case/index.md) · Case study
- [bline: decoding LINE voice-call traffic](https://awesomerea.org/resources/bline-line-voip-case/index.md) · Case study
- [WazeTripper: reconstructing Tripper Pod navigation over BLE](https://awesomerea.org/resources/wazetripper-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
