-
Notifications
You must be signed in to change notification settings - Fork 16
Hooks
Polar FlowSync uses LGPL Qt libraries for (among other things) network communications. To get access to these communications, Bipolar provides its own replacement Qt5Network.dll which is a drop-in replacement for the one that ships with FlowSync. This drop-in replacement DLL extends the QNetworkAccessManager::post function to record POST data to files.
FlowSync POSTs to several URLs - the drop-in replacement DLL only records data for those containing the training-sessions string, so for example, login requests are not logged.
POST data is logged in an export directory, under the writable QStandardPaths::DataLocation location - typically something like C:\Uses\<user>\AppData\Local\Polar\PolarFlowSync\export. Each file is named the same as the POST URL path, but with unsafe characters (such as /) replaced with - instead. So, for example, a POST to a URL like: www.remotepolar.com/v2/users/1234567/training-sessions/23456789/exercises/34567890/autolaps will result in a file like: C:\Uses\<user>\AppData\Local\Polar\PolarFlowSync\export\v2-users-1234567-training-sessions-23456789-exercises-34567890-autolaps.
Each file contains the raw POST data - which in the case of Polar FlowSync, is binary Google Protocol Buffers data (see [Polar API V2](Polar API V2)).
- Locate the Polar FlowSync installation; eg
C:\Program Files (x86)\Polar\Polar FlowSync\. - Backup the
Qt5Network.dllfile in that directory; eg rename it to something likeQt5Network.dll.backup. - Copy the new
Qt5Network.dllfile into that directory. - Restart Polar FlowSync.
Or see the temporary install.cmd script for inspiration.
- Copy the backed-up DLL (from step #2 of the installation) back to
Qt5Network.dll. - Restart Polar FlowSync.
| FlowSync | OSX | Windows | Notes |
|---|---|---|---|
| < 2.6.2 | Qt 5.1.1 i386 | Qt 5.1.1 | |
| 2.6.2 | Qt 5.1.1 i386 | Qt 5.5.1 msvc100, OpenSSL 1.0.1g | Yes, Polar moved FlowSync for Windows to Qt 5.5.x, but left the OSX version at 5.1.x for the FlowSync 2.6.2 release. Note, Bipolar built the Windows hook against OpenSSL 1.0.2e, since that was the latest (and only) 1.0.x Windows release available at the time. This was the last 2.x release for Windows. |
| 2.6.4 | Qt 5.1.1 i386 | OSX only release | This was the last 2.x release for OSX |
| 3.0.0.1337 | Qt 5.5.1 x86_64 | Qt 5.5.1 msvc120, OpenSSL 1.0.2o | Note, Bipolar built the Windows hook against OpenSSL 1.0.2p, since that was the latest (and only) 1.0.x Windows release available at the time. |
| 4.0.11 | Qt 5.15.1 | Qt 5.15.2 msvc2019 (14.26), OpenSSL 1.1.1j | Qt officially releases both msvc2015 and msvc2019 versions; Polar used the 2019 versions. |
| 4.0.11 | No change | Qt 5.15.12 msvc2019 (14.29), OpenSSL 1.1.1q | Released sometime before 2023-08-03. Same FlowSync version number 4.0.11.0, but upgraded Qt and OpenSSL on Windows only. |
Tip: on Linux, use 7z+7z for pkg, and innoextract+exiftool for exe.
Polar WebSync also uses LGPL Qt libraries for network communications, though it uses Qt 4.6.x instead of Qt 5.1.x. The same hook process as used above will probably work for WebSync, but as WebSync has built-in support for exporting HRM/GPX files, its a lower priority.