Skip to content

Latest commit

 

History

History
36 lines (24 loc) · 1.49 KB

README.md

File metadata and controls

36 lines (24 loc) · 1.49 KB

freematics-traccar-encrypted

A proxy to encrypt the Traccar Freematics protocol.

This is an implementation of the ChaCha20-Poly1305 algorithm into the Freematics vehicle tracker for the Traccar server.

It consists of 2 parts:

  1. A simple server written in Go that handles encryption and proxies messages to Traccar.
  2. Modified firmware for the Freematics device that implements encryption.

The server is protocol-independant and only manages encryption, meaning it can serve other protocols besides Freematics. It can also listen on multiple ports for multiple destinations.

Inspired by soshial's great writeup on the Freematics device.

Install

Client

  1. Run server/generate-key.sh script to generate your encryption key.
  2. Open the modified firmware in Visual Studio Code with the PlatformIO extension.
  3. Enter your encryption key under CHACHA20_KEY in config.h.
  4. Upload the firmware to the device.

Server

  1. Download the latest binary from releases or build it yourself using ./build.sh.
  2. Copy config.sample.yml to config.yml
  3. Enter your encryption key in config.yml under chacha_key.
  4. Fill our your forwarding destinations under destinations.
  5. Start the server with ./freematics-encrypt --config config.yml

A sample systemd service file is provided.