Releases: RaspberryFpc/pibackup
v2.0.2
v2.0.1
[2.0.1] – 2026-05-08
🔧 Internal Architecture Changes
-
Reworked partition restore handling architecture
-
StringGridno longer stores internal restore variables or partition state -
Introduced dedicated internal restore record structure for:
- partition metadata
- restore parameters
-
StringGridis now used strictly as:- display layer only
- read-only visualization component
- separation of UI and restore logic for improved reliability
-
Reduced risk of:
- UI-state desynchronization
- accidental data corruption
- invalid restore state caused by grid modifications
🛠 Restore & Boot Configuration Improvements
-
Improved automatic adjustment of:
- MBR
cmdline.txtfstab
-
More reliable handling of:
- PARTUUID replacement
- boot device migration
- restored system consistency
-
Improved detection and replacement logic during image restore process
⚠️ Safety Improvements
- Added confirmation dialog before writing images to target devices
- Prevents accidental overwrite of disks or partitions
- Additional safeguard before destructive write operations are executed
🔒 Stability Improvements
- Improved internal consistency between restore engine and UI
- Cleaner separation between runtime data and presentation layer
- Reduced hidden side effects caused by UI component state usage
v2.0.0
Changelog
All notable changes to this project are documented in this file.
[2.0.0] – 2026-05-02
🚀 Major Release – Unified Command System
-
Introduced a unified delete command system with clear semantic commands:
filefileintreeallintreedir
-
Clear separation between:
- file operations
- directory operations
- recursive tree operations
-
Improved readability and maintainability of exclude files
-
Deterministic and simplified command behavior
-
Strict command-based execution model without external dependencies
🔒 Security Critical Change
-
❗ Removed all shell command execution from exclude system
-
The system no longer supports:
- shell calls
- external command execution
system()/exec()usage- shell expansion or chaining
-
All operations are now:
- internally parsed
- executed via filesystem API only
- strictly sandboxed within the MountPoint
-
Eliminated attack vectors:
- command injection
- shell expansion exploits
- environment variable injection
- argument injection via exclude file
🔄 Syntax Changes
-
Standardized exclude file format:
-
No shell parsing
-
No escaping or chaining
-
Wildcards supported internally:
*,?
✨ Improvements
-
Clear semantic behavior of commands:
-
file→ single file or wildcard match -
fileintree→ recursive file pattern deletion -
allintree→ deletes contents of a directory (keeps directory) -
dir→ deletes directory including all contents -
Reduced ambiguity in destructive operations
-
Consistent and predictable execution behavior
-
Improved path handling relative to MountPoint
🛠 Engine Improvements
- Refactored delete engine into direct filesystem dispatcher
- Removed dependency on external tools and shell
- Optimized directory traversal logic
- Consolidated duplicate traversal implementations
- Improved recursive deletion reliability
- Simplified internal logic for maintainability
🧪 Editor Improvements
- ✅ Added syntax validation in Exclude Editor before saving
- Prevents invalid or unsafe entries at edit time
- Detects:
- invalid commands
- malformed syntax (
COMMAND = PATH) - illegal or ambiguous paths
- Improves user feedback and reduces runtime errors
🔒 Safety Enhancements
- Strong MountPoint boundary enforcement
- Guaranteed prevention of path escaping outside image root
- All exclude entries treated strictly as data (never executable)
- Improved validation of parsed entries
⚠️ Breaking Changes
- Removed all legacy and shell-based command support
- Old exclude files are no longer compatible
- Migration to new syntax required
🔒 Safety & Stability
- Improved handling of non-existent targets
- More predictable behavior during deletion operations
- Clear distinction between destructive and non-destructive actions
v1.8.0
[1.8.0] – 2026-04-29
🚀 Highlights
- Improved reliability and consistency of MBR and fstab handling
- Safer restore process with deterministic behavior
- New exclude file editor with built-in syntax validation
✨ Improvements
- Checkboxes
deletepartition3anddeletepartition4are now only displayed if the corresponding partitions exist - The cancel function for
Create ImageandWrite Imagenow prompts for confirmation - Introduced an internal editor for exclude files
🛠 Validation & Processing
- Added syntax validation when processing exclude files
💽 Improved MBR and fstab handling
Reworked fstab generation logic:
- System partitions (p1/p2) are always taken from the image
- Additional partitions (p3+) are preserved from the target device when available
- Automatic fallback to image entries if device entries are missing, only if the fallback is mountable
- Introduced consistent PARTUUID handling
- Unified mapping between MBR, fstab, and cmdline
Improved MBR processing:
- Clear separation between image-defined structure and device-specific data
- Avoids unintended disk signature changes
- Ensures deterministic restore behavior
Increased robustness:
- Better handling of incomplete or broken existing fstab files
- More reliable restore process on systems with additional partitions