A proxy to encrypt the Traccar Freematics protocol.
Go to file
Cyberes 8fae0cd5db fix some things 2024-07-03 19:01:19 -06:00
esp32 fix some things 2024-07-03 19:01:19 -06:00
server fix some things 2024-07-03 19:01:19 -06:00
.gitignore update gitignore 2024-07-02 22:09:02 -06:00
LICENSE Initial commit 2024-06-26 21:31:44 -06:00
README.md update readme 2024-06-30 19:44:30 -06:00

README.md

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.