Tool
AALpy
General-purpose Python automata-learning library that infers deterministic, non-deterministic, stochastic and pushdown models of black-box systems from active queries or passive traces. Its README links a separate Bluetooth Low Energy study whose repository reports learned connection and legacy-pairing state machines; message formats are not inferred.
- Targets
- Protocol
- Category
- Protocol analysis tools
- Relationship
- Foundation tool
- Sources reviewed
Requirements & limits
- Latest PyPI release: 1.6.2, uploaded 2026-08-03, requiring Python >=3.6. The reviewed master branch identifies itself as unreleased 2.0.0 and requires Python 3.10+; upstream says 1.6.2 is the last release for older Python versions.
- Active learning needs a user-written system-under-learning adapter, an input alphabet and an equivalence oracle; passive learning needs traces in the documented format. Learned models are bounded by the chosen alphabet, abstraction and oracle.
- pydot is the only Python dependency; visualizing models needs Graphviz on the PATH. MIT-licensed.
- The ble-learning study repository is separate: it needs an nRF52840 dongle or development kit flashed with the supplied SweynTooth-derived firmware, Python 3.9 and its listed libraries, and it has no repository license file.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · DES-Lab/AALpy · Revision 335c50a
- pyproject.toml GitHub · DES-Lab/AALpy · Revision 335c50a
- LICENCE.txt GitHub · DES-Lab/AALpy · Revision 335c50a
- https://github.com/DES-Lab/AALpy/releases/tag/v.1.6.2
- https://pypi.org/project/aalpy/1.6.2/
- README.md GitHub · apferscher/ble-learning · Revision febd774
More in Protocols
- rtl_433 · Tool
- Blackbox Protobuf · Tool
- furiousMAC Continuity · Tool
- opendbc · Tool
- FISSURE · Tool
- friTap · Tool