Witam, kupiłem zegarek Xiaomi Mi Watch, ma wbudowanego GPS, świetną baterię i jest idealny do biegania... ale. Zegarek łączy się tylko z apką Xiaomi Wear, która nie ma możliwości eksportu treningów do plików (GPX, TCX). Nie ma też możliwości synchronizacji z innymi serwisami tj Google Fit / Endomondo (RIP) / Garmin / Strava. W necie znalazłem dużo apek i skryptów, które pozwalają na eksport danych z MiFit, ale one nie działają dla Xiaomi Wear.
Postanowiłem sam się tym zająć: zainstalowałem apkę na zrootowanym telefonie, uruchomiłem HttpCanary do nasłuchiwania ruchu. Udało się wyciągnąć szczegóły requestów. Przy pobieraniu listy ostatnich treningów leci request
curl -H "User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.0.2; Mi 4i MIUI/V9.2.3.0.LXIMIEK)" -H "Content-Type: text/plain;charset=utf-8" -H "Accept-Encoding: gzip" --cookie "userId=125120307;serviceToken=TICxDJGqbKpXYSnLiKXMbYYqu8WH1Oi0zb3eaoK5TdVix0kYwScEUI0S90VT/LVbgUpuYJho5rkKyfNAXwvVrtvva10AEVAgJR0xMDD8xF5tV/ZRhyFttvnhwXwAWlxs+SYegBqyhmokLe+7lPpObPfl8scUK3taiZp5O4HD4jM=" 'https://de.hlth.io.mi.com/healthapp/fitness/get_sport_summary?signature=0dgArCvnYuDwUKuWBuONyC5TufQ=&_nonce=qcfNJoG3A/UBmfyH&rc4_hash__=khcx3W6ZJZzjfih/i8Ez/8GBpU/FxQrAt9audg==&data=tRq0xViGDE4Qdu/KXIpGxwnXdSRaTgA8DgVBujrDeffz8856BDRJfaXTRMrxW6QNmBqru9wAIQNMUlZHDbtAKyBklPUh3jwn8PJl5kErRGybnBXY4r95YQbi19f4n9Gesnq9Ek7etC8XeBTBucrhY+K7UxxCysM/MKAaUrTKVoUxYItEJRoCcmuzYbM='
Czyli odzywa się do jakiegoś API pod adresem https://de.hlth.io.mi.com/healthapp/fitness/. I dalej stoję pod ścianą: nie udało mi się uruchomić tego samego requesta z sukcesem na komputerze. Tokeny pomiędzy kolejnymi requestami na telefonie się nie zmieniają więc nie powinno być problemu a i tek dostaje odpowiedź:
{"code":5,"message":"auth err"}
W necie nic nie znalazłem na temat api Xiaomi Weare. Podpowiecie gdzie mogę szukać jakichś informacji ? Jest tutaj na forum jakiś dział, gdzie ktoś działa z inżynierią wsteczną apek Xiaomi ?