a2ltool
A tool to edit, merge and update a2l files
Features of a2ltool
- update the addresses of measurement variables and tunable parameters (characteristics) based on the elf file containing the compiled embedded application
- merge multiple a2l files into a single file
- add new measurements or characteristics based on the elf file
- check a2l files for consistency
- display XCP connection parameters embedded in the a2l file, if any exist
- maintain the formatting and ordering of items in the a2l file during manipulation, so that the diff between the original and the updated/modified file is as small as possible
- Supports files up to a2l version 1.71 (current)
Installation
a2ltool binaries are available on the releases page. You can get pre-built binaries for Windows (x64) and Linux (x64) there.
For any other platform you can compile a2ltool using cargo build --release.
Usage
Refer to the manual for a detailed description of the features and options of a2ltool.
Examples
The following examples show how to use a2ltool for common use cases:
Merge two A2L files
a2ltool file1.a2l --merge file2.a2l --output merged.a2l
Merge multiple A2L files
a2ltool file1.a2l --merge file2.a2l --merge file3.a2l --merge file4.a2l --output merged.a2l
Merge all included files into the main file
a2ltool file1.a2l --merge-includes --output flat.a2l
Update the addresses and other data in an A2L file
a2ltool input.a2l --elffile input.elf --update --output updated.a2l
Update the addresses and other data in an A2L file, while keeping invalid elements
a2ltool input.a2l --elffile input.elf --update --update-mode PRESERVE --output updated.a2l
Update only the addresses in an A2L file, and exit with an error if any other A2L elements are incorrect
a2ltool input.a2l --elffile input.elf --update ADDRESSES --update-mode STRICT --output updated.a2l
Create a new A2L file and add a characteristic from an ELF file to it
a2ltool --create --elffile input.elf --characteristic my_var --output newfile.a2l
Create a new A2L file and add multiple measurements from an ELF file to it using a regular expression
a2ltool --create --elffile input.elf --measurement-regex ".*name_pattern\d\d+*" --output newfile.a2l
Create a new A2L file and add multiple measurements from an ELF file to it using an address range
a2ltool --create --elffile input.elf --measurement-range 0x1000 0x3000 --output newfile.a2l
Change the version of an A2L file, while deleting any incompatible elements
a2ltool input.a2l --a2lversion 1.5.1 --output downgraded.a2l
Check an A2L file for consistency
a2ltool input.a2l --check --strict
Use response files containing command arguments
Assume that the file a2ltool.rsp exists and contains valid arguments for a2ltool.
a2ltool @a2ltool.rsp
About A2L Files
A2L files describe measurement variables and tunable parameters of an embedded device (typically, an automotive ECU).
The consumer of the A2L file typically allows online calibration over a protocol such as XCP and/or offline tuning by generating flashable parameter sets. Several commercial tools are available for this purpose.
The A2L file format is specified by ASAM and is formally called ASAM MCD-2 MC.
License
a2ltool is dual-licensed under the MIT and Apache2 licenses.
Metadata
Release files for a2ltool 3.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| a2ltool-3.4.2-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| a2ltool-3.4.2-py3-none-win32.whl | Python 3 | none | Windows x86-32 | Details |
| a2ltool-3.4.2-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| a2ltool-3.4.2-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| a2ltool-3.4.2-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| a2ltool-3.4.2-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 14.3 MB
Release files / a2ltool-3.4.2-py3-none-win_amd64.whl
| Download URL | a2ltool-3.4.2-py3-none-win_amd64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
06cca713cd157ec3fb138a26c364d2babaa538525adf485478b4ae7ab1abbf98
|
|
BLAKE2b-256 checksum How to use checksums |
6a44676fc822da261369e03a48ac64c23b89ca17d947a2bb1cb3a1c4c6ee7465
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / a2ltool-3.4.2-py3-none-win32.whl
| Download URL | a2ltool-3.4.2-py3-none-win32.whl |
|---|---|
| Size | 2.3 MB |
| Tags | Python 3 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
4b0d47989bf5db679548718c7409c8a625b4fb1da04b5b744bc6d961f4cfc8a5
|
|
BLAKE2b-256 checksum How to use checksums |
e8cfbb01a2080c31eba3c46e59fca45eb88483bc0c53ec8bf7552e196bf9aee4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / a2ltool-3.4.2-py3-none-musllinux_1_2_x86_64.whl
| Download URL | a2ltool-3.4.2-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
46b0f148bd3b162351f0587e066b04bdb8dca2292c507b0cd0e0b949b0024a36
|
|
BLAKE2b-256 checksum How to use checksums |
68a71e73630a63a5c99b9066e1cd16edfc0ca23500ef6d71ac806453bf7fd280
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / a2ltool-3.4.2-py3-none-manylinux_2_28_x86_64.whl
| Download URL | a2ltool-3.4.2-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
636fe0d8f4e2e14ab3d6b17b1ab464c7a3d58c7a79241b9783baa42d29db3d3e
|
|
BLAKE2b-256 checksum How to use checksums |
5b0b519094f5fc4b91409d8a16e4e8335a44c642452fbb976ca5c87a077b56f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / a2ltool-3.4.2-py3-none-macosx_11_0_arm64.whl
| Download URL | a2ltool-3.4.2-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.2 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6bc4a12551641a77b3c6006ad16a6b42244ee6a5eab849b99f4d927bef6b6cd8
|
|
BLAKE2b-256 checksum How to use checksums |
a49a7db69eb21a3a3d1befbf8d0192ec5689c35de53830f58a7038f17a20c34a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / a2ltool-3.4.2-py3-none-macosx_10_12_x86_64.whl
| Download URL | a2ltool-3.4.2-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.4 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
5ca6c1ca5956c1e118a5293ccce24148f042ed0ea7df9f59e80a8b0f2d618878
|
|
BLAKE2b-256 checksum How to use checksums |
562f386213ee3447928efa23e31e9e0a7b0e4b6958bc377e4037a38035b2e8e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency log