Skip to content

tier4/ota-client

Repository files navigation

OTAClient

Overview

OTAClient is software to perform over-the-air software updates for linux devices. It provides a set of APIs for user to start the OTA and monitor the progress and status.

It is designed to work with web.auto FMS OTA component.

Features

  • A/B partition update with support for generic x86_64 device, NVIDIA Jetson series based devices and Raspberry Pi device.
  • Full Rootfs update, with delta update support.
  • Local delta calculation, allowing update to any version of OTA image without the need of a pre-generated delta OTA package.
  • Support persist files from active slot to newly updated slot.
  • Verification over OTA image by digital signature and PKI.
  • Support for protected OTA server with cookie.
  • Optional OTA proxy support and OTA cache support.
  • Multiple ECU OTA supports.

Requirements

  • Python 3.8 or higher
  • Linux (Ubuntu 20.04, 22.04, 24.04)

Tested on ubuntu 20.04~24.04, and should work on modern linux distros that use systemd.

Installation

  • For development: Install from source code or use a released Python wheel package. See Development Guide.
  • For deployment: Using the OTAClient app image is recommended.

Configuration

Sample configuration files are available in the samples/ directory:

  • ecu_info.yaml - ECU information configuration
  • proxy_info.yaml - Proxy settings
  • otaclient.service - systemd service file

Protobuf Package

OTAClient uses protobuf for its API interface. To use OTAClient API in your Python project:

Installation

pip install https://raw.githubusercontent.com/tier4/ota-client/main/proto/whl/otaclient_pb2-<version>-py3-none-any.whl

Or add to your requirements.txt:

https://raw.githubusercontent.com/tier4/ota-client/main/proto/whl/otaclient_pb2-<version>-py3-none-any.whl

Usage

from otaclient_pb2.v2 import otaclient_pb2
from otaclient_pb2.v2 import otaclient_pb2_grpc

Documentation

Contributing

Please refer to DEVELOPMENT.md for development setup, testing, and contribution guidelines.

License

OTAClient is licensed under the Apache License 2.0.

This project uses open-source software, each under its own license. For details, see the table below:

Software License Source
certifi MPL-2.0 GitHub

About

OTAClient

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 12

Languages