UBI on Zephyr¶
Unsorted Block Images (UBI) is a volume management layer for raw flash devices running Zephyr RTOS. It provides wear-leveling, bad block management, and multiple logical volumes on a single flash partition — similar to what LVM does for block devices.
Note
Release status: v1.0.0. The library API and the on-flash format (plain and secure) are stable; breaking changes require a major version bump. CI, coverage, and metrics badges live on the repository README. See the CHANGELOG for the full release history.
Where to start¶
Pick the card that matches what you came here to do.
📖 New here? Understand what UBI is and whether it fits your project. |
🔧 Want to integrate? Build, configure, and write your first volume. |
🏗 How does it work? Read the design — plain UBI and Secure UBI explained. |
📚 Looking up details? Reference material for implementers and auditors. |
Getting Started
Architecture
Reference
- API Reference
- Kconfig Reference
- Error Codes
- Glossary
- Secure On-Flash Format Specification
- 1. 30-second summary
- 2. High-level picture
- 3. Scope
- 4. Terminology and invariants
- 5. Cryptographic profile
- 6. Key material and key hierarchy
- 7. Secure record formats
- 8. Nonce and AAD
- 9. Freshness and recovery state
- 10. Initialization and recovery
- 11. Secure write paths
- 12. Secure read paths
- 13. Key lifecycle, inventory, and retirement
- 14. Events, policy, and read-only transitions
- 15. Kconfig surface
- 16. API shape (summary)
- 17. Cost model
- 18. References
- 19. Secure volume lifecycle
- 20. Secure recovery scenarios
- 21. Runtime policy
- Appendix A. Illustrative API surface with Doxygen
Project