A high-performance .NET library for parsing, editing, and converting Android Sparse images.
dotnet add package FirmwareKit.Sparseusing FirmwareKit.Sparse.Core;
using FirmwareKit.Sparse.Streams;
// Parse a sparse image file
using var sparseFile = SparseFile.FromImageFile("system.simg");
// Access as a read-only Stream
using var stream = new SparseStream(sparseFile);
var buffer = new byte[4096];
stream.Read(buffer, 0, buffer.Length);using FirmwareKit.Sparse.Utils;
SparseImageConverter.ConvertSparseToRaw(new[] { "system.simg" }, "system.raw.img");using FirmwareKit.Sparse.Core;
using System.IO;
using var sparseFile = SparseFile.FromImageFile("massive_system.simg");
// Split into multiple sparse files, each max 512MB
var smallerFiles = sparseFile.Resparse(512 * 1024 * 1024);
for (int i = 0; i < smallerFiles.Count; i++)
{
using var fs = new FileStream($"part_{i}.simg", FileMode.Create);
smallerFiles[i].WriteToStream(fs);
}This project is licensed under the MIT License.