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.dll
file in that directory; eg rename it to something likeQt5Network.dll.backup
. - Copy the new
Qt5Network.dll
file 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.