cmaion / polar

A set of command line tools written in Ruby to interact with Polar watches and decode raw data files
91 stars 22 forks source link

delete data / factory reset #23

Open chri2 opened 4 years ago

chri2 commented 4 years ago

The project sounds really good and I'll try it to replace my old downloader. I've never been a big fan of Polar for their decision to let the owner only fully use the product when accepting the upload of personal data to their online service.

I usually avoid this problem by not changing anything on my watch which also means that I do not get updates and that there is no way for me to reconfigure the screens.

For that reason I'd be really interested in a way to delete all the personal data from the watch before using the online service to update or to configure screens. (I'd not dream about an open source software that lets me do these tasks offline...)

I'd be willing to accept that there might not be a way to restore the data to the watch.

Is there a way to use the provided tools to factory reset or delete all personal data? If not, would it be very hard to implement it?

cmaion commented 4 years ago

Hi

Removing files from the watch should be quite doable, someone should just be willing to take the time needed to test & implement it (and accept the associated risk for the watch while doing so).

The GET operation is implemented here: https://github.com/cmaion/polar/blob/b8018d76f25694a316e0f3796f47a56519051d52/lib/polar_ftp.rb#L44

Implementing the REMOVE operation should be very, very similar (use PolarProtocol::PbPFtpOperation::Command::REMOVE instead of PolarProtocol::PbPFtpOperation::Command::GET + no need to write the result to a local file; one would just need to figure out how the result is structured/parsed, if any, incl. in case of error).

The polar_ftp tool can also be easily extended to support this operation, just as the existing GET coommand: https://github.com/cmaion/polar/blob/b8018d76f25694a316e0f3796f47a56519051d52/polar_ftp#L53

On top of that, you may want to implement something similar to the SYNC command to recursively delete the training sessions.

tdpo2 commented 9 months ago

How far is this feature from implementation?