Skip to content

Uotan-Dev/FirmwareKit.CPIO

Repository files navigation

FirmwareKit.CPIO

FirmwareKit.CPIO is a native C# archive library focused on firmware workflows.

Features

  • Read and write CPIO archives (newc, crc, odc, binary)
  • Read and write TAR archives
  • List archive entries with metadata summaries
  • Verify archive structure and checksums
  • Extract files safely with path traversal protection
  • Support stream-based processing for large archives and multi-volume scenarios

Supported Frameworks

  • net10.0
  • net8.0
  • net6.0
  • netstandard2.1

Framework Notes

  • Full CPIO support is available on all target frameworks.
  • TAR support requires the runtime to provide System.Formats.Tar APIs (typically .NET 7.0+).
  • On net6.0 and netstandard2.1, TAR operations may throw NotSupportedException depending on runtime capabilities.

Install

dotnet add package FirmwareKit.CPIO

Quick Start

Read an archive

using FirmwareKit.CPIO;

var archive = new CpioArchive();
var entries = archive.ReadAll(File.OpenRead("archive.cpio"));

foreach (var entry in entries)
{
    Console.WriteLine(entry.Name);
}

Extract to a directory

using FirmwareKit.CPIO;
using FirmwareKit.CPIO.Extraction;

var archive = new CpioArchive();
archive.ExtractToDirectory(
    File.OpenRead("archive.cpio"),
    "output",
    new ExtractOptions
    {
        MakeDirectories = true,
        Overwrite = true,
    });

Create a CPIO archive

using FirmwareKit.CPIO;
using FirmwareKit.CPIO.Model;

var archive = new CpioArchive();
var entries = new[]
{
    new ArchiveEntry
    {
        Name = "hello.txt",
        Data = System.Text.Encoding.UTF8.GetBytes("hello from FirmwareKit.CPIO"),
        Metadata = new ArchiveEntryMetadata
        {
            FileType = CpioFileType.Regular,
            UnixPermissions = 0x1A4,
            LinkCount = 1,
        },
    },
};

using var output = File.Create("sample.cpio");
archive.SaveAll(output, entries, ArchiveFormat.NewAscii);

Package Metadata

  • Package Id: FirmwareKit.CPIO
  • License: MIT
  • Symbols: .snupkg included

License

LGPL v2.1

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors