Complete documentation and reference guide
Security Recovery Core (SRC) is a production-ready, hardware-assisted firmware recovery system designed to prevent permanent system bricking. It operates at the lowest level of the system, before BIOS/UEFI initialization, providing automatic firmware backup and recovery capabilities.
| Developer: | SRC Project |
| Initial Release: | January 15, 2024 |
| Latest Version: | 1.0.0 |
| License: | MIT License |
| Repository: | GitHub |
| Written in: | C, Python |
| Platform: | Cross-platform (Linux, Windows, macOS) |
Security Recovery Core is a firmware-level recovery system that provides protection against permanent system bricking. Unlike software-based recovery solutions, SRC operates at the hardware level, making it immune to operating system failures, malware attacks, and software corruption.
| Feature | SRC | Chromebook Recovery | Dual-BIOS |
|---|---|---|---|
| Open Source | ✓ Yes | ✗ No | Varies |
| Cross-Platform | ✓ Yes | ✗ Chrome OS only | Platform-specific |
| USB Recovery | ✓ Yes | ✓ Yes | ✗ No |
| Automatic Backup | ✓ Yes | ✗ No | ✗ No |
| Cost | Free | Free (with device) | Hardware cost |
SRC was developed to address the growing problem of firmware bricking, particularly in embedded systems, servers, and custom hardware. The project aims to provide an open-source, cross-platform solution that can be easily integrated into various hardware platforms.
SRC operates in a reserved region of SPI flash memory, typically 512KB at offset 0x100000. The system is organized into several key components:
SRC uses a state machine to manage system states:
For detailed architecture information, see How It Works.
The security command-line tool provides user interface for:
/SECURITY_RECOVERY/
├── A.bin # Latest firmware backup
├── B.bin # Previous firmware backup
├── manifest.json # Metadata (board ID, timestamps)
├── signature.sig # Cryptographic signature
└── metadata.txt # Human-readable backup info
sudo ./tools/create_usb_structure.sh /dev/sdb1cd firmware && make PLATFORM=armmake flashcd ../cli && make installsudo security enableFor detailed installation instructions, see the Installation Guide.
| Command | Description |
|---|---|
security enable |
Enable recovery core |
security off <duration> |
Temporarily disable (e.g., security off 2h) |
security status |
Display system status |
security remove |
Safe removal with confirmations |
security install |
Interactive installation tutorial |
Time durations use the format: <number><unit>
s - seconds (e.g., 30s)m - minutes (e.g., 10m)h - hours (e.g., 2h)d - days (e.g., 7d)Protected Against:
Not Protected Against:
For detailed security information, see the Security Documentation.
To port SRC to a new platform, implement the platform abstraction layer functions in firmware/platform/<PLATFORM>/. See firmware/platform/generic/platform.c for reference implementation.
chmod 666 /dev/mtd0), run as administrator (Windows)For detailed troubleshooting, see the Troubleshooting Guide.
No. SRC only modifies firmware regions in SPI flash memory. User data partitions are never touched.
No. SRC runs at the hardware level, before the OS. Malware running in the operating system cannot disable or modify SRC.
Backups are skipped, but the system continues normally. Recovery requires USB device to be present.
Yes, if the server has EC/BMC access and SPI flash. SRC is designed for servers, embedded systems, and desktop PCs.
SRC runs before Secure Boot, so they operate at different levels. They can coexist, but configuration may be required.