Skip to content

LibUDS 1.13.0

Choose a tag to compare

@github-actions github-actions released this 15 Jun 15:29
· 270 commits to develop since this release

UDSLib v1.13.0

Universal Diagnostics Stack for Embedded Systems


What's New

Added

  • LinkControl (0x87) and AccessTimingParameter (0x83) — completes the reprogramming-negotiation flow; 22 of 27 services now implemented.
  • Opt-in session policy (config.restrict_sessions): when enabled, reprogramming services are gated to the programming session and other privileged services to extended/programming. Default off (behavior unchanged).
  • End-to-end reprogramming example (examples/pro_flash_tool/): a flash tool driving a LibUDS ECU through the full session → security → link/timing → erase → download → transfer → checksum flow; smoke-tested in CI.
  • Real fuzzers for both untrusted-input boundaries (the core SDU dispatcher and the ISO-TP frame parser).

Fixed

  • Periodic-scheduler NULL dereference: ReadDataByPeriodicIdentifier (0x2A) registered an entry even with no fn_periodic_read configured, which uds_process() then called as a NULL pointer (found by the new fuzzer). The handler now returns NRC 0x22 and the scheduler is guarded.

CI / Quality

  • Pinned the Zephyr build to release v4.4.1 (was main) for a deterministic gate.
  • MISRA-C:2012 enforced via cppcheck's addon against a documented deviation baseline (no mandatory-rule violations); see docs/MISRA.md.

Docs

  • Consolidated the two diverging compliance documents into a single, accurate SERVICE_COMPLIANCE.md (22/27 matrix + ISO 15765-2 transport conformance).
  • Freshened the integrator guides for the instance-based ISO-TP API and the new features.

Test Results

All Tests Passed

  • Total Tests: 44
  • Passed: 44
  • Failed: 0

Build Information

  • Version: 1.13.0
  • Build Date: 2026-06-15 15:29:39 UTC
  • Compliance: ISO 14229-1 (UDS)
  • Platform Support: Bare Metal, FreeRTOS, Zephyr, Linux, Windows

Supported Services

UDSLib v1.13.0 implements 16 ISO 14229-1 services:

Service Description SID
Diagnostic Session Control Session management 0x10
ECU Reset Reset operations 0x11
Clear Diagnostic Information DTC clearing 0x14
Read DTC Information DTC reporting 0x19
Read Data By Identifier Data reading 0x22
Read Memory By Address Memory access 0x23
Security Access Seed/Key exchange 0x27
Communication Control TX/RX control 0x28
Authentication Certificate exchange 0x29
Write Data By Identifier Data writing 0x2E
Routine Control Routine execution 0x31
Request Download OTA init 0x34
Transfer Data Block streaming 0x36
Request Transfer Exit OTA completion 0x37
Write Memory By Address Memory writing 0x3D
Tester Present Keep-alive 0x3E
Control DTC Setting DTC ON/OFF 0x85

Installation

Download Pre-built Binaries

Download the attached artifacts:

  • uds_host_sim - Host-based ECU simulator
  • unit_tests - Complete test suite

Build from Source

git clone https://github.com/w1ne/udslib.git
cd udslib
git checkout v1.13.0
mkdir build && cd build
cmake ..
make
ctest

Documentation

Licensing

  • Community: PolyForm Noncommercial 1.0.0 (noncommercial use). See LICENSE.
  • Commercial: 5,000 EUR for production/commercial use, includes integration + 1 year support.
  • Contact: andrii@shylenko.com for commercial terms and support.

Report Issues

Found a bug? Open an issue

Full Changelog

See CHANGELOG.md for complete version history.


Code Coverage

Line Coverage: 86.2% · Function Coverage: 98.0%

Summary coverage rate:
lines......: 86.2% (855 of 992 lines)
functions..: 98.0% (50 of 51 functions)
branches...: no data found

Full coverage report available in release artifacts.