Skip to content

Cyberes/freematics-traccar-encrypted

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.