Skip to content
Paul Colby edited this page Aug 3, 2023 · 24 revisions

Polar FlowSync

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.

What Data / Where?

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)).

Installation

  1. Locate the Polar FlowSync installation; eg C:\Program Files (x86)\Polar\Polar FlowSync\.
  2. Backup the Qt5Network.dll file in that directory; eg rename it to something like Qt5Network.dll.backup.
  3. Copy the new Qt5Network.dll file into that directory.
  4. Restart Polar FlowSync.

Or see the temporary install.cmd script for inspiration.

Removal

  1. Copy the backed-up DLL (from step #2 of the installation) back to Qt5Network.dll.
  2. Restart Polar FlowSync.

Qt Version(s)

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

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.