bsdiff-android
Bsdiff/bspatch implementation with Android BSDF2 format support. Compatible with Android OTA payloads.
Features
- Classic bsdiff/bspatch (raw format)
- BSDIFF40 format (BZ2 compressed, compatible with original tools)
- Android BSDF2 format (Brotli/BZ2/None compression)
- Fast suffix array construction
Usage Examples
use bsdiff_android as bsdiff;
Classic BSDIFF40 Format
use ;
// Generate BSDIFF40 patch (compatible with original bsdiff tools)
let mut patch = Vecnew;
diff_bsdiff40?;
// Apply patch
let mut result = Vecnew;
patch?;
Android BSDF2 Format (OTA Updates)
use ;
// Generate BSDF2 patch with Brotli compression (Android standard)
let mut patch = Vecnew;
diff_bsdf2_uniform?;
// Apply BSDF2 patch
let mut result = Vecnew;
patch_bsdf2?;
File Operations
use ;
use fs;
Mixed Compression (Advanced)
use ;
// Use different compression for each stream
let mut patch = Vecnew;
diff_bsdf2?;
API Summary
| Use Case | Generation | Application |
|---|---|---|
| Raw format | diff() |
patch() |
| Classic BSDIFF40 | diff_bsdiff40() |
patch() |
| Android BSDF2 | diff_bsdf2_uniform() |
patch_bsdf2() |
Compression Types
None // No compression
Bz2 // BZ2 compression
Brotli // Brotli (recommended for Android)
License
BSD-2-Clause
Based on Colin Percival's bsdiff/bspatch algorithm with Android BSDF2 extensions.