From 7b0e720febf5fc03fbbd29f7b84bb21a59fee04a Mon Sep 17 00:00:00 2001 From: Hawkynt Date: Fri, 23 Oct 2026 14:20:51 +0200 Subject: [PATCH 1/7] + Android boot image and vbmeta (AVB 2.0), read/write AndroidBootImage reads and writes boot/recovery images with header v0-v4 and vendor_boot v3/v4. The components are named as unpack_bootimg names them, and the header goes to metadata.ini. Writes reproduce mkbootimg's layout byte for byte. Edits refuse signed images (a v4 boot signature or an AVB footer) and any layout mkbootimg could not have produced. AndroidVbmeta reads vbmeta images and verifies the hash and the RSA signature. Each descriptor becomes a member. Only unsigned (NONE) images are written or edited: re-signing would need the private key, so a signed image stays read-only. FirmwareCommon holds the list/extract plumbing, a CRC-32 helper and the embedded-payload helper that the firmware containers share. Oracles: mkbootimg/unpack_bootimg give byte-identical output in both directions. avbtool info_image reads what we write, and our unsigned images match avbtool's byte for byte. Signatures are checked against signed vectors made with avbtool, see Compression.Tests/Firmware/ReferenceVectors/README.md. CI's Linux leg installs mkbootimg and fetches avbtool at a pinned AOSP revision. Sourcing: rung 1. The structures are converted from AOSP mkbootimg (bootimg.h BSD-3-Clause, mkbootimg.py/unpack_bootimg.py Apache-2.0) and AOSP avb (MIT); notices are next to the code. --- .github/workflows/ci.yml | 8 + .../AndroidBootImageMkbootimgOracleTests.cs | 212 +++++++ .../AndroidBoot/AndroidBootImageTests.cs | 366 ++++++++++++ .../AndroidBoot/AndroidVbmetaTests.cs | 206 +++++++ Compression.Tests/Compression.Tests.csproj | 4 + Compression.Tests/Firmware/FirmwareVectors.cs | 15 + .../Firmware/ReferenceVectors/README.md | 31 + .../Firmware/ReferenceVectors/signed.vbmeta | Bin 0 -> 2048 bytes .../Firmware/ReferenceVectors/unsigned.vbmeta | Bin 0 -> 576 bytes .../AndroidBootImage.cs | 534 ++++++++++++++++++ .../AndroidBootImageFormatDescriptor.cs | 290 ++++++++++ .../AndroidBootImageMetadata.cs | 215 +++++++ .../THIRD-PARTY-NOTICE.mkbootimg.txt | 262 +++++++++ .../AndroidVbmetaFormatDescriptor.cs | 255 +++++++++ .../AvbDescriptorText.cs | 109 ++++ .../FileFormat.AndroidVbmeta/AvbVbmeta.cs | 241 ++++++++ .../THIRD-PARTY-NOTICE.avb.txt | 32 ++ .../EmbeddedPayload.cs | 89 +++ .../FirmwareArchive.cs | 82 +++ .../FirmwareCrc32.cs | 30 + Hawkynt.FileFormats.FileSystems/README.md | 2 + docs/catalogue/our-registry.csv | 2 + docs/catalogue/reference-formats.csv | 4 +- 23 files changed, 2987 insertions(+), 2 deletions(-) create mode 100644 Compression.Tests/AndroidBoot/AndroidBootImageMkbootimgOracleTests.cs create mode 100644 Compression.Tests/AndroidBoot/AndroidBootImageTests.cs create mode 100644 Compression.Tests/AndroidBoot/AndroidVbmetaTests.cs create mode 100644 Compression.Tests/Firmware/FirmwareVectors.cs create mode 100644 Compression.Tests/Firmware/ReferenceVectors/README.md create mode 100644 Compression.Tests/Firmware/ReferenceVectors/signed.vbmeta create mode 100644 Compression.Tests/Firmware/ReferenceVectors/unsigned.vbmeta create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImage.cs create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageFormatDescriptor.cs create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageMetadata.cs create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/THIRD-PARTY-NOTICE.mkbootimg.txt create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AndroidVbmetaFormatDescriptor.cs create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AvbDescriptorText.cs create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AvbVbmeta.cs create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/THIRD-PARTY-NOTICE.avb.txt create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/EmbeddedPayload.cs create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/FirmwareArchive.cs create mode 100644 Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/FirmwareCrc32.cs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1c15acd10..5a9723a38 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -174,6 +174,14 @@ jobs: # reiser4progs owns Reiser4: fsck.reiser4 and debugfs.reiser4 judge every volume the # Reiser4 writer creates or edits, in the gate below. sudo apt-get install -y reiser4progs + # mkbootimg is AOSP's own boot image tool pair: the Android boot image writer must + # reproduce mkbootimg's bytes, and unpack_bootimg must read back what it writes. + sudo apt-get install -y mkbootimg + # avbtool judges vbmeta images; no distribution packages it, so the script is fetched + # at a pinned AOSP revision. + curl -sSfL "https://android.googlesource.com/platform/external/avb/+/c5066a96caa7bf4150c0a8cc8cc14ab81733fdc7/avbtool.py?format=TEXT" \ + | base64 -d > "$RUNNER_TEMP/avbtool.py" \ + && echo "CWB_AVBTOOL=$RUNNER_TEMP/avbtool.py" >> "$GITHUB_ENV" || true sudo apt-get install -y "linux-modules-extra-$(uname -r)" || true sudo modprobe gfs2 || true diff --git a/Compression.Tests/AndroidBoot/AndroidBootImageMkbootimgOracleTests.cs b/Compression.Tests/AndroidBoot/AndroidBootImageMkbootimgOracleTests.cs new file mode 100644 index 000000000..05b4c8c80 --- /dev/null +++ b/Compression.Tests/AndroidBoot/AndroidBootImageMkbootimgOracleTests.cs @@ -0,0 +1,212 @@ +#pragma warning disable CS1591 +using System.Diagnostics; +using System.Text; +using Win32Exception = System.ComponentModel.Win32Exception; + +namespace Compression.Tests.AndroidBoot; + +/// +/// The Android boot image descriptor judged by AOSP's own tools: mkbootimg builds an image, +/// the descriptor reads it, and writing the components it read back out must reproduce +/// mkbootimg's bytes exactly; unpack_bootimg must extract from our images exactly the +/// components we put in. +/// +/// +/// The tools are found as mkbootimg / unpack_bootimg on the PATH (Debian/Ubuntu package +/// mkbootimg), or through CWB_MKBOOTIMG / CWB_UNPACK_BOOTIMG naming either an +/// executable or the .py script from https://android.googlesource.com/platform/system/tools/mkbootimg. +/// Without them the tests are ignored. +/// +[TestFixture] +[Category("ArchiveExternal")] +public sealed class AndroidBootImageMkbootimgOracleTests { + + private string _dir = null!; + + [SetUp] + public void SetUp() { + this._dir = Path.Combine(Path.GetTempPath(), "cwb_mkbootimg_" + Guid.NewGuid().ToString("N")[..8]); + Directory.CreateDirectory(this._dir); + } + + [TearDown] + public void TearDown() { + try { Directory.Delete(this._dir, true); } catch { /* best effort */ } + } + + private static readonly Lazy Mkbootimg = new(() => FindTool("CWB_MKBOOTIMG", "mkbootimg")); + private static readonly Lazy UnpackBootimg = new(() => FindTool("CWB_UNPACK_BOOTIMG", "unpack_bootimg")); + + /// Runs a script with its own directory importable, which an embedded Python's ._pth would otherwise prevent. + internal const string RunScript = "import os, runpy, sys; sys.argv = sys.argv[1:]; sys.path.insert(0, os.path.dirname(os.path.abspath(sys.argv[0]))); runpy.run_path(sys.argv[0], run_name='__main__')"; + + private static string[]? FindTool(string variable, string name) { + var configured = Environment.GetEnvironmentVariable(variable); + var candidates = new List(); + if (!string.IsNullOrWhiteSpace(configured)) { + if (configured.EndsWith(".py", StringComparison.OrdinalIgnoreCase)) { + candidates.Add(["python3", "-c", RunScript, configured]); + candidates.Add(["python", "-c", RunScript, configured]); + } else candidates.Add([configured]); + } + candidates.Add([name]); + foreach (var c in candidates) + try { + if (Run(c, ["--help"]).ExitCode == 0) return c; + } catch (Win32Exception) { + // not there + } + return null; + } + + private static (int ExitCode, string StdOut, string StdErr) Run(string[] tool, IEnumerable arguments) { + var start = new ProcessStartInfo(tool[0]) { + RedirectStandardOutput = true, RedirectStandardError = true, UseShellExecute = false, CreateNoWindow = true, + }; + foreach (var a in tool.Skip(1).Concat(arguments)) start.ArgumentList.Add(a); + using var process = Process.Start(start)!; + var stdout = process.StandardOutput.ReadToEndAsync(); + var stderr = process.StandardError.ReadToEnd(); + process.WaitForExit(); + return (process.ExitCode, stdout.Result, stderr); + } + + private static string[] Require(Lazy tool, string name) { + if (tool.Value is null) Assert.Ignore($"{name} not found (apt install mkbootimg, or set CWB_MKBOOTIMG / CWB_UNPACK_BOOTIMG)."); + return tool.Value!; + } + + private string Save(string name, byte[] data) { + var path = Path.Combine(this._dir, name); + File.WriteAllBytes(path, data); + return path; + } + + private byte[] RunMkbootimg(IEnumerable arguments, string outputFlag = "--output") { + var output = Path.Combine(this._dir, "reference.img"); + var (code, _, stderr) = Run(Require(Mkbootimg, "mkbootimg"), arguments.Concat([outputFlag, output])); + Assert.That(code, Is.Zero, $"mkbootimg failed:\n{stderr}"); + return File.ReadAllBytes(output); + } + + private static byte[] B(int length, int seed) => AndroidBootImageTests.Bytes(length, seed); + + private static IEnumerable BootCases() { + yield return new TestCaseData(0, 2048, false).SetName("GivenMkbootimgV0_WhenReadAndRewritten_ThenTheBytesAreIdentical"); + yield return new TestCaseData(0, 4096, true).SetName("GivenMkbootimgV0WithSecondAndLongCmdline_WhenReadAndRewritten_ThenTheBytesAreIdentical"); + yield return new TestCaseData(1, 2048, true).SetName("GivenMkbootimgV1WithRecoveryDtbo_WhenReadAndRewritten_ThenTheBytesAreIdentical"); + yield return new TestCaseData(2, 4096, true).SetName("GivenMkbootimgV2WithDtb_WhenReadAndRewritten_ThenTheBytesAreIdentical"); + yield return new TestCaseData(3, 4096, false).SetName("GivenMkbootimgV3_WhenReadAndRewritten_ThenTheBytesAreIdentical"); + yield return new TestCaseData(4, 4096, false).SetName("GivenMkbootimgV4_WhenReadAndRewritten_ThenTheBytesAreIdentical"); + } + + [TestCaseSource(nameof(BootCases))] + public void MkbootimgBootImage_ReadsAndRewritesIdentically(int version, int page, bool extras) { + var kernel = B(12345, 1); + var ramdisk = B(6789, 2); + var args = new List { + "--header_version", version.ToString(System.Globalization.CultureInfo.InvariantCulture), + "--kernel", this.Save("k", kernel), "--ramdisk", this.Save("r", ramdisk), + "--os_version", "13.0.2", "--os_patch_level", "2024-05", + "--cmdline", extras ? "console=ttyMSM0,115200n8 " + new string('x', 600) : "console=ttyS0 quiet", + }; + var expected = new Dictionary { ["kernel"] = kernel, ["ramdisk"] = ramdisk }; + if (version < 3) { + args.AddRange(["--pagesize", page.ToString(System.Globalization.CultureInfo.InvariantCulture), "--base", "0x80000000", "--board", "cwb-board"]); + if (extras && version < 3) { + var second = B(999, 3); + args.AddRange(["--second", this.Save("s", second)]); + expected["second"] = second; + } + if (extras && version >= 1) { + var dtbo = B(2222, 4); + args.AddRange(["--recovery_dtbo", this.Save("o", dtbo)]); + expected["recovery_dtbo"] = dtbo; + } + if (version == 2) { + var dtb = B(3333, 5); + args.AddRange(["--dtb", this.Save("d", dtb)]); + expected["dtb"] = dtb; + } + } + var reference = this.RunMkbootimg(args); + + var ours = AndroidBootImageTests.Extract(reference); + foreach (var (name, data) in expected) + Assert.That(ours[name], Is.EqualTo(data), $"component '{name}' read differently from what mkbootimg stored"); + Assert.That(ours.Keys.Except(["metadata.ini"]), Is.EquivalentTo(expected.Keys)); + Assert.That(Encoding.UTF8.GetString(ours["metadata.ini"]), Does.Contain("os_version = 13.0.2").And.Contain("os_patch_level = 2024-05")); + if (version < 3) Assert.That(Encoding.UTF8.GetString(ours["metadata.ini"]), Does.Contain("image_id_valid = true")); + + Assert.That(AndroidBootImageTests.RebuildFromExtraction(reference), Is.EqualTo(reference), + "the components and header read from mkbootimg's image did not write back to the same bytes"); + } + + [TestCase(3), TestCase(4)] + public void GivenMkbootimgVendorBoot_WhenReadAndRewritten_ThenTheBytesAreIdentical(int version) { + var dtb = B(4321, 6); + var args = new List { + "--header_version", version.ToString(System.Globalization.CultureInfo.InvariantCulture), + "--pagesize", "4096", "--base", "0x40000000", "--board", "vendorbrd", + "--vendor_cmdline", "androidboot.console=ttyS0 loglevel=4", "--dtb", this.Save("d", dtb), + }; + var expected = new Dictionary { ["dtb"] = dtb }; + var platform = B(7000, 7); + args.AddRange(["--vendor_ramdisk", this.Save("vr", platform)]); + if (version == 3) expected["vendor_ramdisk"] = platform; + else { + var dlkm = B(1234, 8); + var bootconfig = Encoding.ASCII.GetBytes("androidboot.hardware=cwb\n"); + args.AddRange(["--vendor_bootconfig", this.Save("bc", bootconfig), + "--ramdisk_type", "dlkm", "--ramdisk_name", "dlkm", "--board_id0", "0xC0FFEE", "--vendor_ramdisk_fragment", this.Save("dl", dlkm)]); + expected["vendor_ramdisk00"] = platform; + expected["vendor_ramdisk01"] = dlkm; + expected["bootconfig"] = bootconfig; + } + var reference = this.RunMkbootimg(args, "--vendor_boot"); + + var ours = AndroidBootImageTests.Extract(reference); + foreach (var (name, data) in expected) + Assert.That(ours[name], Is.EqualTo(data), $"component '{name}' read differently from what mkbootimg stored"); + if (version == 4) + Assert.That(Encoding.UTF8.GetString(ours["metadata.ini"]), Does.Contain("[vendor_ramdisk01]\ntype = 3\nname = dlkm\nboard_id = 0x00C0FFEE,")); + + Assert.That(AndroidBootImageTests.RebuildFromExtraction(reference), Is.EqualTo(reference)); + } + + [Test] + public void GivenAnImageBuiltByHand_WhenMkbootimgBuildsTheSame_ThenTheBytesAreIdentical() { + var kernel = B(20000, 9); + var ramdisk = B(3000, 10); + var dtb = B(500, 11); + var reference = this.RunMkbootimg([ + "--header_version", "2", "--kernel", this.Save("k", kernel), "--ramdisk", this.Save("r", ramdisk), "--dtb", this.Save("d", dtb), + "--pagesize", "2048", "--cmdline", "root=/dev/ram0", "--board", "hand", "--os_version", "10", "--os_patch_level", "2020-01", + ]); + var ours = AndroidBootImageTests.Create(("kernel", kernel), ("ramdisk", ramdisk), ("dtb", dtb), ("metadata.ini", AndroidBootImageTests.Ini( + "[android_boot]\nheader_version = 2\ncmdline = root=/dev/ram0\nboard = hand\nos_version = 10.0.0\nos_patch_level = 2020-01\n"))); + Assert.That(ours, Is.EqualTo(reference)); + } + + [Test] + public void GivenAnEditedImage_WhenUnpackBootimgReadsIt_ThenItExtractsTheNewComponents() { + var unpack = Require(UnpackBootimg, "unpack_bootimg"); + var image = AndroidBootImageTests.Create(("kernel", B(5000, 12)), ("ramdisk", B(800, 13)), ("recovery_dtbo", B(900, 14)), + ("metadata.ini", AndroidBootImageTests.Ini("[android_boot]\nheader_version = 1\ncmdline = a=b\n"))); + var newRamdisk = B(4100, 15); + using var ms = new MemoryStream(); + ms.Write(image); + new FileFormat.AndroidBootImage.AndroidBootImageFormatDescriptor().Add(ms, [Compression.Registry.ArchiveInputInfo.InMemory("ramdisk", newRamdisk)]); + + var path = this.Save("edited.img", ms.ToArray()); + var outDir = Path.Combine(this._dir, "out"); + var (code, stdout, stderr) = Run(unpack, ["--boot_img", path, "--out", outDir]); + Assert.That(code, Is.Zero, $"unpack_bootimg rejected our image:\n{stderr}"); + Assert.Multiple(() => { + Assert.That(File.ReadAllBytes(Path.Combine(outDir, "kernel")), Is.EqualTo(B(5000, 12))); + Assert.That(File.ReadAllBytes(Path.Combine(outDir, "ramdisk")), Is.EqualTo(newRamdisk)); + Assert.That(File.ReadAllBytes(Path.Combine(outDir, "recovery_dtbo")), Is.EqualTo(B(900, 14))); + Assert.That(stdout, Does.Contain("command line args: a=b")); + }); + } +} diff --git a/Compression.Tests/AndroidBoot/AndroidBootImageTests.cs b/Compression.Tests/AndroidBoot/AndroidBootImageTests.cs new file mode 100644 index 000000000..ebfd0b101 --- /dev/null +++ b/Compression.Tests/AndroidBoot/AndroidBootImageTests.cs @@ -0,0 +1,366 @@ +#pragma warning disable CS1591 +using System.Buffers.Binary; +using System.Security.Cryptography; +using System.Text; +using Compression.Registry; +using FileFormat.AndroidBootImage; + +namespace Compression.Tests.AndroidBoot; + +/// +/// Android boot / vendor_boot images: the layout, header fields and image id the descriptor +/// writes, how it reads its own and hand-built images back, and how edits behave — including +/// the refusals for signed and non-canonical images. +/// +[TestFixture] +public sealed class AndroidBootImageTests { + + private static readonly AndroidBootImageFormatDescriptor Descriptor = new(); + + internal static byte[] Bytes(int length, int seed) { + var data = new byte[length]; + new Random(seed).NextBytes(data); + return data; + } + + internal static byte[] Create(params (string Name, byte[] Data)[] inputs) { + using var ms = new MemoryStream(); + Descriptor.Create(ms, [.. inputs.Select(i => ArchiveInputInfo.InMemory(i.Name, i.Data))], new FormatCreateOptions()); + return ms.ToArray(); + } + + internal static byte[] Ini(string text) => Encoding.UTF8.GetBytes(text.Replace("\r", "")); + + internal static Dictionary Extract(byte[] image) { + var dir = Path.Combine(Path.GetTempPath(), "cwb_abi_" + Guid.NewGuid().ToString("N")[..10]); + try { + using (var ms = new MemoryStream(image)) Descriptor.Extract(ms, dir, null, null); + return Directory.GetFiles(dir).ToDictionary(f => Path.GetFileName(f), File.ReadAllBytes, StringComparer.Ordinal); + } finally { + try { Directory.Delete(dir, true); } catch { /* best effort */ } + } + } + + internal static byte[] RebuildFromExtraction(byte[] image) + => Create([.. Extract(image).Select(kv => (kv.Key, kv.Value))]); + + private static uint U32(byte[] d, int o) => BinaryPrimitives.ReadUInt32LittleEndian(d.AsSpan(o)); + + // ── layout ─────────────────────────────────────────────────────────── + + [Test, Category("HappyPath")] + public void GivenKernelAndRamdisk_WhenCreatedWithDefaults_ThenTheV0HeaderCarriesMkbootimgDefaults() { + var kernel = Bytes(3000, 1); + var ramdisk = Bytes(100, 2); + var image = Create(("kernel", kernel), ("ramdisk", ramdisk)); + + Assert.Multiple(() => { + Assert.That(Encoding.ASCII.GetString(image, 0, 8), Is.EqualTo("ANDROID!")); + Assert.That(U32(image, 8), Is.EqualTo(3000)); + Assert.That(U32(image, 12), Is.EqualTo(0x10008000u), "kernel address = base + kernel_offset"); + Assert.That(U32(image, 16), Is.EqualTo(100)); + Assert.That(U32(image, 20), Is.EqualTo(0x11000000u), "ramdisk address = base + ramdisk_offset"); + Assert.That(U32(image, 28), Is.Zero, "no second stage, so its address is zero as mkbootimg writes it"); + Assert.That(U32(image, 32), Is.EqualTo(0x10000100u)); + Assert.That(U32(image, 36), Is.EqualTo(2048)); + Assert.That(U32(image, 40), Is.Zero); + // header page + 2 kernel pages + 1 ramdisk page + Assert.That(image.Length, Is.EqualTo(2048 * 4)); + Assert.That(image.AsSpan(2048, 3000).ToArray(), Is.EqualTo(kernel)); + Assert.That(image.AsSpan(2048 * 3, 100).ToArray(), Is.EqualTo(ramdisk)); + }); + } + + [Test, Category("HappyPath")] + public void GivenComponents_WhenCreated_ThenTheImageIdIsTheMkbootimgSha1() { + var kernel = Bytes(10, 3); + var ramdisk = Bytes(20, 4); + var image = Create(("kernel", kernel), ("ramdisk", ramdisk)); + + using var sha = IncrementalHash.CreateHash(HashAlgorithmName.SHA1); + foreach (var part in new[] { kernel, ramdisk, [] }) { + sha.AppendData(part); + sha.AppendData(BitConverter.GetBytes((uint)part.Length)); + } + var expected = new byte[32]; + sha.GetHashAndReset().CopyTo(expected, 0); + Assert.That(image.AsSpan(576, 32).ToArray(), Is.EqualTo(expected)); + } + + [TestCase(2048), TestCase(4096)] + [Category("Boundary")] + public void GivenAKernelOfExactlyOnePage_WhenCreated_ThenNoPaddingPageIsAdded(int page) { + var image = Create(("kernel", Bytes(page, 5)), ("metadata.ini", Ini($"[android_boot]\npage_size = {page}\n"))); + Assert.That(image.Length, Is.EqualTo(2 * page)); + } + + [Test, Category("Boundary")] + public void GivenAKernelOfOnePagePlusOneByte_WhenCreated_ThenItTakesTwoPages() { + var image = Create(("kernel", Bytes(2049, 6))); + Assert.That(image.Length, Is.EqualTo(3 * 2048)); + } + + [Test, Category("Boundary")] + public void GivenNoInputs_WhenCreated_ThenTheImageIsOneHeaderPageAndListsOnlyMetadata() { + var image = Create(); + Assert.That(image.Length, Is.EqualTo(2048)); + using var ms = new MemoryStream(image); + Assert.That(Descriptor.List(ms, null).Select(e => e.Name), Is.EqualTo(new[] { "metadata.ini" })); + } + + [TestCase(0), TestCase(1), TestCase(2), TestCase(3), TestCase(4)] + [Category("RoundTrip")] + public void GivenEachBootHeaderVersion_WhenExtractedAndRecreated_ThenTheBytesAreIdentical(int version) { + var inputs = new List<(string, byte[])> { + ("kernel", Bytes(5000, 10 + version)), ("ramdisk", Bytes(777, 20 + version)), + ("metadata.ini", Ini($"[android_boot]\nheader_version = {version}\ncmdline = console=ttyMSM0 androidboot.hardware=qcom\nos_version = 12.1.0\nos_patch_level = 2023-07\n" + + (version < 3 ? "board = cwbboard\n" : ""))), + }; + if (version < 3) inputs.Add(("second", Bytes(300, 30))); + if (version is 1 or 2) inputs.Add(("recovery_dtbo", Bytes(1500, 31))); + if (version == 2) inputs.Add(("dtb", Bytes(2100, 32))); + if (version == 4) inputs.Add(("boot_signature", Bytes(4096, 33))); + var image = Create([.. inputs]); + + Assert.That(RebuildFromExtraction(image), Is.EqualTo(image)); + } + + [TestCase(3), TestCase(4)] + [Category("RoundTrip")] + public void GivenEachVendorBootVersion_WhenExtractedAndRecreated_ThenTheBytesAreIdentical(int version) { + var inputs = new List<(string, byte[])> { + ("dtb", Bytes(3000, 40)), + ("metadata.ini", Ini($"[android_vendor_boot]\nheader_version = {version}\npage_size = 4096\ncmdline = androidboot.console=ttyS0\nboard = vendorbrd\n")), + }; + if (version == 3) inputs.Add(("vendor_ramdisk", Bytes(9000, 41))); + else { + inputs.Add(("vendor_ramdisk00", Bytes(1000, 42))); + inputs.Add(("vendor_ramdisk01", Bytes(2001, 43))); + inputs.Add(("bootconfig", Encoding.ASCII.GetBytes("androidboot.hardware=cwb\n"))); + } + var image = Create([.. inputs]); + + Assert.That(Encoding.ASCII.GetString(image, 0, 8), Is.EqualTo("VNDRBOOT")); + Assert.That(RebuildFromExtraction(image), Is.EqualTo(image)); + } + + [Test, Category("HappyPath")] + public void GivenAVendorBootV4_WhenListed_ThenFragmentsAndTheirTableFieldsSurface() { + var image = Create(("vendor_ramdisk00", Bytes(10, 1)), ("vendor_ramdisk01", Bytes(20, 2)), + ("metadata.ini", Ini("[android_vendor_boot]\nheader_version = 4\n[vendor_ramdisk01]\ntype = 3\nname = dlkm\nboard_id = 0x1,0x2\n"))); + var files = Extract(image); + var ini = Encoding.UTF8.GetString(files["metadata.ini"]); + Assert.Multiple(() => { + Assert.That(files["vendor_ramdisk00"], Is.EqualTo(Bytes(10, 1))); + Assert.That(files["vendor_ramdisk01"], Is.EqualTo(Bytes(20, 2))); + Assert.That(ini, Does.Contain("[vendor_ramdisk01]\ntype = 3\nname = dlkm\nboard_id = 0x00000001,0x00000002,")); + Assert.That(ini, Does.Contain("[vendor_ramdisk00]\ntype = 1\nname = \n")); + }); + } + + [Test, Category("HappyPath")] + public void GivenAV2CommandLineLongerThan511Bytes_WhenCreated_ThenTheRestSpillsIntoExtraCmdline() { + var cmdline = new string('a', 511) + "TAIL"; + var image = Create(("metadata.ini", Ini($"[android_boot]\ncmdline = {cmdline}\n"))); + Assert.Multiple(() => { + Assert.That(Encoding.ASCII.GetString(image, 64, 511), Is.EqualTo(new string('a', 511))); + Assert.That(image[64 + 511], Is.Zero); + Assert.That(Encoding.ASCII.GetString(image, 608, 4), Is.EqualTo("TAIL")); + }); + } + + // ── refusals on create ─────────────────────────────────────────────── + + [Test, Category("Exception")] + public void GivenAnArbitraryFileName_WhenCreated_ThenItIsRefused() + => Assert.That(() => Create(("readme.txt", [1])), Throws.ArgumentException); + + [Test, Category("Exception")] + public void GivenASecondStageForAV3Image_WhenCreated_ThenItIsRefused() + => Assert.That(() => Create(("second", [1]), ("metadata.ini", Ini("[android_boot]\nheader_version = 3\n"))), Throws.ArgumentException); + + [Test, Category("Exception")] + public void GivenAnOversizedBoardName_WhenCreated_ThenItIsRefused() + => Assert.That(() => Create(("metadata.ini", Ini("[android_boot]\nboard = 0123456789abcdef\n"))), Throws.ArgumentException); + + [Test, Category("Exception")] + public void GivenHeaderVersion5_WhenCreated_ThenItIsRefused() + => Assert.That(() => Create(("metadata.ini", Ini("[android_boot]\nheader_version = 5\n"))), Throws.ArgumentException); + + // ── malformed input ────────────────────────────────────────────────── + + [Test, Category("Exception")] + public void GivenATruncatedHeader_WhenListed_ThenItFallsBackToTheWholeImageWithoutThrowing() { + var image = Create(("kernel", Bytes(100, 1)))[..600]; + using var ms = new MemoryStream(image); + var entries = Descriptor.List(ms, null); + var files = Extract(image); + Assert.Multiple(() => { + Assert.That(entries.Select(e => e.Name), Is.EqualTo(new[] { "metadata.ini", "FULL.img" })); + Assert.That(Encoding.UTF8.GetString(files["metadata.ini"]), Does.Contain("parse_status = partial")); + Assert.That(files["FULL.img"], Is.EqualTo(image)); + }); + } + + [Test, Category("Exception")] + public void GivenAKernelSizePastTheEnd_WhenListed_ThenItFallsBackRatherThanReturningShortData() { + var image = Create(("kernel", Bytes(5000, 1))); + BinaryPrimitives.WriteUInt32LittleEndian(image.AsSpan(8), 1_000_000); + using var ms = new MemoryStream(image); + Assert.That(Descriptor.List(ms, null).Select(e => e.Name), Does.Contain("FULL.img").And.Not.Contain("kernel")); + } + + [TestCase(0u), TestCase(1000u), TestCase(3000u)] + [Category("Exception")] + public void GivenAnInvalidPageSize_WhenParsed_ThenItIsRejected(uint page) { + var image = Create(("kernel", Bytes(10, 1))); + BinaryPrimitives.WriteUInt32LittleEndian(image.AsSpan(36), page); + Assert.That(() => AndroidBootImage.Parse(image), Throws.TypeOf()); + } + + [Test, Category("Exception")] + public void GivenAnUnknownHeaderVersion_WhenParsed_ThenItIsRejected() { + var image = Create(("kernel", Bytes(10, 1))); + BinaryPrimitives.WriteUInt32LittleEndian(image.AsSpan(40), 9); + Assert.That(() => AndroidBootImage.Parse(image), Throws.TypeOf()); + } + + // ── edits ──────────────────────────────────────────────────────────── + + [Test, Category("HappyPath")] + public void GivenAnImage_WhenTheKernelIsReplaced_ThenTheResultEqualsAFreshImageWithThatKernel() { + var ini = ("metadata.ini", Ini("[android_boot]\nheader_version = 2\ncmdline = quiet\n")); + var image = Create(("kernel", Bytes(5000, 1)), ("ramdisk", Bytes(4000, 2)), ("dtb", Bytes(100, 3)), ini); + var newKernel = Bytes(9000, 4); + + using var ms = new MemoryStream(); + ms.Write(image); + Descriptor.Add(ms, [ArchiveInputInfo.InMemory("kernel", newKernel)]); + + var expected = Create(("kernel", newKernel), ("ramdisk", Bytes(4000, 2)), ("dtb", Bytes(100, 3)), ini); + Assert.That(ms.ToArray(), Is.EqualTo(expected)); + } + + [Test, Category("HappyPath")] + public void GivenAnImage_WhenTheCmdlineIsEditedThroughMetadata_ThenOnlyThatFieldAndNothingElseChanges() { + var image = Create(("kernel", Bytes(100, 1)), ("metadata.ini", Ini("[android_boot]\ncmdline = old\nboard = keep\n"))); + using var ms = new MemoryStream(); + ms.Write(image); + var ini = Encoding.UTF8.GetString(Extract(image)["metadata.ini"]).Replace("cmdline = old", "cmdline = new value"); + Descriptor.Add(ms, [ArchiveInputInfo.InMemory("metadata.ini", Encoding.UTF8.GetBytes(ini))]); + + var edited = ms.ToArray(); + Assert.Multiple(() => { + Assert.That(Encoding.ASCII.GetString(edited, 64, 9), Is.EqualTo("new value")); + Assert.That(Encoding.ASCII.GetString(edited, 48, 4), Is.EqualTo("keep")); + Assert.That(edited.AsSpan(2048).ToArray(), Is.EqualTo(image.AsSpan(2048).ToArray())); + }); + } + + [Test, Category("HappyPath")] + public void GivenAnImage_WhenTheRamdiskIsRemoved_ThenItNoLongerListsAndTheKernelIsUntouched() { + var kernel = Bytes(3000, 1); + var image = Create(("kernel", kernel), ("ramdisk", Bytes(10, 2))); + using var ms = new MemoryStream(); + ms.Write(image); + Descriptor.Remove(ms, ["ramdisk"]); + var files = Extract(ms.ToArray()); + Assert.Multiple(() => { + Assert.That(files.Keys, Is.EquivalentTo(new[] { "metadata.ini", "kernel" })); + Assert.That(files["kernel"], Is.EqualTo(kernel)); + }); + } + + [Test, Category("HappyPath")] + public void GivenAVendorBootV4_WhenAFragmentIsRemoved_ThenTheLaterOnesMoveUp() { + var image = Create(("vendor_ramdisk00", Bytes(10, 1)), ("vendor_ramdisk01", Bytes(20, 2)), ("vendor_ramdisk02", Bytes(30, 3)), + ("metadata.ini", Ini("[android_vendor_boot]\nheader_version = 4\n"))); + using var ms = new MemoryStream(); + ms.Write(image); + Descriptor.Remove(ms, ["vendor_ramdisk01"]); + var files = Extract(ms.ToArray()); + Assert.Multiple(() => { + Assert.That(files["vendor_ramdisk00"], Is.EqualTo(Bytes(10, 1))); + Assert.That(files["vendor_ramdisk01"], Is.EqualTo(Bytes(30, 3))); + Assert.That(files.ContainsKey("vendor_ramdisk02"), Is.False); + }); + } + + [Test, Category("HappyPath")] + public void GivenAnImage_WhenPurged_ThenOnlyTheHeaderRemainsAndItStillParses() { + var image = Create(("kernel", Bytes(3000, 1)), ("ramdisk", Bytes(10, 2)), ("metadata.ini", Ini("[android_boot]\nheader_version = 1\nboard = brd\n"))); + using var ms = new MemoryStream(); + ms.Write(image); + Descriptor.Purge(ms); + var purged = ms.ToArray(); + var parsed = AndroidBootImage.Parse(purged); + Assert.Multiple(() => { + Assert.That(purged.Length, Is.EqualTo(2048)); + Assert.That(parsed.HeaderVersion, Is.EqualTo(1)); + Assert.That(FileFormat.FirmwareCommon.FirmwareArchive.CString(parsed.Board), Is.EqualTo("brd")); + Assert.That(parsed.ImageIdValid, Is.True); + }); + } + + [Test, Category("Exception")] + public void GivenAV4ImageWithABootSignature_WhenTheKernelIsReplaced_ThenTheEditIsRefusedAndTheImageUntouched() { + var image = Create(("kernel", Bytes(100, 1)), ("boot_signature", Bytes(4096, 2)), ("metadata.ini", Ini("[android_boot]\nheader_version = 4\n"))); + using var ms = new MemoryStream(); + ms.Write(image); + Assert.That(() => Descriptor.Add(ms, [ArchiveInputInfo.InMemory("kernel", [9])]), Throws.TypeOf()); + Assert.That(ms.ToArray(), Is.EqualTo(image)); + } + + [Test, Category("HappyPath")] + public void GivenAV4ImageWithABootSignature_WhenTheSignatureIsRemoved_ThenTheEditIsAllowed() { + var image = Create(("kernel", Bytes(100, 1)), ("boot_signature", Bytes(4096, 2)), ("metadata.ini", Ini("[android_boot]\nheader_version = 4\n"))); + using var ms = new MemoryStream(); + ms.Write(image); + Descriptor.Remove(ms, ["boot_signature"]); + Assert.That(Extract(ms.ToArray()).ContainsKey("boot_signature"), Is.False); + } + + [Test, Category("Exception")] + public void GivenAnImageWithAnAvbFooter_WhenTheRamdiskIsReplaced_ThenTheEditIsRefused() { + var footer = new byte[4096]; + "AVBf"u8.CopyTo(footer.AsSpan(footer.Length - 64)); + var image = Create(("kernel", Bytes(100, 1)), ("trailer.bin", footer)); + using var ms = new MemoryStream(); + ms.Write(image); + Assert.That(() => Descriptor.Add(ms, [ArchiveInputInfo.InMemory("ramdisk", [9])]), Throws.TypeOf()); + Assert.That(ms.ToArray(), Is.EqualTo(image)); + } + + [Test, Category("Exception")] + public void GivenNonZeroPagePadding_WhenEdited_ThenTheEditIsRefusedButTheImageStillReads() { + var image = Create(("kernel", Bytes(100, 1)), ("ramdisk", Bytes(10, 2))); + image[2048 + 100] = 0xEE; // inside the kernel's page padding + using var ms = new MemoryStream(); + ms.Write(image); + Assert.Multiple(() => { + Assert.That(Extract(image)["kernel"], Is.EqualTo(Bytes(100, 1))); + Assert.That(() => Descriptor.Remove(ms, ["ramdisk"]), Throws.TypeOf()); + Assert.That(ms.ToArray(), Is.EqualTo(image)); + }); + } + + [Test, Category("HappyPath")] + public void GivenAForeignImageIdThatIsNotTheSha_WhenEdited_ThenTheIdIsKeptAsItWas() { + var image = Create(("kernel", Bytes(100, 1)), ("ramdisk", Bytes(10, 2))); + image.AsSpan(576, 32).Clear(); + using var ms = new MemoryStream(); + ms.Write(image); + Descriptor.Remove(ms, ["ramdisk"]); + Assert.That(ms.ToArray().AsSpan(576, 32).ToArray(), Is.All.Zero); + } + + [Test, Category("HappyPath")] + public void GivenHeaderBytesPastTheKnownFields_WhenEdited_ThenTheyArePreserved() { + var image = Create(("kernel", Bytes(100, 1)), ("ramdisk", Bytes(10, 2))); + image[2000] = 0x5A; // header page, beyond the v0 fields + using var ms = new MemoryStream(); + ms.Write(image); + Descriptor.Add(ms, [ArchiveInputInfo.InMemory("ramdisk", Bytes(20, 3))]); + Assert.That(ms.ToArray()[2000], Is.EqualTo(0x5A)); + } +} diff --git a/Compression.Tests/AndroidBoot/AndroidVbmetaTests.cs b/Compression.Tests/AndroidBoot/AndroidVbmetaTests.cs new file mode 100644 index 000000000..37b06fe3f --- /dev/null +++ b/Compression.Tests/AndroidBoot/AndroidVbmetaTests.cs @@ -0,0 +1,206 @@ +#pragma warning disable CS1591 +using System.Buffers.Binary; +using System.Diagnostics; +using System.Text; +using Compression.Registry; +using FileFormat.AndroidVbmeta; +using Win32Exception = System.ComponentModel.Win32Exception; + +namespace Compression.Tests.AndroidBoot; + +/// +/// vbmeta images: two written by avbtool (see Firmware/ReferenceVectors/README.md) are read, +/// verified and — for the unsigned one — rewritten byte for byte; unsigned images we write must +/// match avbtool make_vbmeta_image --algorithm NONE and pass its info_image. +/// +[TestFixture] +public sealed class AndroidVbmetaTests { + + private static readonly AndroidVbmetaFormatDescriptor Descriptor = new(); + + private static Dictionary Extract(byte[] image) { + var dir = Path.Combine(Path.GetTempPath(), "cwb_vbm_" + Guid.NewGuid().ToString("N")[..10]); + try { + using (var ms = new MemoryStream(image)) Descriptor.Extract(ms, dir, null, null); + return Directory.GetFiles(dir, "*", SearchOption.AllDirectories) + .ToDictionary(f => Path.GetRelativePath(dir, f).Replace('\\', '/'), File.ReadAllBytes, StringComparer.Ordinal); + } finally { + try { Directory.Delete(dir, true); } catch { /* best effort */ } + } + } + + private static byte[] Create(IEnumerable<(string Name, byte[] Data)> inputs) { + using var ms = new MemoryStream(); + Descriptor.Create(ms, [.. inputs.Select(i => ArchiveInputInfo.InMemory(i.Name, i.Data))], new FormatCreateOptions()); + return ms.ToArray(); + } + + private static string Ini(byte[] image) => Encoding.UTF8.GetString(Extract(image)["metadata.ini"]); + + // ── avbtool-written vectors ────────────────────────────────────────── + + [Test, Category("HappyPath")] + public void GivenAvbtoolsSignedVbmeta_WhenListed_ThenHashAndRsaSignatureVerify() { + var ini = Ini(Firmware.FirmwareVectors.Load("signed.vbmeta")); + Assert.Multiple(() => { + Assert.That(ini, Does.Contain("algorithm = SHA256_RSA2048")); + Assert.That(ini, Does.Contain("hash_valid = true")); + Assert.That(ini, Does.Contain("signature_valid = true")); + Assert.That(ini, Does.Contain("rollback_index = 7")); + Assert.That(ini, Does.Contain("release_string = avbtool 1.4.0")); + // the values avbtool info_image printed for this image + Assert.That(ini, Does.Contain("public_key_sha1 = cdbb77177f731920bbe0a0f94f84d9038ae0617d")); + Assert.That(ini, Does.Contain("digest = bf2c275accee5b56c848d7708341b4d2f244b2eebdac087f56c2ad65bbe9cd6c")); + Assert.That(ini, Does.Contain("cmdline = androidboot.cwb=1")); + Assert.That(ini, Does.Contain("key = com.cwb.test\nvalue = yes")); + }); + } + + [Test, Category("HappyPath")] + public void GivenAvbtoolsSignedVbmeta_WhenExtracted_ThenEachDescriptorAndTheKeyAreMembers() { + var files = Extract(Firmware.FirmwareVectors.Load("signed.vbmeta")); + Assert.That(files.Keys, Is.SupersetOf(new[] { + "metadata.ini", "descriptors/00_chain_partition_system.bin", "descriptors/01_property_com.cwb.test.bin", + "descriptors/02_kernel_cmdline.bin", "descriptors/03_hash_boot.bin", "public_key.bin", "signature.bin", + })); + Assert.That(files["public_key.bin"].Length, Is.EqualTo(8 + 2 * 256)); + } + + [Test, Category("Exception")] + public void GivenASignedVbmetaWithOneFlippedDescriptorByte_WhenListed_ThenTheHashAndSignatureFail() { + var image = Firmware.FirmwareVectors.Load("signed.vbmeta"); + image[256 + 320 + 100] ^= 0x01; // inside the auxiliary block + var ini = Ini(image); + Assert.That(ini, Does.Contain("hash_valid = false").And.Contain("signature_valid = false")); + } + + [Test, Category("Exception")] + public void GivenASignedVbmeta_WhenEdited_ThenTheEditIsRefusedAndTheImageUntouched() { + var image = Firmware.FirmwareVectors.Load("signed.vbmeta"); + using var ms = new MemoryStream(); + ms.Write(image); + Assert.That(() => Descriptor.Remove(ms, ["descriptors/02_kernel_cmdline.bin"]), Throws.TypeOf()); + Assert.That(ms.ToArray(), Is.EqualTo(image)); + } + + [Test, Category("RoundTrip")] + public void GivenAvbtoolsUnsignedVbmeta_WhenExtractedAndRecreated_ThenTheBytesAreIdentical() { + var image = Firmware.FirmwareVectors.Load("unsigned.vbmeta"); + var rebuilt = Create(Extract(image).Select(kv => (kv.Key, kv.Value))); + Assert.That(rebuilt, Is.EqualTo(image)); + } + + [Test, Category("HappyPath")] + public void GivenAvbtoolsUnsignedVbmeta_WhenADescriptorIsRemoved_ThenTheRestStayAndTheBlockShrinks() { + var image = Firmware.FirmwareVectors.Load("unsigned.vbmeta"); + using var ms = new MemoryStream(); + ms.Write(image); + Descriptor.Remove(ms, ["descriptors/00_property_com.cwb.test.bin"]); + var edited = AvbVbmeta.Parse(ms.ToArray()); + var original = AvbVbmeta.Parse(image); + Assert.Multiple(() => { + Assert.That(edited.Descriptors.Select(d => d.Kind), Is.EqualTo(original.Descriptors.Skip(1).Select(d => d.Kind))); + Assert.That(edited.RollbackIndex, Is.EqualTo(3)); + Assert.That(edited.IsCanonical, Is.True); + }); + } + + // ── malformed / boundary ───────────────────────────────────────────── + + [Test, Category("Exception")] + public void GivenATruncatedVbmeta_WhenListed_ThenItFallsBackWithoutThrowing() { + var image = Firmware.FirmwareVectors.Load("signed.vbmeta")[..1000]; + using var ms = new MemoryStream(image); + Assert.That(Descriptor.List(ms, null).Select(e => e.Name), Is.EqualTo(new[] { "metadata.ini", "FULL.img" })); + } + + [Test, Category("Exception")] + public void GivenADescriptorLengthPastItsBlock_WhenParsed_ThenItIsRejected() { + var image = Firmware.FirmwareVectors.Load("unsigned.vbmeta"); + BinaryPrimitives.WriteUInt64BigEndian(image.AsSpan(256 + 8), 1_000_000); + Assert.That(() => AvbVbmeta.Parse(image), Throws.TypeOf()); + } + + [Test, Category("Boundary")] + public void GivenNoInputs_WhenCreated_ThenTheResultIsABareHeader() { + var image = Create([]); + var parsed = AvbVbmeta.Parse(image); + Assert.Multiple(() => { + Assert.That(image.Length, Is.EqualTo(256)); + Assert.That(parsed.Descriptors, Is.Empty); + Assert.That(parsed.AlgorithmType, Is.Zero); + }); + } + + [Test, Category("Exception")] + public void GivenAPublicKeyAmongTheInputs_WhenCreated_ThenSigningIsRefused() + => Assert.That(() => Create([("public_key.bin", new byte[520])]), Throws.TypeOf()); + + [Test, Category("Exception")] + public void GivenAMalformedDescriptorBlob_WhenCreated_ThenItIsRefused() + => Assert.That(() => Create([("descriptors/00_x.bin", new byte[20])]), Throws.ArgumentException); + + // ── avbtool oracle ─────────────────────────────────────────────────── + + private static readonly Lazy Avbtool = new(() => { + var configured = Environment.GetEnvironmentVariable("CWB_AVBTOOL"); + var candidates = new List(); + if (!string.IsNullOrWhiteSpace(configured)) { + candidates.Add(["python3", "-c", AndroidBootImageMkbootimgOracleTests.RunScript, configured]); + candidates.Add(["python", "-c", AndroidBootImageMkbootimgOracleTests.RunScript, configured]); + } + candidates.Add(["avbtool"]); + foreach (var c in candidates) + try { + if (Run(c, ["version"]).ExitCode == 0) return c; + } catch (Win32Exception) { + // not there + } + return null; + }); + + private static (int ExitCode, string StdOut, string StdErr) Run(string[] tool, IEnumerable arguments) { + var start = new ProcessStartInfo(tool[0]) { RedirectStandardOutput = true, RedirectStandardError = true, UseShellExecute = false, CreateNoWindow = true }; + foreach (var a in tool.Skip(1).Concat(arguments)) start.ArgumentList.Add(a); + using var process = Process.Start(start)!; + var stdout = process.StandardOutput.ReadToEndAsync(); + var stderr = process.StandardError.ReadToEnd(); + process.WaitForExit(); + return (process.ExitCode, stdout.Result, stderr); + } + + [Test, Category("ArchiveExternal")] + public void GivenDescriptorsAvbtoolWrote_WhenWeWriteAnUnsignedImage_ThenAvbtoolWritesTheSameBytesAndReadsOurs() { + if (Avbtool.Value is not { } avbtool) { + Assert.Ignore("avbtool not found (set CWB_AVBTOOL to avbtool.py from platform/external/avb)."); + return; + } + var dir = Path.Combine(Path.GetTempPath(), "cwb_avbtool_" + Guid.NewGuid().ToString("N")[..8]); + Directory.CreateDirectory(dir); + try { + var reference = Path.Combine(dir, "reference.vbmeta"); + var (code, _, stderr) = Run(avbtool, ["make_vbmeta_image", "--output", reference, "--algorithm", "NONE", + "--prop", "a.b:c", "--prop", "empty:", "--kernel_cmdline", "quiet splash", "--rollback_index", "42", + "--rollback_index_location", "2", "--padding_size", "4096"]); + Assert.That(code, Is.Zero, stderr); + var expected = File.ReadAllBytes(reference); + + var ours = Create(Extract(expected).Select(kv => (kv.Key, kv.Value))); + Assert.That(ours, Is.EqualTo(expected), "rebuilding avbtool's unsigned image from its members changed the bytes"); + + // A descriptor added by us, read back by avbtool. + using var ms = new MemoryStream(); + ms.Write(expected); + var extra = AvbVbmeta.Parse(expected).Descriptors[0].Encoded; + Descriptor.Add(ms, [ArchiveInputInfo.InMemory("descriptors/03_property_copy.bin", extra)]); + var edited = Path.Combine(dir, "edited.vbmeta"); + File.WriteAllBytes(edited, ms.ToArray()); + var (infoCode, info, infoErr) = Run(avbtool, ["info_image", "--image", edited]); + Assert.That(infoCode, Is.Zero, infoErr); + Assert.That(info.Split("Prop: a.b -> 'c'").Length - 1, Is.EqualTo(2), info); + Assert.That(info, Does.Contain("Rollback Index: 42")); + } finally { + try { Directory.Delete(dir, true); } catch { /* best effort */ } + } + } +} diff --git a/Compression.Tests/Compression.Tests.csproj b/Compression.Tests/Compression.Tests.csproj index 7bba71ab0..4a8a1f1eb 100644 --- a/Compression.Tests/Compression.Tests.csproj +++ b/Compression.Tests/Compression.Tests.csproj @@ -79,6 +79,10 @@ CscVectors.%(Filename)%(Extension) + + + FirmwareVectors.%(Filename)%(Extension) + CvfVectors.%(Filename)%(Extension) diff --git a/Compression.Tests/Firmware/FirmwareVectors.cs b/Compression.Tests/Firmware/FirmwareVectors.cs new file mode 100644 index 000000000..02f09da4a --- /dev/null +++ b/Compression.Tests/Firmware/FirmwareVectors.cs @@ -0,0 +1,15 @@ +#pragma warning disable CS1591 +using System.Reflection; + +namespace Compression.Tests.Firmware; + +/// The reference images under Firmware/ReferenceVectors, embedded as FirmwareVectors.<name>. +internal static class FirmwareVectors { + public static byte[] Load(string name) { + using var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream($"FirmwareVectors.{name}") + ?? throw new FileNotFoundException($"embedded firmware vector {name} is missing"); + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); + } +} diff --git a/Compression.Tests/Firmware/ReferenceVectors/README.md b/Compression.Tests/Firmware/ReferenceVectors/README.md new file mode 100644 index 000000000..9714f6509 --- /dev/null +++ b/Compression.Tests/Firmware/ReferenceVectors/README.md @@ -0,0 +1,31 @@ +# Firmware reference vectors + +Small images written by the reference tool of each firmware format, embedded into the test +assembly as `FirmwareVectors.`. + +## vbmeta (Android Verified Boot 2.0) + +Written on 2026-10-19 by `avbtool 1.4.0` (`avbtool.py` from +, revision +`c5066a96caa7bf4150c0a8cc8cc14ab81733fdc7`) under CPython 3.13, with OpenSSL 3.5.5 doing the RSA +signing, using AOSP's public test key `test/data/testkey_rsa2048.pem` from the same checkout: + +```sh +python -c "open('boot.bin','wb').write(b'B'*8192)" +avbtool add_hash_footer --image boot.bin --partition_name boot --partition_size 131072 --algorithm NONE --salt 00112233 +avbtool extract_public_key --key testkey_rsa2048.pem --output rsa2048.avbpubkey +avbtool make_vbmeta_image --output signed.vbmeta --algorithm SHA256_RSA2048 --key testkey_rsa2048.pem \ + --include_descriptors_from_image boot.bin --kernel_cmdline "androidboot.cwb=1" --prop "com.cwb.test:yes" \ + --rollback_index 7 --chain_partition system:1:rsa2048.avbpubkey +avbtool make_vbmeta_image --output unsigned.vbmeta --algorithm NONE \ + --include_descriptors_from_image boot.bin --kernel_cmdline "androidboot.cwb=1" --prop "com.cwb.test:yes" --rollback_index 3 +``` + +`avbtool info_image --image signed.vbmeta` reported public key SHA-1 +`cdbb77177f731920bbe0a0f94f84d9038ae0617d` and boot hash-descriptor digest +`bf2c275accee5b56c848d7708341b4d2f244b2eebdac087f56c2ad65bbe9cd6c`; the tests assert both. + +| File | Bytes | Algorithm | Descriptors | +|------|------:|-----------|-------------| +| `signed.vbmeta` | 2048 | SHA256_RSA2048 | chain partition, property, kernel cmdline, hash | +| `unsigned.vbmeta` | 576 | NONE | property, kernel cmdline, hash | diff --git a/Compression.Tests/Firmware/ReferenceVectors/signed.vbmeta b/Compression.Tests/Firmware/ReferenceVectors/signed.vbmeta new file mode 100644 index 0000000000000000000000000000000000000000..b84e33e337bacdb148a0f3f760f4d82172c127d5 GIT binary patch literal 2048 zcmZ<^b24CHU|kiW}N_4hepBFF|flV z63dcG^7C^P4E0R(Kn|fd;8bC2KJu$()w4Y}vfC4SRjYp7bH4Y%aBA?Uc^B3`EZDPo zp;_9~y0D99z2C5I-Y-8@_5F;9nQa}@%Z$G)zy1Elz1wEIy=#wnx_R-~@%`)G{Z(r3 z*+o2phjQoM>8?5W&h7PY+iPcz{XRd7*~@5Yi0N4&pOVz%yp}sNzH_bgPs@+b5;nZ2 zE}zgmRZsTD%_olMe5P(Z(e$l)Z{2%)mcu7yG_g)ncpg!+bqTsFfwN`=5 zr|V9hW7v~a|LWb86AyD&zU!S;bF#5wP3gADHo~(L4NUHxJIZa5C?XxOPB(ty>^Cuu z+m>zf&C_YxED-t8x+$Y=)zlEd&{q>1zZT^MKE1zUQ|GHw&5diXmkZ3Ru(euq^76uN z6`sD!`?u|!qD*9but3x?B>-tqqF`fSfTab93^`es^u6SSm^GNM17HljRom+;oMtwbp19Fcy*FfqQi{tS6E*>x&O;YJ z>oBKI+_>Q43B@qcnH~!2CGQ!l%9e6x|9$-HE$>hMD#u@CtmdBoO#HnWJ)g|@-r0B7 zY?Y<#%G%iMsGy6bnJezs+>??1c~dfaySvZM0=>0QuXWVCos{RsA+WWK*^YCK?>3#Y zLJWJaEN8wfJ&{A%EL!m2`pC@9HXSPFx{14v&J2{8{!`g$+WdCCvzvV5SE_t+z4a(n zP0d&Cmv!*!qn9g#_0x7JPDz_JIp0*xxu<{H&i`x9eqqSlx2-s&C7{(U`08Eff19!@ z94f=+w|&0cXl?5-!PID0VEvE7-p8*kJZ11(`mZ|Ijuc0egW~rVmd$#7o+sd@@K;`L zotY}9w{H1yjO&8h#^}GkE@^W&l&z|qdmzSoirK;beO&zQK;Z|;L3ZFjgF^tpv7cs#oCT;r6S$(3)uUEQXPCh2FyYG_1 z{EGF3oAo$47k;eWXt3a!^xnJ^-;5vL+OSv5@gIAB-t_J)<4e~Yn6rGJvo>kSzt37( zTKCZJ(bQ=FXLp!)HeyXd8c)C^S-8V{5gKv)4yoMbM@Q4E4g#`|^Dqt3jG s4m;s-y`b4~%cV~)o8IkR!%-i0Xl?55muGVz29M^F(OiNfm*7cx0Fcnk2mk;8 literal 0 HcmV?d00001 diff --git a/Compression.Tests/Firmware/ReferenceVectors/unsigned.vbmeta b/Compression.Tests/Firmware/ReferenceVectors/unsigned.vbmeta new file mode 100644 index 0000000000000000000000000000000000000000..05d48f7e3c43d005adc0037eb986073beee93ac4 GIT binary patch literal 576 zcmZ<^b24CHU|_D1j=8&WFju#hGCuiDgM8`T02thI%G?AcqVv(16;{ z1Erah^K%-CQdRJQQIjMTed6xL(lgxaHC(mrd{XuHmQ; PJG3@+_sg?6q!One fragment of a vendor_boot ramdisk table (header v4) or the single vendor ramdisk (v3). +public sealed class VendorRamdisk { + public byte[] Data { get; set; } = []; + public uint Type { get; set; } + /// The 32-byte NUL-padded name field, kept raw. + public byte[] Name { get; set; } = new byte[AndroidBootImage.VendorRamdiskNameSize]; + public uint[] BoardId { get; set; } = new uint[AndroidBootImage.BoardIdWords]; +} + +/// +/// An Android boot.img / recovery.img (magic ANDROID!, header v0–v4) or +/// vendor_boot.img (magic VNDRBOOT, header v3–v4), parsed into its header fields and +/// page-aligned components, and written back the way AOSP mkbootimg lays one out. +/// +/// +/// Layout and field offsets follow AOSP system/tools/mkbootimg +/// (include/bootimg/bootimg.h, mkbootimg.py, unpack_bootimg.py; Apache-2.0), +/// converted. All integers are little-endian. +/// Every header byte the parser does not interpret — the rest of the header page(s), the +/// fixed-size string fields past their NUL — is kept and written back unchanged, so an image +/// that is re-laid out without edits comes back byte for byte. Layouts mkbootimg could not +/// have produced (non-zero padding, a relocated recovery DTBO, a sparse ramdisk table) are read +/// but flagged = false, and edits refuse them rather than move bytes. +/// +public sealed class AndroidBootImage { + + public const string BootMagic = "ANDROID!"; + public const string VendorBootMagic = "VNDRBOOT"; + public const int BootNameSize = 16; + public const int BootArgsSize = 512; + public const int BootExtraArgsSize = 1024; + public const int BootV3ArgsSize = BootArgsSize + BootExtraArgsSize; + public const int VendorArgsSize = 2048; + public const int V3PageSize = 4096; + public const int VendorRamdiskNameSize = 32; + public const int BoardIdWords = 16; + public const int VendorRamdiskEntrySize = 108; + public const uint VendorRamdiskTypePlatform = 1; + + /// Header lengths per version, as mkbootimg writes them into the header-size field. + public const uint BootV1HeaderSize = 1648, BootV2HeaderSize = 1660, BootV3HeaderSize = 1580, BootV4HeaderSize = 1584; + public const uint VendorV3HeaderSize = 2112, VendorV4HeaderSize = 2128; + + public bool IsVendor { get; set; } + public uint HeaderVersion { get; set; } + /// Flash page size. Fixed at 4096 for boot v3/v4. + public uint PageSize { get; set; } = 2048; + + public uint KernelAddress { get; set; } + public uint RamdiskAddress { get; set; } + public uint SecondAddress { get; set; } + public uint TagsAddress { get; set; } + public ulong DtbAddress { get; set; } + /// (os_version << 11) | os_patch_level, raw. + public uint OsVersionPatchLevel { get; set; } + public byte[] Board { get; set; } = new byte[BootNameSize]; + /// The command-line field, raw: 512 bytes (boot v0–v2), 1536 (boot v3/v4), 2048 (vendor). + public byte[] Cmdline { get; set; } = new byte[BootArgsSize]; + public byte[] ExtraCmdline { get; set; } = new byte[BootExtraArgsSize]; + public byte[] ImageId { get; set; } = new byte[32]; + /// The header-size field (boot v1+, vendor); 0 where the version has none. + public uint HeaderSize { get; set; } + public uint[] Reserved { get; set; } = new uint[4]; + /// Header-region bytes after the fields this parser knows, up to the first component. + public byte[] HeaderTail { get; set; } = []; + + public byte[] Kernel { get; set; } = []; + public byte[] Ramdisk { get; set; } = []; + public byte[] Second { get; set; } = []; + public byte[] RecoveryDtbo { get; set; } = []; + public byte[] Dtb { get; set; } = []; + public byte[] BootSignature { get; set; } = []; + public byte[] Bootconfig { get; set; } = []; + public List VendorRamdisks { get; set; } = []; + /// Bytes after the last component: partition padding, an AVB footer, anything appended. + public byte[] Trailer { get; set; } = []; + + /// True when the stored image id equals the SHA-1 mkbootimg computes (boot v0–v2). + public bool ImageIdValid { get; private set; } + public bool IsCanonical { get; private set; } = true; + public string? NonCanonicalReason { get; private set; } + + /// True when the trailer ends in an AVB footer (AVBf in the last 64 bytes). + public bool HasAvbFooter => this.Trailer.Length >= 64 + && this.Trailer.AsSpan(this.Trailer.Length - 64, 4).SequenceEqual("AVBf"u8); + + public uint EffectivePageSize => !this.IsVendor && this.HeaderVersion >= 3 ? V3PageSize : this.PageSize; + + public int KnownHeaderLength => this.IsVendor + ? (this.HeaderVersion >= 4 ? (int)VendorV4HeaderSize : (int)VendorV3HeaderSize) + : this.HeaderVersion switch { + 0 => 1632, 1 => (int)BootV1HeaderSize, 2 => (int)BootV2HeaderSize, + 3 => (int)BootV3HeaderSize, _ => (int)BootV4HeaderSize, + }; + + private int HeaderRegionLength { + get { + var page = (int)this.EffectivePageSize; + var declared = this.IsVendor ? Math.Max((int)this.HeaderSize, this.KnownHeaderLength) : page; + return Pages(declared, page) * page; + } + } + + public static bool IsPowerOfTwoPage(uint page) => page is >= 2048 and <= 262144 && (page & (page - 1)) == 0; + + public static int Pages(long size, int page) => checked((int)((size + page - 1) / page)); + + // ── parse ──────────────────────────────────────────────────────────── + + public static AndroidBootImage Parse(ReadOnlySpan data) { + if (data.Length < 8) throw new InvalidDataException("Android boot image: shorter than the magic."); + var img = new AndroidBootImage(); + if (data[..8].SequenceEqual("ANDROID!"u8)) img.ParseBoot(data); + else if (data[..8].SequenceEqual("VNDRBOOT"u8)) img.ParseVendor(data); + else throw new InvalidDataException("Android boot image: magic is neither ANDROID! nor VNDRBOOT."); + return img; + } + + private static uint U32(ReadOnlySpan d, int o) => BinaryPrimitives.ReadUInt32LittleEndian(d[o..]); + private static ulong U64(ReadOnlySpan d, int o) => BinaryPrimitives.ReadUInt64LittleEndian(d[o..]); + + private static void Need(ReadOnlySpan d, long end, string what) { + if (end > d.Length) + throw new InvalidDataException($"Android boot image: {what} runs to byte {end}, past the end of the {d.Length}-byte file."); + } + + private void ParseBoot(ReadOnlySpan d) { + Need(d, 44, "header"); + this.HeaderVersion = U32(d, 40); + if (this.HeaderVersion > 4) throw new InvalidDataException($"Android boot image: header version {this.HeaderVersion} is unknown."); + Need(d, this.KnownHeaderLength, "header"); + + uint kernelSize, ramdiskSize, secondSize = 0, recoveryDtboSize = 0, dtbSize = 0, signatureSize = 0; + ulong recoveryDtboOffset = 0; + if (this.HeaderVersion < 3) { + kernelSize = U32(d, 8); + this.KernelAddress = U32(d, 12); + ramdiskSize = U32(d, 16); + this.RamdiskAddress = U32(d, 20); + secondSize = U32(d, 24); + this.SecondAddress = U32(d, 28); + this.TagsAddress = U32(d, 32); + this.PageSize = U32(d, 36); + if (!IsPowerOfTwoPage(this.PageSize)) + throw new InvalidDataException($"Android boot image: page size {this.PageSize} is not a power of two in 2048..262144."); + this.OsVersionPatchLevel = U32(d, 44); + this.Board = d.Slice(48, BootNameSize).ToArray(); + this.Cmdline = d.Slice(64, BootArgsSize).ToArray(); + this.ImageId = d.Slice(576, 32).ToArray(); + this.ExtraCmdline = d.Slice(608, BootExtraArgsSize).ToArray(); + if (this.HeaderVersion >= 1) { + recoveryDtboSize = U32(d, 1632); + recoveryDtboOffset = U64(d, 1636); + this.HeaderSize = U32(d, 1644); + } + if (this.HeaderVersion == 2) { + dtbSize = U32(d, 1648); + this.DtbAddress = U64(d, 1652); + } + } else { + this.PageSize = V3PageSize; + kernelSize = U32(d, 8); + ramdiskSize = U32(d, 12); + this.OsVersionPatchLevel = U32(d, 16); + this.HeaderSize = U32(d, 20); + for (var i = 0; i < 4; ++i) this.Reserved[i] = U32(d, 24 + 4 * i); + this.Cmdline = d.Slice(44, BootV3ArgsSize).ToArray(); + if (this.HeaderVersion >= 4) signatureSize = U32(d, 1580); + } + + var page = (int)this.EffectivePageSize; + var region = this.HeaderRegionLength; + Need(d, region, "header page"); + this.HeaderTail = d[this.KnownHeaderLength..region].ToArray(); + + long offset = region; + this.Kernel = this.Take(d, ref offset, kernelSize, page, "kernel"); + this.Ramdisk = this.Take(d, ref offset, ramdiskSize, page, "ramdisk"); + if (this.HeaderVersion >= 4 && signatureSize > 0) + this.BootSignature = this.Take(d, ref offset, signatureSize, page, "boot signature"); + this.Second = this.Take(d, ref offset, secondSize, page, "second-stage bootloader"); + if (recoveryDtboSize > 0) { + if ((ulong)offset != recoveryDtboOffset) { + // unpack_bootimg honours the stored offset; so do we, but such an image is not ours to re-lay out. + this.MarkNonCanonical($"recovery DTBO sits at {recoveryDtboOffset}, not at {offset} where mkbootimg puts it"); + Need(d, (long)recoveryDtboOffset + recoveryDtboSize, "recovery DTBO"); + this.RecoveryDtbo = d.Slice(checked((int)recoveryDtboOffset), (int)recoveryDtboSize).ToArray(); + offset = Math.Max(offset, (long)recoveryDtboOffset + Pages(recoveryDtboSize, page) * (long)page); + } else + this.RecoveryDtbo = this.Take(d, ref offset, recoveryDtboSize, page, "recovery DTBO"); + } + this.Dtb = this.Take(d, ref offset, dtbSize, page, "DTB"); + this.TakeTrailer(d, offset); + + if (this.HeaderVersion < 3) { + this.ImageIdValid = this.ComputeImageId().AsSpan().SequenceEqual(this.ImageId); + // mkbootimg leaves a zero offset when there is no recovery DTBO; anything else would be lost on rebuild. + if (this.HeaderVersion >= 1 && recoveryDtboSize == 0 && recoveryDtboOffset != 0) + this.MarkNonCanonical("an empty recovery DTBO carries a non-zero offset"); + } + } + + private void ParseVendor(ReadOnlySpan d) { + this.IsVendor = true; + Need(d, 12, "header"); + this.HeaderVersion = U32(d, 8); + if (this.HeaderVersion is < 3 or > 4) + throw new InvalidDataException($"Android vendor_boot image: header version {this.HeaderVersion} is unknown."); + Need(d, this.KnownHeaderLength, "header"); + this.PageSize = U32(d, 12); + if (!IsPowerOfTwoPage(this.PageSize)) + throw new InvalidDataException($"Android vendor_boot image: page size {this.PageSize} is not a power of two in 2048..262144."); + this.KernelAddress = U32(d, 16); + this.RamdiskAddress = U32(d, 20); + var ramdiskTotal = U32(d, 24); + this.Cmdline = d.Slice(28, VendorArgsSize).ToArray(); + this.TagsAddress = U32(d, 2076); + this.Board = d.Slice(2080, BootNameSize).ToArray(); + this.HeaderSize = U32(d, 2096); + var dtbSize = U32(d, 2100); + this.DtbAddress = U64(d, 2104); + uint tableSize = 0, entryCount = 0, entrySize = 0, bootconfigSize = 0; + if (this.HeaderVersion >= 4) { + tableSize = U32(d, 2112); + entryCount = U32(d, 2116); + entrySize = U32(d, 2120); + bootconfigSize = U32(d, 2124); + } + if (this.HeaderSize > 1 << 20) throw new InvalidDataException($"Android vendor_boot image: header size {this.HeaderSize} is implausible."); + + var page = (int)this.PageSize; + var region = this.HeaderRegionLength; + Need(d, region, "header pages"); + this.HeaderTail = d[this.KnownHeaderLength..region].ToArray(); + + long offset = region; + var ramdiskBase = offset; + Need(d, offset + ramdiskTotal, "vendor ramdisk"); + var ramdisks = d.Slice((int)offset, (int)ramdiskTotal); + offset += Pages(ramdiskTotal, page) * (long)page; + this.CheckPadding(d, ramdiskBase + ramdiskTotal, offset, "vendor ramdisk"); + this.Dtb = this.Take(d, ref offset, dtbSize, page, "DTB"); + + if (this.HeaderVersion < 4) { + this.VendorRamdisks.Add(new VendorRamdisk { Data = ramdisks.ToArray(), Type = VendorRamdiskTypePlatform }); + } else { + if (entrySize != VendorRamdiskEntrySize && entryCount > 0) + this.MarkNonCanonical($"ramdisk table entries are {entrySize} bytes, not {VendorRamdiskEntrySize}"); + if ((long)entryCount * entrySize > tableSize || entrySize < VendorRamdiskEntrySize && entryCount > 0) + throw new InvalidDataException($"Android vendor_boot image: {entryCount} ramdisk table entries of {entrySize} bytes do not fit the {tableSize}-byte table."); + if (tableSize != entryCount * VendorRamdiskEntrySize) + this.MarkNonCanonical($"ramdisk table is {tableSize} bytes for {entryCount} entries"); + var tableStart = offset; + Need(d, tableStart + tableSize, "ramdisk table"); + long expected = 0; + for (var i = 0; i < entryCount; ++i) { + var e = d.Slice((int)(tableStart + i * (long)entrySize), VendorRamdiskEntrySize); + var size = U32(e, 0); + var rel = U32(e, 4); + if ((ulong)rel + size > ramdiskTotal) + throw new InvalidDataException($"Android vendor_boot image: ramdisk table entry {i} runs past the {ramdiskTotal}-byte ramdisk section."); + if (rel != expected) this.MarkNonCanonical($"ramdisk table entry {i} starts at {rel}, not at {expected}"); + expected = rel + (long)size; + var boardId = new uint[BoardIdWords]; + for (var w = 0; w < BoardIdWords; ++w) boardId[w] = U32(e, 44 + 4 * w); + this.VendorRamdisks.Add(new VendorRamdisk { + Data = ramdisks.Slice((int)rel, (int)size).ToArray(), + Type = U32(e, 8), + Name = e.Slice(12, VendorRamdiskNameSize).ToArray(), + BoardId = boardId, + }); + } + if (expected != ramdiskTotal) this.MarkNonCanonical("the ramdisk table does not cover the whole ramdisk section"); + offset = tableStart + Pages(tableSize, page) * (long)page; + this.CheckPadding(d, tableStart + tableSize, offset, "ramdisk table"); + this.Bootconfig = this.Take(d, ref offset, bootconfigSize, page, "bootconfig"); + } + this.TakeTrailer(d, offset); + } + + private byte[] Take(ReadOnlySpan d, ref long offset, uint size, int page, string what) { + if (size == 0) return []; + Need(d, offset + size, what); + var result = d.Slice((int)offset, (int)size).ToArray(); + var end = offset + Pages(size, page) * (long)page; + this.CheckPadding(d, offset + size, end, what); + offset = end; + return result; + } + + private void CheckPadding(ReadOnlySpan d, long from, long to, string what) { + var end = Math.Min(to, d.Length); + if (from < end && d[(int)from..(int)end].ContainsAnyExcept((byte)0)) + this.MarkNonCanonical($"the page padding after the {what} is not zero"); + } + + private void TakeTrailer(ReadOnlySpan d, long offset) { + // A final component whose page padding was cut off is still complete: the image ends at its data. + this.Trailer = offset < d.Length ? d[(int)offset..].ToArray() : []; + } + + private void MarkNonCanonical(string reason) { + this.IsCanonical = false; + this.NonCanonicalReason ??= reason; + } + + // ── image id ───────────────────────────────────────────────────────── + + /// + /// The boot v0–v2 image id exactly as mkbootimg computes it: SHA-1 over each component + /// followed by its 32-bit length (kernel, ramdisk, second, then recovery DTBO from v1 and DTB + /// from v2), zero-extended to 32 bytes. + /// + public byte[] ComputeImageId() { + using var sha = IncrementalHash.CreateHash(HashAlgorithmName.SHA1); + var size = new byte[4]; + void Add(byte[] part) { + sha.AppendData(part); + BinaryPrimitives.WriteUInt32LittleEndian(size, (uint)part.Length); + sha.AppendData(size); + } + Add(this.Kernel); + Add(this.Ramdisk); + Add(this.Second); + if (this.HeaderVersion > 0) Add(this.RecoveryDtbo); + if (this.HeaderVersion > 1) Add(this.Dtb); + var id = new byte[32]; + sha.GetHashAndReset().CopyTo(id, 0); + return id; + } + + // ── write ──────────────────────────────────────────────────────────── + + /// + /// Writes the image in mkbootimg order: header page(s), then each component padded to the + /// page size. A boot v0–v2 image id is recomputed when is set + /// (a fresh image, or one whose stored id was valid), else kept as it was. + /// + public void Write(Stream output, bool recomputeImageId) { + ArgumentNullException.ThrowIfNull(output); + this.Validate(); + var page = (int)this.EffectivePageSize; + var region = this.HeaderRegionLength; + var header = new byte[region]; + if (recomputeImageId && !this.IsVendor && this.HeaderVersion < 3) this.ImageId = this.ComputeImageId(); + if (this.IsVendor) this.WriteVendorHeader(header); + else this.WriteBootHeader(header, region); + this.HeaderTail.AsSpan(0, Math.Min(this.HeaderTail.Length, region - this.KnownHeaderLength)) + .CopyTo(header.AsSpan(this.KnownHeaderLength)); + output.Write(header); + + if (this.IsVendor) { + foreach (var r in this.VendorRamdisks) output.Write(r.Data); + Pad(output, this.VendorRamdisks.Sum(r => (long)r.Data.Length), page); + WritePadded(output, this.Dtb, page); + if (this.HeaderVersion >= 4) { + var table = new byte[this.VendorRamdisks.Count * VendorRamdiskEntrySize]; + uint rel = 0; + for (var i = 0; i < this.VendorRamdisks.Count; ++i) { + var r = this.VendorRamdisks[i]; + var e = table.AsSpan(i * VendorRamdiskEntrySize, VendorRamdiskEntrySize); + BinaryPrimitives.WriteUInt32LittleEndian(e, (uint)r.Data.Length); + BinaryPrimitives.WriteUInt32LittleEndian(e[4..], rel); + BinaryPrimitives.WriteUInt32LittleEndian(e[8..], r.Type); + r.Name.AsSpan(0, Math.Min(r.Name.Length, VendorRamdiskNameSize)).CopyTo(e[12..]); + for (var w = 0; w < BoardIdWords; ++w) BinaryPrimitives.WriteUInt32LittleEndian(e[(44 + 4 * w)..], r.BoardId[w]); + rel += (uint)r.Data.Length; + } + output.Write(table); + Pad(output, table.Length, page); + WritePadded(output, this.Bootconfig, page); + } + } else { + WritePadded(output, this.Kernel, page); + WritePadded(output, this.Ramdisk, page); + if (this.HeaderVersion >= 4) WritePadded(output, this.BootSignature, page); + WritePadded(output, this.Second, page); + if (this.HeaderVersion is 1 or 2) WritePadded(output, this.RecoveryDtbo, page); + if (this.HeaderVersion == 2) WritePadded(output, this.Dtb, page); + } + output.Write(this.Trailer); + } + + private void Validate() { + if (this.IsVendor ? this.HeaderVersion is < 3 or > 4 : this.HeaderVersion > 4) + throw new InvalidOperationException($"Android {(this.IsVendor ? "vendor_boot" : "boot")} image: header version {this.HeaderVersion} is not supported."); + if (!IsPowerOfTwoPage(this.EffectivePageSize)) + throw new InvalidOperationException($"Android boot image: page size {this.EffectivePageSize} is not a power of two in 2048..262144."); + if (!this.IsVendor) { + if (this.HeaderVersion >= 3 && this.Second.Length > 0) + throw new InvalidOperationException("Android boot image: header v3/v4 has no second-stage bootloader."); + if (this.HeaderVersion is not (1 or 2) && this.RecoveryDtbo.Length > 0) + throw new InvalidOperationException($"Android boot image: header v{this.HeaderVersion} has no recovery DTBO."); + if (this.HeaderVersion != 2 && this.Dtb.Length > 0) + throw new InvalidOperationException($"Android boot image: header v{this.HeaderVersion} has no DTB (only v2, or vendor_boot)."); + if (this.HeaderVersion < 4 && this.BootSignature.Length > 0) + throw new InvalidOperationException("Android boot image: only header v4 carries a boot signature."); + if (this.Bootconfig.Length > 0 || this.VendorRamdisks.Count > 0) + throw new InvalidOperationException("Android boot image: vendor ramdisks and bootconfig belong in a vendor_boot image."); + } else { + if (this.Kernel.Length + this.Ramdisk.Length + this.Second.Length + this.RecoveryDtbo.Length + this.BootSignature.Length > 0) + throw new InvalidOperationException("Android vendor_boot image: kernel, ramdisk, second, recovery DTBO and boot signature belong in a boot image."); + if (this.HeaderVersion < 4 && (this.VendorRamdisks.Count > 1 || this.Bootconfig.Length > 0)) + throw new InvalidOperationException("Android vendor_boot image: header v3 holds one vendor ramdisk and no bootconfig."); + } + } + + private void WriteBootHeader(Span h, int region) { + "ANDROID!"u8.CopyTo(h); + if (this.HeaderVersion < 3) { + W32(h, 8, (uint)this.Kernel.Length); + W32(h, 12, this.KernelAddress); + W32(h, 16, (uint)this.Ramdisk.Length); + W32(h, 20, this.RamdiskAddress); + W32(h, 24, (uint)this.Second.Length); + W32(h, 28, this.SecondAddress); + W32(h, 32, this.TagsAddress); + W32(h, 36, this.PageSize); + W32(h, 40, this.HeaderVersion); + W32(h, 44, this.OsVersionPatchLevel); + CopyField(this.Board, h.Slice(48, BootNameSize)); + CopyField(this.Cmdline, h.Slice(64, BootArgsSize)); + CopyField(this.ImageId, h.Slice(576, 32)); + CopyField(this.ExtraCmdline, h.Slice(608, BootExtraArgsSize)); + if (this.HeaderVersion >= 1) { + var page = (long)this.PageSize; + W32(h, 1632, (uint)this.RecoveryDtbo.Length); + var dtboOffset = this.RecoveryDtbo.Length == 0 ? 0UL : (ulong)(region + + Pages(this.Kernel.Length, (int)page) * page + Pages(this.Ramdisk.Length, (int)page) * page + + Pages(this.Second.Length, (int)page) * page); + BinaryPrimitives.WriteUInt64LittleEndian(h[1636..], dtboOffset); + W32(h, 1644, this.HeaderSize); + } + if (this.HeaderVersion == 2) { + W32(h, 1648, (uint)this.Dtb.Length); + BinaryPrimitives.WriteUInt64LittleEndian(h[1652..], this.DtbAddress); + } + } else { + W32(h, 8, (uint)this.Kernel.Length); + W32(h, 12, (uint)this.Ramdisk.Length); + W32(h, 16, this.OsVersionPatchLevel); + W32(h, 20, this.HeaderSize); + for (var i = 0; i < 4; ++i) W32(h, 24 + 4 * i, this.Reserved[i]); + W32(h, 40, this.HeaderVersion); + CopyField(this.Cmdline, h.Slice(44, BootV3ArgsSize)); + if (this.HeaderVersion >= 4) W32(h, 1580, (uint)this.BootSignature.Length); + } + } + + private void WriteVendorHeader(Span h) { + "VNDRBOOT"u8.CopyTo(h); + W32(h, 8, this.HeaderVersion); + W32(h, 12, this.PageSize); + W32(h, 16, this.KernelAddress); + W32(h, 20, this.RamdiskAddress); + W32(h, 24, checked((uint)this.VendorRamdisks.Sum(r => (long)r.Data.Length))); + CopyField(this.Cmdline, h.Slice(28, VendorArgsSize)); + W32(h, 2076, this.TagsAddress); + CopyField(this.Board, h.Slice(2080, BootNameSize)); + W32(h, 2096, this.HeaderSize); + W32(h, 2100, (uint)this.Dtb.Length); + BinaryPrimitives.WriteUInt64LittleEndian(h[2104..], this.DtbAddress); + if (this.HeaderVersion >= 4) { + W32(h, 2112, (uint)(this.VendorRamdisks.Count * VendorRamdiskEntrySize)); + W32(h, 2116, (uint)this.VendorRamdisks.Count); + W32(h, 2120, VendorRamdiskEntrySize); + W32(h, 2124, (uint)this.Bootconfig.Length); + } + } + + private static void W32(Span h, int offset, uint value) => BinaryPrimitives.WriteUInt32LittleEndian(h[offset..], value); + + private static void CopyField(byte[] value, Span field) { + field.Clear(); + value.AsSpan(0, Math.Min(value.Length, field.Length)).CopyTo(field); + } + + private static void WritePadded(Stream output, byte[] data, int page) { + output.Write(data); + Pad(output, data.Length, page); + } + + private static void Pad(Stream output, long written, int page) { + var pad = (int)((page - written % page) % page); + if (pad > 0) output.Write(new byte[pad]); + } + + // ── os version / patch level ───────────────────────────────────────── + + public static string FormatOsVersion(uint packed) { + var v = packed >> 11; + return $"{v >> 14}.{(v >> 7) & 0x7F}.{v & 0x7F}"; + } + + public static string FormatOsPatchLevel(uint packed) { + var p = packed & 0x7FF; + return $"{2000 + (p >> 4):D4}-{p & 0xF:D2}"; + } + + /// Parses a[.b[.c]], 7 bits per field, as mkbootimg --os_version does. + public static bool TryParseOsVersion(string text, out uint version) { + version = 0; + var parts = text.Trim().Split('.'); + if (parts.Length is < 1 or > 3) return false; + uint packed = 0; + for (var i = 0; i < 3; ++i) { + uint field = 0; + if (i < parts.Length && (!uint.TryParse(parts[i], System.Globalization.NumberStyles.None, System.Globalization.CultureInfo.InvariantCulture, out field) || field > 127)) + return false; + packed = (packed << 7) | field; + } + version = packed; + return true; + } + + /// Parses YYYY-MM[-DD] as mkbootimg --os_patch_level does (7 bits of year past 2000, 4 of month). + public static bool TryParseOsPatchLevel(string text, out uint level) { + level = 0; + var parts = text.Trim().Split('-'); + if (parts.Length is < 2 or > 3 + || !uint.TryParse(parts[0], System.Globalization.NumberStyles.None, System.Globalization.CultureInfo.InvariantCulture, out var year) + || !uint.TryParse(parts[1], System.Globalization.NumberStyles.None, System.Globalization.CultureInfo.InvariantCulture, out var month) + || year is < 2000 or > 2127 || month > 15) + return false; + level = ((year - 2000) << 4) | month; + return true; + } +} diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageFormatDescriptor.cs b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageFormatDescriptor.cs new file mode 100644 index 000000000..05ce7a719 --- /dev/null +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageFormatDescriptor.cs @@ -0,0 +1,290 @@ +#pragma warning disable CS1591 +using System.Globalization; +using Compression.Registry; +using FileFormat.FirmwareCommon; + +namespace FileFormat.AndroidBootImage; + +/// +/// Android boot image — boot.img / recovery.img (magic ANDROID!, header +/// v0–v4) and vendor_boot.img (magic VNDRBOOT, header v3–v4) — as a pseudo-archive +/// whose members are the components unpack_bootimg extracts, under the names it gives them: +/// kernel, ramdisk, second, recovery_dtbo, dtb, +/// boot_signature, vendor_ramdisk / vendor_ramdiskNN, bootconfig. +/// metadata.ini renders the header; bytes after the last component (partition padding, an +/// AVB footer) surface as trailer.bin. +/// +/// +/// Create and edit write exactly what AOSP mkbootimg writes for the same inputs and +/// header fields, image id included; the oracle tests compare the bytes. An edit refuses an image +/// whose content is signed — a v4 boot signature or an AVB footer would go stale — unless the edit +/// is removing that signature, and it refuses a layout mkbootimg could not have produced. +/// Reference: https://source.android.com/docs/core/architecture/bootloader/boot-image-header; +/// AOSP system/tools/mkbootimg (Apache-2.0), converted. +/// +public sealed class AndroidBootImageFormatDescriptor : IFormatDescriptor, IArchiveFormatOperations, + IArchiveCreatable, IArchiveModifiable, ISyntheticEntryNames { + + public const string Kernel = "kernel", Ramdisk = "ramdisk", Second = "second", RecoveryDtbo = "recovery_dtbo", + Dtb = "dtb", BootSignature = "boot_signature", VendorRamdisk = "vendor_ramdisk", Bootconfig = "bootconfig", + Trailer = "trailer.bin", FullImage = "FULL.img"; + + private static readonly IReadOnlySet Synthetic = new HashSet(StringComparer.OrdinalIgnoreCase) { + FirmwareArchive.MetadataName, FullImage, + }; + + public IReadOnlySet SyntheticEntryNames => Synthetic; + public string Id => "AndroidBootImage"; + public string DisplayName => "Android boot image"; + public FormatCategory Category => FormatCategory.Archive; + public FormatCapabilities Capabilities => + FormatCapabilities.CanList | FormatCapabilities.CanExtract | FormatCapabilities.CanCreate | + FormatCapabilities.CanModify | FormatCapabilities.CanTest | FormatCapabilities.SupportsMultipleEntries; + public string DefaultExtension => ".bootimg"; + /// .img belongs to every disk-image format; detection is by magic. + public IReadOnlyList Extensions => [".bootimg"]; + public IReadOnlyList CompoundExtensions => []; + public IReadOnlyList MagicSignatures => [ + new("ANDROID!"u8.ToArray(), Confidence: 0.95), + new("VNDRBOOT"u8.ToArray(), Confidence: 0.95), + ]; + public IReadOnlyList Methods => [new("stored", "Stored")]; + public string? TarCompressionFormatId => null; + public AlgorithmFamily Family => AlgorithmFamily.Archive; + public string Description => + "Android boot / recovery (header v0-v4) and vendor_boot (v3-v4) image: kernel, ramdisks, second stage, DTB, " + + "recovery DTBO, bootconfig and boot signature, laid out and identified exactly as mkbootimg does."; + + // ── read ───────────────────────────────────────────────────────────── + + public List List(Stream stream, string? password) => FirmwareArchive.List(Entries(FirmwareArchive.ReadAll(stream))); + + public void Extract(Stream stream, string outputDir, string? password, string[]? files) + => FirmwareArchive.Extract(Entries(FirmwareArchive.ReadAll(stream)), outputDir, files); + + List IArchiveFormatOperations.ListSpan(ReadOnlySpan archive, string? password) + => FirmwareArchive.List(Entries(archive.ToArray())); + + void IArchiveFormatOperations.ExtractSpan(ReadOnlySpan archive, string outputDir, string? password, string[]? files) + => FirmwareArchive.Extract(Entries(archive.ToArray()), outputDir, files); + + /// The members of ; an image that does not parse lists as itself plus the reason. + public static List Entries(byte[] data) { + AndroidBootImage img; + try { + img = AndroidBootImage.Parse(data); + } catch (Exception e) when (e is InvalidDataException or ArgumentException or OverflowException) { + return [new(FirmwareArchive.MetadataName, AndroidBootImageMetadata.RenderPartial(e.Message)), new(FullImage, data)]; + } + var entries = new List { new(FirmwareArchive.MetadataName, AndroidBootImageMetadata.Render(img)) }; + void Add(string name, byte[] part) { + if (part.Length > 0) entries.Add(new(name, part)); + } + if (img.IsVendor) { + if (img.HeaderVersion < 4) Add(VendorRamdisk, img.VendorRamdisks.Count > 0 ? img.VendorRamdisks[0].Data : []); + else + for (var i = 0; i < img.VendorRamdisks.Count; ++i) + entries.Add(new(AndroidBootImageMetadata.RamdiskEntryName(i), img.VendorRamdisks[i].Data)); + Add(Dtb, img.Dtb); + Add(Bootconfig, img.Bootconfig); + } else { + Add(Kernel, img.Kernel); + Add(Ramdisk, img.Ramdisk); + Add(Second, img.Second); + Add(RecoveryDtbo, img.RecoveryDtbo); + Add(Dtb, img.Dtb); + Add(BootSignature, img.BootSignature); + } + Add(Trailer, img.Trailer); + return entries; + } + + // ── create ─────────────────────────────────────────────────────────── + + /// + /// Builds an image from component files named as unpack_bootimg names them, with the + /// header fields taken from a metadata.ini among the inputs (the rendering this + /// descriptor lists) and mkbootimg's defaults for every field it does not set. + /// + public void Create(Stream output, IReadOnlyList inputs, FormatCreateOptions options) { + ArgumentNullException.ThrowIfNull(output); + ArgumentNullException.ThrowIfNull(inputs); + var files = inputs.Where(i => !i.IsDirectory && !string.IsNullOrEmpty(i.ArchiveName)) + .Select(i => (Name: Leaf(i.ArchiveName), Input: i)).ToList(); + foreach (var (name, _) in files) + if (!IsComponentName(name) && !name.Equals(FirmwareArchive.MetadataName, StringComparison.OrdinalIgnoreCase)) + throw new ArgumentException($"Android boot image: '{name}' is not a boot image component " + + "(kernel, ramdisk, second, recovery_dtbo, dtb, boot_signature, vendor_ramdisk[NN], bootconfig, trailer.bin, metadata.ini)."); + + var metadata = files.FirstOrDefault(f => f.Name.Equals(FirmwareArchive.MetadataName, StringComparison.OrdinalIgnoreCase)).Input; + var ini = metadata is null ? null : FirmwareArchive.ParseIni(metadata.ReadContent()); + var vendorHint = files.Any(f => f.Name.StartsWith(VendorRamdisk, StringComparison.OrdinalIgnoreCase) || f.Name.Equals(Bootconfig, StringComparison.OrdinalIgnoreCase)); + var img = AndroidBootImageMetadata.NewImage(ini, vendorHint); + + var parts = files.Where(f => IsComponentName(f.Name)).Select(f => (f.Name, Data: f.Input.ReadContent())).ToList(); + ApplyComponents(img, parts, creating: true); + // mkbootimg writes a zero load address for an absent ramdisk or second stage (boot v0-v2). + if (!img.IsVendor && img.HeaderVersion < 3) { + if (img.Ramdisk.Length == 0) img.RamdiskAddress = 0; + if (img.Second.Length == 0) img.SecondAddress = 0; + } + if (ini is not null) AndroidBootImageMetadata.Apply(img, ini); + Write(output, img, recomputeImageId: true); + } + + // ── modify ─────────────────────────────────────────────────────────── + + public void Add(Stream archive, IReadOnlyList inputs) { + ArgumentNullException.ThrowIfNull(archive); + ArgumentNullException.ThrowIfNull(inputs); + var (img, original) = OpenForEdit(archive); + var files = inputs.Where(i => !i.IsDirectory && !string.IsNullOrEmpty(i.ArchiveName)) + .Select(i => (Name: Leaf(i.ArchiveName), Input: i)).ToList(); + var parts = new List<(string Name, byte[] Data)>(); + Dictionary? ini = null; + foreach (var (name, input) in files) { + if (name.Equals(FirmwareArchive.MetadataName, StringComparison.OrdinalIgnoreCase)) ini = FirmwareArchive.ParseIni(input.ReadContent()); + else if (name.Equals(FullImage, StringComparison.OrdinalIgnoreCase)) throw new NotSupportedException($"Android boot image: {FullImage} is a view of the whole image, not a member."); + else if (IsComponentName(name)) parts.Add((name, input.ReadContent())); + else throw new ArgumentException($"Android boot image: '{name}' is not a boot image component."); + } + if (parts.Count == 0 && ini is null) return; + RefuseSignedEdit(img, touchesContent: true); + ApplyComponents(img, parts, creating: false); + if (ini is not null) AndroidBootImageMetadata.Apply(img, ini); + Commit(archive, img, original); + } + + public void Remove(Stream archive, string[] entryNames) { + ArgumentNullException.ThrowIfNull(archive); + var names = (entryNames ?? []).Select(Leaf).Where(n => !Synthetic.Contains(n)).ToList(); + if (names.Count == 0) return; + var (img, original) = OpenForEdit(archive); + var dropsOnlySignatures = names.All(n => n.Equals(BootSignature, StringComparison.OrdinalIgnoreCase) || n.Equals(Trailer, StringComparison.OrdinalIgnoreCase)); + RefuseSignedEdit(img, touchesContent: !dropsOnlySignatures); + + // Remove vendor ramdisk fragments from the highest index down so earlier indices keep their meaning. + var fragments = new List(); + foreach (var name in names) { + if (TryRamdiskIndex(name, out var index)) { + if (index < img.VendorRamdisks.Count) fragments.Add(index); + continue; + } + switch (name.ToLowerInvariant()) { + case Kernel: img.Kernel = []; break; + case Ramdisk: img.Ramdisk = []; break; + case Second: img.Second = []; break; + case RecoveryDtbo: img.RecoveryDtbo = []; break; + case Dtb: img.Dtb = []; break; + case BootSignature: img.BootSignature = []; break; + case Bootconfig: img.Bootconfig = []; break; + case Trailer: img.Trailer = []; break; + case VendorRamdisk: + if (img.IsVendor && img.HeaderVersion < 4) img.VendorRamdisks.Clear(); + break; + } + } + foreach (var index in fragments.Distinct().OrderDescending()) img.VendorRamdisks.RemoveAt(index); + Commit(archive, img, original); + } + + /// Empties every component and the trailer, keeping the header fields: a valid image with nothing in it. + public void Purge(Stream archive) { + ArgumentNullException.ThrowIfNull(archive); + var (img, original) = OpenForEdit(archive); + img.Kernel = img.Ramdisk = img.Second = img.RecoveryDtbo = img.Dtb = img.BootSignature = img.Bootconfig = img.Trailer = []; + img.VendorRamdisks.Clear(); + Commit(archive, img, original); + } + + private static (AndroidBootImage Image, AndroidBootImage Original) OpenForEdit(Stream archive) { + if (!archive.CanRead || !archive.CanWrite || !archive.CanSeek) + throw new ArgumentException("Android boot image editing requires a readable, writable, seekable stream.", nameof(archive)); + var data = FirmwareArchive.ReadAll(archive); + var img = AndroidBootImage.Parse(data); + if (!img.IsCanonical) + throw new NotSupportedException($"Android boot image: {img.NonCanonicalReason}; this layout is not one mkbootimg writes, so it is not re-laid out."); + return (img, AndroidBootImage.Parse(data)); + } + + private static void RefuseSignedEdit(AndroidBootImage img, bool touchesContent) { + if (!touchesContent) return; + if (img.BootSignature.Length > 0) + throw new NotSupportedException("Android boot image: the v4 boot signature covers this image and would go stale; remove boot_signature first."); + if (img.HasAvbFooter) + throw new NotSupportedException("Android boot image: an AVB footer covers this image and would go stale; remove trailer.bin first."); + } + + private static void Commit(Stream archive, AndroidBootImage img, AndroidBootImage original) + => WholeImageRebuildCommitter.Replace(archive, + candidate => Write(candidate, img, recomputeImageId: original.ImageIdValid), + candidate => _ = AndroidBootImage.Parse(FirmwareArchive.ReadAll(candidate))); + + private static void Write(Stream output, AndroidBootImage img, bool recomputeImageId) { + try { + img.Write(output, recomputeImageId); + } catch (InvalidOperationException e) { + throw new ArgumentException(e.Message, e); + } + } + + // ── components ─────────────────────────────────────────────────────── + + private static void ApplyComponents(AndroidBootImage img, List<(string Name, byte[] Data)> parts, bool creating) { + foreach (var (name, data) in parts.Where(p => !TryRamdiskIndex(p.Name, out _))) { + switch (name.ToLowerInvariant()) { + case Kernel: img.Kernel = data; break; + case Ramdisk: img.Ramdisk = data; break; + case Second: img.Second = data; break; + case RecoveryDtbo: img.RecoveryDtbo = data; break; + case Dtb: img.Dtb = data; break; + case BootSignature: img.BootSignature = data; break; + case Bootconfig: img.Bootconfig = data; break; + case Trailer: img.Trailer = data; break; + case VendorRamdisk: + if (img.IsVendor && img.HeaderVersion >= 4) + throw new ArgumentException("Android vendor_boot v4: name ramdisk fragments vendor_ramdisk00, vendor_ramdisk01, ..."); + if (img.VendorRamdisks.Count == 0) img.VendorRamdisks.Add(new VendorRamdisk { Type = AndroidBootImage.VendorRamdiskTypePlatform }); + img.VendorRamdisks[0].Data = data; + break; + } + } + + var fragments = parts.Where(p => TryRamdiskIndex(p.Name, out _)) + .Select(p => (Index: RamdiskIndex(p.Name), p.Data)).OrderBy(p => p.Index).ToList(); + if (fragments.Count > 0 && !(img.IsVendor && img.HeaderVersion >= 4)) + throw new ArgumentException("Android boot image: numbered vendor_ramdiskNN fragments exist only in a vendor_boot v4 image."); + foreach (var (index, data) in fragments) { + if (index < img.VendorRamdisks.Count) { + img.VendorRamdisks[index].Data = data; + continue; + } + if (index != img.VendorRamdisks.Count) + throw new ArgumentException($"Android vendor_boot: {AndroidBootImageMetadata.RamdiskEntryName(index)} would leave a gap after {img.VendorRamdisks.Count} fragments."); + // mkbootimg's --vendor_ramdisk becomes an unnamed platform fragment; later fragments need a name of their own. + var first = img.VendorRamdisks.Count == 0 && creating; + var name = new byte[AndroidBootImage.VendorRamdiskNameSize]; + if (!first) System.Text.Encoding.ASCII.GetBytes("ramdisk" + index.ToString("D2", CultureInfo.InvariantCulture)).CopyTo(name, 0); + img.VendorRamdisks.Add(new VendorRamdisk { + Data = data, + Type = first ? AndroidBootImage.VendorRamdiskTypePlatform : 0, + Name = name, + }); + } + } + + private static bool IsComponentName(string name) + => TryRamdiskIndex(name, out _) || name.ToLowerInvariant() is Kernel or Ramdisk or Second or RecoveryDtbo or Dtb + or BootSignature or VendorRamdisk or Bootconfig or Trailer; + + private static bool TryRamdiskIndex(string name, out int index) { + index = -1; + return name.Length == VendorRamdisk.Length + 2 + && name.StartsWith(VendorRamdisk, StringComparison.OrdinalIgnoreCase) + && int.TryParse(name.AsSpan(VendorRamdisk.Length), NumberStyles.None, CultureInfo.InvariantCulture, out index); + } + + private static int RamdiskIndex(string name) => TryRamdiskIndex(name, out var i) ? i : -1; + + private static string Leaf(string name) => name.Replace('\\', '/').TrimEnd('/').Split('/')[^1]; +} diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageMetadata.cs b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageMetadata.cs new file mode 100644 index 000000000..808809d8c --- /dev/null +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageMetadata.cs @@ -0,0 +1,215 @@ +#pragma warning disable CS1591 +using System.Globalization; +using System.Text; +using FileFormat.FirmwareCommon; + +namespace FileFormat.AndroidBootImage; + +/// +/// The metadata.ini rendering of an Android boot / vendor_boot header, and the reverse: +/// applying an edited rendering back onto an image. A key is applied only when its value differs +/// from what the image itself renders, so handing back an untouched rendering changes nothing — +/// not even the bytes past the NUL of a string field. +/// +public static class AndroidBootImageMetadata { + + public const string BootSection = "android_boot"; + public const string VendorSection = "android_vendor_boot"; + + /// Rendered for information only; editing them has no effect. + private static readonly HashSet Informational = new(StringComparer.OrdinalIgnoreCase) { + "magic", "image_id", "image_id_valid", "canonical", "canonical_issue", "trailer_size", "avb_footer", + "boot_signature_size", "parse_status", "error", + }; + + public static byte[] Render(AndroidBootImage img) { + var sb = new StringBuilder(); + void Line(string key, string value) => sb.Append(key).Append(" = ").Append(value).Append('\n'); + + sb.Append('[').Append(img.IsVendor ? VendorSection : BootSection).Append("]\n"); + Line("magic", img.IsVendor ? AndroidBootImage.VendorBootMagic : AndroidBootImage.BootMagic); + Line("header_version", Dec(img.HeaderVersion)); + if (img.IsVendor || img.HeaderVersion < 3) { + Line("page_size", Dec(img.PageSize)); + Line("kernel_load_address", FirmwareArchive.Hex(img.KernelAddress)); + Line("ramdisk_load_address", FirmwareArchive.Hex(img.RamdiskAddress)); + if (!img.IsVendor) Line("second_load_address", FirmwareArchive.Hex(img.SecondAddress)); + Line("tags_load_address", FirmwareArchive.Hex(img.TagsAddress)); + } + if (img.IsVendor || img.HeaderVersion == 2) Line("dtb_load_address", "0x" + img.DtbAddress.ToString("X16", CultureInfo.InvariantCulture)); + if (!img.IsVendor) { + Line("os_version", AndroidBootImage.FormatOsVersion(img.OsVersionPatchLevel)); + Line("os_patch_level", AndroidBootImage.FormatOsPatchLevel(img.OsVersionPatchLevel)); + } + if (img.IsVendor || img.HeaderVersion < 3) Line("board", FirmwareArchive.CString(img.Board)); + Line("cmdline", FirmwareArchive.CString(img.Cmdline)); + if (!img.IsVendor && img.HeaderVersion < 3) Line("extra_cmdline", FirmwareArchive.CString(img.ExtraCmdline)); + if (img.IsVendor || img.HeaderVersion >= 1) Line("header_size", Dec(img.HeaderSize)); + if (!img.IsVendor && img.HeaderVersion < 3) { + Line("image_id", Convert.ToHexStringLower(img.ImageId)); + Line("image_id_valid", Bool(img.ImageIdValid)); + } + if (!img.IsVendor && img.HeaderVersion >= 4) Line("boot_signature_size", Dec((uint)img.BootSignature.Length)); + Line("trailer_size", Dec((uint)img.Trailer.Length)); + Line("avb_footer", Bool(img.HasAvbFooter)); + Line("canonical", Bool(img.IsCanonical)); + if (img.NonCanonicalReason is { } reason) Line("canonical_issue", reason); + Line("parse_status", "ok"); + + if (img.IsVendor && img.HeaderVersion >= 4) + for (var i = 0; i < img.VendorRamdisks.Count; ++i) { + var r = img.VendorRamdisks[i]; + sb.Append('[').Append(RamdiskEntryName(i)).Append("]\n"); + Line("type", Dec(r.Type)); + Line("name", FirmwareArchive.CString(r.Name)); + Line("board_id", string.Join(',', r.BoardId.Select(w => FirmwareArchive.Hex(w)))); + } + return Encoding.UTF8.GetBytes(sb.ToString()); + } + + public static byte[] RenderPartial(string error) => Encoding.UTF8.GetBytes( + $"[{BootSection}]\nparse_status = partial\nerror = {error.ReplaceLineEndings(" ")}\n"); + + public static string RamdiskEntryName(int index) => "vendor_ramdisk" + index.ToString("D2", CultureInfo.InvariantCulture); + + /// + /// A fresh image of the kind and header version names (boot v0 when it + /// names none), carrying mkbootimg's defaults: base 0x10000000 with its standard offsets, + /// 2048-byte pages, and the header size of the version. + /// + public static AndroidBootImage NewImage(IReadOnlyDictionary? ini, bool vendorHint) { + var vendor = vendorHint; + if (ini is not null) { + if (ini.Keys.Any(k => k.StartsWith(VendorSection + ".", StringComparison.OrdinalIgnoreCase))) vendor = true; + else if (ini.Keys.Any(k => k.StartsWith(BootSection + ".", StringComparison.OrdinalIgnoreCase))) vendor = false; + } + var section = vendor ? VendorSection : BootSection; + uint version = vendor ? 3u : 0u; + if (ini is not null && ini.TryGetValue(section + ".header_version", out var v)) { + if (!FirmwareArchive.TryParseNumber(v, out var parsed) || parsed > 4 || vendor && parsed < 3) + throw new ArgumentException($"metadata.ini: header_version '{v}' is not valid for a {(vendor ? "vendor_boot" : "boot")} image."); + version = (uint)parsed; + } + + const uint Base = 0x10000000; + var img = new AndroidBootImage { + IsVendor = vendor, + HeaderVersion = version, + PageSize = !vendor && version >= 3 ? AndroidBootImage.V3PageSize : 2048u, + KernelAddress = Base + 0x00008000, + RamdiskAddress = Base + 0x01000000, + SecondAddress = Base + 0x00F00000, + TagsAddress = Base + 0x00000100, + DtbAddress = Base + 0x01F00000UL, + Cmdline = new byte[vendor ? AndroidBootImage.VendorArgsSize : version >= 3 ? AndroidBootImage.BootV3ArgsSize : AndroidBootImage.BootArgsSize], + HeaderSize = vendor + ? version >= 4 ? AndroidBootImage.VendorV4HeaderSize : AndroidBootImage.VendorV3HeaderSize + : version switch { + 1 => AndroidBootImage.BootV1HeaderSize, 2 => AndroidBootImage.BootV2HeaderSize, + 3 => AndroidBootImage.BootV3HeaderSize, 4 => AndroidBootImage.BootV4HeaderSize, _ => 0, + }, + }; + return img; + } + + /// Applies every key of whose value differs from the image's own rendering. + public static void Apply(AndroidBootImage img, IReadOnlyDictionary ini) { + var current = FirmwareArchive.ParseIni(Render(img)); + var section = img.IsVendor ? VendorSection : BootSection; + var other = img.IsVendor ? BootSection : VendorSection; + if (ini.Keys.Any(k => k.StartsWith(other + ".", StringComparison.OrdinalIgnoreCase))) + throw new NotSupportedException($"metadata.ini describes a {(img.IsVendor ? "boot" : "vendor_boot")} image; this is a {(img.IsVendor ? "vendor_boot" : "boot")} image."); + + foreach (var (qualified, value) in ini) { + if (current.TryGetValue(qualified, out var existing) && existing == value) continue; + var dot = qualified.IndexOf('.'); + if (dot < 0) continue; + var sec = qualified[..dot]; + var key = qualified[(dot + 1)..]; + if (Informational.Contains(key)) continue; + if (sec.Equals(section, StringComparison.OrdinalIgnoreCase)) ApplyHeaderKey(img, key, value); + else if (img.IsVendor && sec.StartsWith("vendor_ramdisk", StringComparison.OrdinalIgnoreCase) + && int.TryParse(sec.AsSpan("vendor_ramdisk".Length), NumberStyles.None, CultureInfo.InvariantCulture, out var index) + && index >= 0 && index < img.VendorRamdisks.Count) + ApplyRamdiskKey(img.VendorRamdisks[index], key, value); + } + } + + private static void ApplyHeaderKey(AndroidBootImage img, string key, string value) { + switch (key.ToLowerInvariant()) { + case "header_version": + throw new NotSupportedException("metadata.ini: the header version of an existing image cannot be changed; create a new image instead."); + case "page_size": + if (!img.IsVendor && img.HeaderVersion >= 3) return; + var page = (uint)Number(key, value, uint.MaxValue); + if (!AndroidBootImage.IsPowerOfTwoPage(page)) throw new ArgumentException($"metadata.ini: page_size {page} is not a power of two in 2048..262144."); + img.PageSize = page; + return; + case "kernel_load_address": img.KernelAddress = (uint)Number(key, value, uint.MaxValue); return; + case "ramdisk_load_address": img.RamdiskAddress = (uint)Number(key, value, uint.MaxValue); return; + case "second_load_address": img.SecondAddress = (uint)Number(key, value, uint.MaxValue); return; + case "tags_load_address": img.TagsAddress = (uint)Number(key, value, uint.MaxValue); return; + case "dtb_load_address": img.DtbAddress = Number(key, value, ulong.MaxValue); return; + case "header_size": img.HeaderSize = (uint)Number(key, value, uint.MaxValue); return; + case "os_version": + if (!AndroidBootImage.TryParseOsVersion(value, out var os)) throw new ArgumentException($"metadata.ini: os_version '{value}' is not a.b.c with each part below 128."); + img.OsVersionPatchLevel = (os << 11) | (img.OsVersionPatchLevel & 0x7FF); + return; + case "os_patch_level": + if (!AndroidBootImage.TryParseOsPatchLevel(value, out var level)) throw new ArgumentException($"metadata.ini: os_patch_level '{value}' is not YYYY-MM."); + img.OsVersionPatchLevel = (img.OsVersionPatchLevel & ~0x7FFu) | level; + return; + case "board": img.Board = Field(key, value, AndroidBootImage.BootNameSize); return; + case "cmdline": + if (!img.IsVendor && img.HeaderVersion < 3) { + // mkbootimg spills what does not fit the 512-byte field into extra_cmdline. + var bytes = Encoding.Latin1.GetBytes(value); + if (bytes.Length > AndroidBootImage.BootArgsSize - 1) { + img.Cmdline = Field(key, Encoding.Latin1.GetString(bytes, 0, AndroidBootImage.BootArgsSize - 1), AndroidBootImage.BootArgsSize); + img.ExtraCmdline = Field(key, Encoding.Latin1.GetString(bytes, AndroidBootImage.BootArgsSize - 1, bytes.Length - (AndroidBootImage.BootArgsSize - 1)), AndroidBootImage.BootExtraArgsSize); + } else + img.Cmdline = Field(key, value, AndroidBootImage.BootArgsSize); + } else + img.Cmdline = Field(key, value, img.Cmdline.Length, terminated: img.IsVendor); + return; + case "extra_cmdline": img.ExtraCmdline = Field(key, value, AndroidBootImage.BootExtraArgsSize); return; + default: + throw new ArgumentException($"metadata.ini: '{key}' is not a field of this image's header."); + } + } + + private static void ApplyRamdiskKey(VendorRamdisk r, string key, string value) { + switch (key.ToLowerInvariant()) { + case "type": r.Type = (uint)Number(key, value, uint.MaxValue); return; + case "name": r.Name = Field(key, value, AndroidBootImage.VendorRamdiskNameSize); return; + case "board_id": + var words = value.Split(',', StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries); + if (words.Length > AndroidBootImage.BoardIdWords) throw new ArgumentException($"metadata.ini: board_id has more than {AndroidBootImage.BoardIdWords} words."); + var id = new uint[AndroidBootImage.BoardIdWords]; + for (var i = 0; i < words.Length; ++i) id[i] = (uint)Number(key, words[i], uint.MaxValue); + r.BoardId = id; + return; + default: + throw new ArgumentException($"metadata.ini: '{key}' is not a field of a vendor ramdisk table entry."); + } + } + + private static ulong Number(string key, string value, ulong max) { + if (!FirmwareArchive.TryParseNumber(value, out var n) || n > max) + throw new ArgumentException($"metadata.ini: {key} '{value}' is not a number in range."); + return n; + } + + /// A NUL-padded fixed-size field. mkbootimg requires room for the terminator, except in the v3+ 1536-byte boot command line. + private static byte[] Field(string key, string value, int size, bool terminated = true) { + var bytes = Encoding.Latin1.GetBytes(value); + if (bytes.Length > size - (terminated ? 1 : 0)) + throw new ArgumentException($"metadata.ini: {key} is {bytes.Length} bytes; the field holds {size - (terminated ? 1 : 0)}."); + var field = new byte[size]; + bytes.CopyTo(field, 0); + return field; + } + + private static string Dec(uint value) => value.ToString(CultureInfo.InvariantCulture); + private static string Bool(bool value) => value ? "true" : "false"; +} diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/THIRD-PARTY-NOTICE.mkbootimg.txt b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/THIRD-PARTY-NOTICE.mkbootimg.txt new file mode 100644 index 000000000..5cd12204e --- /dev/null +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/THIRD-PARTY-NOTICE.mkbootimg.txt @@ -0,0 +1,262 @@ +AOSP mkbootimg (Android boot image tools) — header layout converted to C# + +Source: https://android.googlesource.com/platform/system/tools/mkbootimg +Revision: d2bb0af5ba6d3198a3e99529c97eda1be0b5a093 (checked against when this notice was written) +Licences: BSD-3-Clause (include/bootimg/bootimg.h), Apache-2.0 (mkbootimg.py, unpack_bootimg.py), + both reproduced below + +AndroidBootImage and AndroidBootImageMetadata are a conversion into this codebase of the header +structures in include/bootimg/bootimg.h and of the page-aligned layout mkbootimg.py writes and +unpack_bootimg.py reads, not a verbatim copy. Magic strings, field offsets and sizes are copied +exactly, as the format requires. mkbootimg and unpack_bootimg are also run as black-box oracles in +the test suite. + +------------------------------------------------------------------------------- +include/bootimg/bootimg.h + +Copyright (C) 2007 The Android Open Source Project + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------- +mkbootimg.py (Copyright 2015, The Android Open Source Project) +unpack_bootimg.py (Copyright 2018, The Android Open Source Project) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +------------------------------------------------------------------------------- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AndroidVbmetaFormatDescriptor.cs b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AndroidVbmetaFormatDescriptor.cs new file mode 100644 index 000000000..bbed715b3 --- /dev/null +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AndroidVbmetaFormatDescriptor.cs @@ -0,0 +1,255 @@ +#pragma warning disable CS1591 +using System.Globalization; +using System.Text; +using Compression.Registry; +using FileFormat.FirmwareCommon; + +namespace FileFormat.AndroidVbmeta; + +/// +/// Android Verified Boot 2.0 vbmeta image (magic AVB0) as a pseudo-archive: +/// metadata.ini renders the header, the verification result and every descriptor's fields; +/// each descriptor is a member under descriptors/ as its exact encoded bytes; the public +/// key, its metadata and the signature are members of their own. +/// +/// +/// Listing verifies: the hash over header and auxiliary block is recomputed, and an RSA +/// signature is checked against the embedded public key, as avbtool verify_image does for +/// the vbmeta blob itself. +/// Writing is limited to what can be written honestly without a private key: unsigned +/// (NONE) images, created from descriptor blobs and header fields, or edited by adding, +/// replacing and removing descriptors. The bytes equal avbtool make_vbmeta_image --algorithm +/// NONE's for the same descriptors. A signed image is read and verified, never rewritten. +/// Reference: AOSP platform/external/avb (avbtool.py, libavb), MIT / +/// Apache-2.0, converted. +/// +public sealed class AndroidVbmetaFormatDescriptor : IFormatDescriptor, IArchiveFormatOperations, + IArchiveCreatable, IArchiveModifiable, ISyntheticEntryNames { + + public const string PublicKeyName = "public_key.bin", PublicKeyMetadataName = "public_key_metadata.bin", + SignatureName = "signature.bin", TrailerName = "trailer.bin", FullImage = "FULL.img", DescriptorFolder = "descriptors/"; + + private static readonly IReadOnlySet Synthetic = new HashSet(StringComparer.OrdinalIgnoreCase) { + FirmwareArchive.MetadataName, FullImage, + }; + + public IReadOnlySet SyntheticEntryNames => Synthetic; + public string Id => "AndroidVbmeta"; + public string DisplayName => "Android Verified Boot (vbmeta)"; + public FormatCategory Category => FormatCategory.Archive; + public FormatCapabilities Capabilities => + FormatCapabilities.CanList | FormatCapabilities.CanExtract | FormatCapabilities.CanCreate | + FormatCapabilities.CanModify | FormatCapabilities.CanTest | FormatCapabilities.SupportsMultipleEntries; + public string DefaultExtension => ".avb"; + public IReadOnlyList Extensions => [".avb"]; + public IReadOnlyList CompoundExtensions => []; + public IReadOnlyList MagicSignatures => [new("AVB0"u8.ToArray(), Confidence: 0.9)]; + public IReadOnlyList Methods => [new("stored", "Stored")]; + public string? TarCompressionFormatId => null; + public AlgorithmFamily Family => AlgorithmFamily.Archive; + public string Description => + "Android Verified Boot 2.0 vbmeta image: header, hash/signature (verified on read) and descriptors " + + "(hash, hashtree, kernel cmdline, chain partition, property); unsigned images written as avbtool does."; + + // ── read ───────────────────────────────────────────────────────────── + + public List List(Stream stream, string? password) => FirmwareArchive.List(Entries(FirmwareArchive.ReadAll(stream))); + + public void Extract(Stream stream, string outputDir, string? password, string[]? files) + => FirmwareArchive.Extract(Entries(FirmwareArchive.ReadAll(stream)), outputDir, files); + + List IArchiveFormatOperations.ListSpan(ReadOnlySpan archive, string? password) + => FirmwareArchive.List(Entries(archive.ToArray())); + + void IArchiveFormatOperations.ExtractSpan(ReadOnlySpan archive, string outputDir, string? password, string[]? files) + => FirmwareArchive.Extract(Entries(archive.ToArray()), outputDir, files); + + public static List Entries(byte[] data) { + AvbVbmeta v; + try { + v = AvbVbmeta.Parse(data); + } catch (InvalidDataException e) { + return [ + new(FirmwareArchive.MetadataName, Encoding.UTF8.GetBytes($"[vbmeta]\nparse_status = partial\nerror = {e.Message}\n")), + new(FullImage, data), + ]; + } + var entries = new List { new(FirmwareArchive.MetadataName, RenderMetadata(v)) }; + for (var i = 0; i < v.Descriptors.Count; ++i) entries.Add(new(AvbDescriptorText.EntryName(i, v.Descriptors[i]), v.Descriptors[i].Encoded)); + if (v.PublicKey.Length > 0) entries.Add(new(PublicKeyName, v.PublicKey)); + if (v.PublicKeyMetadata.Length > 0) entries.Add(new(PublicKeyMetadataName, v.PublicKeyMetadata)); + if (v.Signature.Length > 0) entries.Add(new(SignatureName, v.Signature)); + if (v.Trailer.Length > 0) entries.Add(new(TrailerName, v.Trailer)); + return entries; + } + + public static byte[] RenderMetadata(AvbVbmeta v) { + var sb = new StringBuilder(); + void Line(string key, string value) => sb.Append(key).Append(" = ").Append(value).Append('\n'); + sb.Append("[vbmeta]\n"); + Line("required_libavb_version", $"{v.VersionMajor}.{v.VersionMinor}"); + Line("algorithm", AvbVbmeta.AlgorithmName(v.AlgorithmType)); + Line("rollback_index", v.RollbackIndex.ToString(CultureInfo.InvariantCulture)); + Line("flags", v.Flags.ToString(CultureInfo.InvariantCulture)); + Line("rollback_index_location", v.RollbackIndexLocation.ToString(CultureInfo.InvariantCulture)); + Line("release_string", AvbVbmeta.ReleaseText(v.ReleaseString)); + Line("hash", Convert.ToHexStringLower(v.Hash)); + Line("hash_valid", v.HashValid is { } h ? (h ? "true" : "false") : "n/a"); + Line("signature_valid", v.SignatureValid is { } s ? (s ? "true" : "false") : "n/a"); + if (v.PublicKey.Length > 0) Line("public_key_sha1", Convert.ToHexStringLower(System.Security.Cryptography.SHA1.HashData(v.PublicKey))); + Line("descriptors", v.Descriptors.Count.ToString(CultureInfo.InvariantCulture)); + Line("trailer_size", v.Trailer.Length.ToString(CultureInfo.InvariantCulture)); + Line("canonical", v.IsCanonical ? "true" : "false"); + if (v.NonCanonicalReason is { } reason) Line("canonical_issue", reason); + Line("parse_status", "ok"); + for (var i = 0; i < v.Descriptors.Count; ++i) { + sb.Append("[descriptor_").Append(i.ToString("D2", CultureInfo.InvariantCulture)).Append("]\n"); + AvbDescriptorText.Render(sb, v.Descriptors[i]); + } + return Encoding.UTF8.GetBytes(sb.ToString()); + } + + // ── create ─────────────────────────────────────────────────────────── + + /// + /// Writes an unsigned vbmeta image from descriptor blobs (descriptors/NN_*.bin, in + /// NN order), an optional public_key_metadata.bin, an optional trailer.bin + /// and the header fields of a metadata.ini — required libavb version, rollback index and + /// location, flags and release string. A public key or signature among the inputs is refused: + /// signing needs the private key. + /// + public void Create(Stream output, IReadOnlyList inputs, FormatCreateOptions options) { + ArgumentNullException.ThrowIfNull(output); + ArgumentNullException.ThrowIfNull(inputs); + var v = new AvbVbmeta(); + Encoding.ASCII.GetBytes("avbtool 1.3.0").CopyTo(v.ReleaseString, 0); + var descriptors = new SortedDictionary(); + Dictionary? ini = null; + foreach (var input in inputs.Where(i => !i.IsDirectory && !string.IsNullOrEmpty(i.ArchiveName))) { + var name = input.ArchiveName.Replace('\\', '/').TrimStart('/'); + if (name.Equals(FirmwareArchive.MetadataName, StringComparison.OrdinalIgnoreCase)) ini = FirmwareArchive.ParseIni(input.ReadContent()); + else if (TryDescriptorIndex(name, out var index)) { + if (!descriptors.TryAdd(index, AvbVbmeta.FromEncoded(input.ReadContent()))) + throw new ArgumentException($"vbmeta: two descriptors claim index {index}."); + } else if (name.Equals(PublicKeyMetadataName, StringComparison.OrdinalIgnoreCase)) v.PublicKeyMetadata = input.ReadContent(); + else if (name.Equals(TrailerName, StringComparison.OrdinalIgnoreCase)) v.Trailer = input.ReadContent(); + else if (name.Equals(PublicKeyName, StringComparison.OrdinalIgnoreCase) || name.Equals(SignatureName, StringComparison.OrdinalIgnoreCase)) + throw new NotSupportedException("vbmeta: only unsigned (NONE) images can be written; signing needs the private key."); + else throw new ArgumentException($"vbmeta: '{name}' is not a vbmeta member (descriptors/NN_*.bin, public_key_metadata.bin, trailer.bin, metadata.ini)."); + } + v.Descriptors = [.. descriptors.Values]; + if (ini is not null) ApplyHeader(v, ini, creating: true); + v.Write(output); + } + + private static void ApplyHeader(AvbVbmeta v, IReadOnlyDictionary ini, bool creating) { + var current = FirmwareArchive.ParseIni(RenderMetadata(v)); + foreach (var (qualified, value) in ini) { + if (!qualified.StartsWith("vbmeta.", StringComparison.OrdinalIgnoreCase)) continue; + if (current.TryGetValue(qualified, out var existing) && existing == value) continue; + var key = qualified["vbmeta.".Length..].ToLowerInvariant(); + switch (key) { + case "required_libavb_version": { + var parts = value.Split('.'); + if (parts.Length != 2 || !uint.TryParse(parts[0], NumberStyles.None, CultureInfo.InvariantCulture, out var major) + || !uint.TryParse(parts[1], NumberStyles.None, CultureInfo.InvariantCulture, out var minor)) + throw new ArgumentException($"metadata.ini: required_libavb_version '{value}' is not major.minor."); + (v.VersionMajor, v.VersionMinor) = (major, minor); + break; + } + case "rollback_index": v.RollbackIndex = Number(key, value); break; + case "flags": v.Flags = checked((uint)Number(key, value)); break; + case "rollback_index_location": v.RollbackIndexLocation = checked((uint)Number(key, value)); break; + case "release_string": { + var bytes = Encoding.UTF8.GetBytes(value); + if (bytes.Length > AvbVbmeta.ReleaseStringSize - 1) throw new ArgumentException($"metadata.ini: release_string is longer than {AvbVbmeta.ReleaseStringSize - 1} bytes."); + v.ReleaseString = new byte[AvbVbmeta.ReleaseStringSize]; + bytes.CopyTo(v.ReleaseString, 0); + break; + } + case "algorithm": + if (!value.Equals("NONE", StringComparison.OrdinalIgnoreCase)) + throw new NotSupportedException($"vbmeta: algorithm {value} needs the private key; only NONE can be written."); + break; + default: + // The remaining keys (hash, verification results, counts) are renderings, not fields. + if (!creating && key is not ("hash" or "hash_valid" or "signature_valid" or "public_key_sha1" or "descriptors" or "trailer_size" or "canonical" or "canonical_issue" or "parse_status")) + throw new ArgumentException($"metadata.ini: '{key}' is not a vbmeta header field."); + break; + } + } + } + + private static ulong Number(string key, string value) + => FirmwareArchive.TryParseNumber(value, out var n) ? n : throw new ArgumentException($"metadata.ini: {key} '{value}' is not a number."); + + private static bool TryDescriptorIndex(string name, out int index) { + index = -1; + if (!name.StartsWith(DescriptorFolder, StringComparison.OrdinalIgnoreCase)) return false; + var leaf = name[DescriptorFolder.Length..]; + var underscore = leaf.IndexOf('_'); + var digits = underscore < 0 ? Path.GetFileNameWithoutExtension(leaf) : leaf[..underscore]; + return int.TryParse(digits, NumberStyles.None, CultureInfo.InvariantCulture, out index); + } + + // ── modify ─────────────────────────────────────────────────────────── + + public void Add(Stream archive, IReadOnlyList inputs) { + ArgumentNullException.ThrowIfNull(archive); + ArgumentNullException.ThrowIfNull(inputs); + var v = OpenForEdit(archive); + foreach (var input in inputs.Where(i => !i.IsDirectory && !string.IsNullOrEmpty(i.ArchiveName))) { + var name = input.ArchiveName.Replace('\\', '/').TrimStart('/'); + if (name.Equals(FirmwareArchive.MetadataName, StringComparison.OrdinalIgnoreCase)) ApplyHeader(v, FirmwareArchive.ParseIni(input.ReadContent()), creating: false); + else if (TryDescriptorIndex(name, out var index)) { + var desc = AvbVbmeta.FromEncoded(input.ReadContent()); + if (index < v.Descriptors.Count) v.Descriptors[index] = desc; + else if (index == v.Descriptors.Count) v.Descriptors.Add(desc); + else throw new ArgumentException($"vbmeta: descriptor {index} would leave a gap after {v.Descriptors.Count} descriptors."); + } else if (name.Equals(PublicKeyMetadataName, StringComparison.OrdinalIgnoreCase)) v.PublicKeyMetadata = input.ReadContent(); + else if (name.Equals(TrailerName, StringComparison.OrdinalIgnoreCase)) v.Trailer = input.ReadContent(); + else if (name.Equals(PublicKeyName, StringComparison.OrdinalIgnoreCase) || name.Equals(SignatureName, StringComparison.OrdinalIgnoreCase)) + throw new NotSupportedException("vbmeta: only unsigned (NONE) images can be written; signing needs the private key."); + else throw new ArgumentException($"vbmeta: '{name}' is not a vbmeta member."); + } + Commit(archive, v); + } + + public void Remove(Stream archive, string[] entryNames) { + ArgumentNullException.ThrowIfNull(archive); + var names = (entryNames ?? []).Select(n => n.Replace('\\', '/').TrimStart('/')).Where(n => !Synthetic.Contains(n)).ToList(); + if (names.Count == 0) return; + var v = OpenForEdit(archive); + var drop = new List(); + foreach (var name in names) { + if (TryDescriptorIndex(name, out var index) && index < v.Descriptors.Count) drop.Add(index); + else if (name.Equals(PublicKeyMetadataName, StringComparison.OrdinalIgnoreCase)) v.PublicKeyMetadata = []; + else if (name.Equals(TrailerName, StringComparison.OrdinalIgnoreCase)) v.Trailer = []; + } + foreach (var index in drop.Distinct().OrderDescending()) v.Descriptors.RemoveAt(index); + Commit(archive, v); + } + + public void Purge(Stream archive) { + ArgumentNullException.ThrowIfNull(archive); + var v = OpenForEdit(archive); + v.Descriptors.Clear(); + v.PublicKeyMetadata = []; + v.Trailer = []; + Commit(archive, v); + } + + private static AvbVbmeta OpenForEdit(Stream archive) { + if (!archive.CanRead || !archive.CanWrite || !archive.CanSeek) + throw new ArgumentException("vbmeta editing requires a readable, writable, seekable stream.", nameof(archive)); + var v = AvbVbmeta.Parse(FirmwareArchive.ReadAll(archive)); + if (v.AlgorithmType != 0) + throw new NotSupportedException($"vbmeta: this image is signed ({AvbVbmeta.AlgorithmName(v.AlgorithmType)}); an edit would need the private key to re-sign it."); + if (!v.IsCanonical) + throw new NotSupportedException($"vbmeta: {v.NonCanonicalReason}; it is not re-laid out."); + return v; + } + + private static void Commit(Stream archive, AvbVbmeta v) + => WholeImageRebuildCommitter.Replace(archive, v.Write, candidate => _ = AvbVbmeta.Parse(FirmwareArchive.ReadAll(candidate))); +} diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AvbDescriptorText.cs b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AvbDescriptorText.cs new file mode 100644 index 000000000..e6f95fa3b --- /dev/null +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AvbDescriptorText.cs @@ -0,0 +1,109 @@ +#pragma warning disable CS1591 +using System.Buffers.Binary; +using System.Globalization; +using System.Text; + +namespace FileFormat.AndroidVbmeta; + +/// +/// Human-readable renderings of AVB descriptors: the fields avbtool info_image prints, as +/// key = value lines, and a short name for the descriptor's entry. Rendering never throws — +/// a descriptor whose body does not match its declared lengths is reported as malformed. +/// +public static class AvbDescriptorText { + + private static uint U32(ReadOnlySpan e, int o) => BinaryPrimitives.ReadUInt32BigEndian(e[o..]); + private static ulong U64(ReadOnlySpan e, int o) => BinaryPrimitives.ReadUInt64BigEndian(e[o..]); + + /// The partition name, property key, or nothing — whatever names the descriptor's subject. + public static string? Subject(AvbDescriptor d) { + try { + var e = d.Encoded.AsSpan(); + return d.Tag switch { + AvbDescriptor.Hash => Utf8(e, 132, (int)U32(e, 56)), + AvbDescriptor.Hashtree => Utf8(e, 180, (int)U32(e, 104)), + AvbDescriptor.ChainPartition => Utf8(e, 92, (int)U32(e, 20)), + AvbDescriptor.Property => Utf8(e, 32, checked((int)U64(e, 16))), + _ => null, + }; + } catch (Exception ex) when (ex is ArgumentException or IndexOutOfRangeException or OverflowException) { + return null; + } + } + + public static string EntryName(int index, AvbDescriptor d) { + var subject = Subject(d); + var safe = subject is null ? "" : "_" + new string(subject.Select(c => char.IsAsciiLetterOrDigit(c) || c is '-' or '.' ? c : '_').ToArray()); + if (safe.Length > 41) safe = safe[..41]; + return $"descriptors/{index.ToString("D2", CultureInfo.InvariantCulture)}_{d.Kind}{safe}.bin"; + } + + public static void Render(StringBuilder sb, AvbDescriptor d) { + void Line(string key, string value) => sb.Append(key).Append(" = ").Append(value).Append('\n'); + Line("kind", d.Kind); + Line("size", d.Encoded.Length.ToString(CultureInfo.InvariantCulture)); + try { + var e = d.Encoded.AsSpan(); + switch (d.Tag) { + case AvbDescriptor.Hash: { + int nameLen = (int)U32(e, 56), saltLen = (int)U32(e, 60), digestLen = (int)U32(e, 64); + Line("image_size", U64(e, 16).ToString(CultureInfo.InvariantCulture)); + Line("hash_algorithm", Ascii(e.Slice(24, 32))); + Line("partition_name", Utf8(e, 132, nameLen)); + Line("salt", Hex(e, 132 + nameLen, saltLen)); + Line("digest", Hex(e, 132 + nameLen + saltLen, digestLen)); + Line("flags", U32(e, 68).ToString(CultureInfo.InvariantCulture)); + break; + } + case AvbDescriptor.Hashtree: { + int nameLen = (int)U32(e, 104), saltLen = (int)U32(e, 108), digestLen = (int)U32(e, 112); + Line("dm_verity_version", U32(e, 16).ToString(CultureInfo.InvariantCulture)); + Line("image_size", U64(e, 20).ToString(CultureInfo.InvariantCulture)); + Line("tree_offset", U64(e, 28).ToString(CultureInfo.InvariantCulture)); + Line("tree_size", U64(e, 36).ToString(CultureInfo.InvariantCulture)); + Line("data_block_size", U32(e, 44).ToString(CultureInfo.InvariantCulture)); + Line("hash_block_size", U32(e, 48).ToString(CultureInfo.InvariantCulture)); + Line("fec_num_roots", U32(e, 52).ToString(CultureInfo.InvariantCulture)); + Line("fec_offset", U64(e, 56).ToString(CultureInfo.InvariantCulture)); + Line("fec_size", U64(e, 64).ToString(CultureInfo.InvariantCulture)); + Line("hash_algorithm", Ascii(e.Slice(72, 32))); + Line("partition_name", Utf8(e, 180, nameLen)); + Line("salt", Hex(e, 180 + nameLen, saltLen)); + Line("root_digest", Hex(e, 180 + nameLen + saltLen, digestLen)); + Line("flags", U32(e, 116).ToString(CultureInfo.InvariantCulture)); + break; + } + case AvbDescriptor.KernelCmdline: + Line("flags", U32(e, 16).ToString(CultureInfo.InvariantCulture)); + Line("cmdline", Utf8(e, 24, (int)U32(e, 20))); + break; + case AvbDescriptor.ChainPartition: { + int nameLen = (int)U32(e, 20), keyLen = (int)U32(e, 24); + Line("rollback_index_location", U32(e, 16).ToString(CultureInfo.InvariantCulture)); + Line("partition_name", Utf8(e, 92, nameLen)); + Line("public_key_sha1", Convert.ToHexStringLower(System.Security.Cryptography.SHA1.HashData(e.Slice(92 + nameLen, keyLen)))); + Line("flags", U32(e, 28).ToString(CultureInfo.InvariantCulture)); + break; + } + case AvbDescriptor.Property: { + var keyLen = checked((int)U64(e, 16)); + var valueLen = checked((int)U64(e, 24)); + Line("key", Utf8(e, 32, keyLen)); + var value = e.Slice(32 + keyLen + 1, valueLen); + Line("value", value.ContainsAnyExceptInRange((byte)0x20, (byte)0x7E) ? "hex:" + Convert.ToHexStringLower(value) : Encoding.ASCII.GetString(value)); + break; + } + } + } catch (Exception ex) when (ex is ArgumentException or IndexOutOfRangeException or OverflowException) { + Line("malformed", "true"); + } + } + + private static string Utf8(ReadOnlySpan e, int offset, int length) => Encoding.UTF8.GetString(e.Slice(offset, length)).ReplaceLineEndings(" "); + private static string Hex(ReadOnlySpan e, int offset, int length) => Convert.ToHexStringLower(e.Slice(offset, length)); + + private static string Ascii(ReadOnlySpan field) { + var end = field.IndexOf((byte)0); + return Encoding.ASCII.GetString(end < 0 ? field : field[..end]); + } +} diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AvbVbmeta.cs b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AvbVbmeta.cs new file mode 100644 index 000000000..bc4f9f6a0 --- /dev/null +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AvbVbmeta.cs @@ -0,0 +1,241 @@ +#pragma warning disable CS1591 +using System.Buffers.Binary; +using System.Globalization; +using System.Security.Cryptography; +using System.Text; + +namespace FileFormat.AndroidVbmeta; + +/// One AVB descriptor, kept as its exact encoded bytes (16-byte tag/length header, body, padding). +public sealed record AvbDescriptor(ulong Tag, byte[] Encoded) { + public const ulong Property = 0, Hashtree = 1, Hash = 2, KernelCmdline = 3, ChainPartition = 4; + + public string Kind => this.Tag switch { + Property => "property", Hashtree => "hashtree", Hash => "hash", KernelCmdline => "kernel_cmdline", + ChainPartition => "chain_partition", _ => "tag" + this.Tag.ToString(CultureInfo.InvariantCulture), + }; + + public ReadOnlySpan Body => this.Encoded.AsSpan(16); +} + +/// +/// An Android Verified Boot 2.0 vbmeta image (magic AVB0): the 256-byte header, the +/// authentication block (hash, signature) and the auxiliary block (descriptors, public key, public +/// key metadata), parsed and verified, and written back the way avbtool make_vbmeta_image +/// lays one out. +/// +/// +/// Structures follow AOSP platform/external/avb — libavb/avb_vbmeta_image.h, +/// avb_descriptor.h and avbtool.py (MIT / Apache-2.0), converted. All integers are +/// big-endian. The hash covers the header and the auxiliary block; the signature is RSA PKCS#1 v1.5 +/// over the same bytes, with the public key in AVB's own encoding (bit count, n0inv, modulus, R²). +/// +public sealed class AvbVbmeta { + + public const int HeaderSize = 256; + public const int ReleaseStringSize = 48; + public const int ReservedSize = 80; + + public uint VersionMajor { get; set; } = 1; + public uint VersionMinor { get; set; } + public uint AlgorithmType { get; set; } + public ulong RollbackIndex { get; set; } + public uint Flags { get; set; } + public uint RollbackIndexLocation { get; set; } + /// The 48-byte release-string field, raw (avbtool writes 47 bytes plus a NUL). + public byte[] ReleaseString { get; set; } = new byte[ReleaseStringSize]; + public byte[] Reserved { get; set; } = new byte[ReservedSize]; + + public List Descriptors { get; set; } = []; + public byte[] PublicKey { get; set; } = []; + public byte[] PublicKeyMetadata { get; set; } = []; + public byte[] Hash { get; set; } = []; + public byte[] Signature { get; set; } = []; + /// Bytes after the vbmeta blob (partition padding). + public byte[] Trailer { get; set; } = []; + + /// True when the image is laid out as avbtool lays it out, so a rewrite reproduces it. + public bool IsCanonical { get; private set; } = true; + public string? NonCanonicalReason { get; private set; } + /// Null when the algorithm carries no hash. + public bool? HashValid { get; private set; } + /// Null when the algorithm carries no signature this reader can check. + public bool? SignatureValid { get; private set; } + + public static string AlgorithmName(uint type) => type switch { + 0 => "NONE", 1 => "SHA256_RSA2048", 2 => "SHA256_RSA4096", 3 => "SHA256_RSA8192", + 4 => "SHA512_RSA2048", 5 => "SHA512_RSA4096", 6 => "SHA512_RSA8192", 7 => "MLDSA65", 8 => "MLDSA87", + _ => "UNKNOWN", + }; + + // ── parse ──────────────────────────────────────────────────────────── + + private static uint U32(ReadOnlySpan d, int o) => BinaryPrimitives.ReadUInt32BigEndian(d[o..]); + private static ulong U64(ReadOnlySpan d, int o) => BinaryPrimitives.ReadUInt64BigEndian(d[o..]); + + public static AvbVbmeta Parse(ReadOnlySpan d) { + if (d.Length < HeaderSize) throw new InvalidDataException($"vbmeta: {d.Length} bytes is shorter than the {HeaderSize}-byte header."); + if (!d[..4].SequenceEqual("AVB0"u8)) throw new InvalidDataException("vbmeta: no AVB0 magic."); + var v = new AvbVbmeta { + VersionMajor = U32(d, 4), + VersionMinor = U32(d, 8), + AlgorithmType = U32(d, 28), + RollbackIndex = U64(d, 112), + Flags = U32(d, 120), + RollbackIndexLocation = U32(d, 124), + ReleaseString = d.Slice(128, ReleaseStringSize).ToArray(), + Reserved = d.Slice(176, ReservedSize).ToArray(), + }; + var authSize = U64(d, 12); + var auxSize = U64(d, 20); + if (authSize > int.MaxValue || auxSize > int.MaxValue || HeaderSize + (long)authSize + (long)auxSize > d.Length) + throw new InvalidDataException($"vbmeta: blocks of {authSize} + {auxSize} bytes run past the end of the {d.Length}-byte image."); + var auth = d.Slice(HeaderSize, (int)authSize); + var aux = d.Slice(HeaderSize + (int)authSize, (int)auxSize); + + v.Hash = Slice(auth, U64(d, 32), U64(d, 40), "hash"); + v.Signature = Slice(auth, U64(d, 48), U64(d, 56), "signature"); + v.PublicKey = Slice(aux, U64(d, 64), U64(d, 72), "public key"); + v.PublicKeyMetadata = Slice(aux, U64(d, 80), U64(d, 88), "public key metadata"); + var descOffset = U64(d, 96); + var descSize = U64(d, 104); + var descriptors = Slice(aux, descOffset, descSize, "descriptors"); + for (var o = 0; o < descriptors.Length;) { + if (descriptors.Length - o < 16) throw new InvalidDataException("vbmeta: a descriptor header is cut short."); + var tag = U64(descriptors, o); + var following = U64(descriptors, o + 8); + if (following > (ulong)(descriptors.Length - o - 16) || following % 8 != 0) + throw new InvalidDataException($"vbmeta: descriptor at offset {o} declares {following} bytes that do not fit."); + v.Descriptors.Add(new AvbDescriptor(tag, descriptors.AsSpan(o, 16 + (int)following).ToArray())); + o += 16 + (int)following; + } + v.Trailer = d[(HeaderSize + (int)authSize + (int)auxSize)..].ToArray(); + + // avbtool's layout: hash then signature; descriptors, key, key metadata; both blocks padded to 64 with zeros. + var keyLen = v.PublicKey.Length; + if (U64(d, 32) != 0 || U64(d, 48) != (ulong)v.Hash.Length + || descOffset != 0 || U64(d, 64) != descSize || U64(d, 80) != descSize + (ulong)keyLen + || authSize != Round64((ulong)(v.Hash.Length + v.Signature.Length)) + || auxSize != Round64(descSize + (ulong)keyLen + (ulong)v.PublicKeyMetadata.Length) + || auth[(v.Hash.Length + v.Signature.Length)..].ContainsAnyExcept((byte)0) + || aux[(int)(descSize + (ulong)keyLen + (ulong)v.PublicKeyMetadata.Length)..].ContainsAnyExcept((byte)0)) + v.MarkNonCanonical("the blocks are not laid out as avbtool lays them out"); + v.Verify(d[..HeaderSize], aux); + return v; + } + + private static byte[] Slice(ReadOnlySpan block, ulong offset, ulong size, string what) { + if (offset > (ulong)block.Length || size > (ulong)block.Length - offset) + throw new InvalidDataException($"vbmeta: the {what} ({size} bytes at {offset}) runs past its {block.Length}-byte block."); + return block.Slice((int)offset, (int)size).ToArray(); + } + + private static ulong Round64(ulong n) => (n + 63) / 64 * 64; + + private void MarkNonCanonical(string reason) { + this.IsCanonical = false; + this.NonCanonicalReason ??= reason; + } + + // ── verify ─────────────────────────────────────────────────────────── + + private static HashAlgorithmName? HashOf(uint type) => type switch { + 1 or 2 or 3 => HashAlgorithmName.SHA256, + 4 or 5 or 6 => HashAlgorithmName.SHA512, + _ => null, + }; + + private void Verify(ReadOnlySpan header, ReadOnlySpan aux) { + if (HashOf(this.AlgorithmType) is not { } hashName) return; + var message = new byte[header.Length + aux.Length]; + header.CopyTo(message); + aux.CopyTo(message.AsSpan(header.Length)); + var digest = hashName == HashAlgorithmName.SHA256 ? SHA256.HashData(message) : SHA512.HashData(message); + this.HashValid = digest.AsSpan().SequenceEqual(this.Hash); + if (TryRsaKey(this.PublicKey) is not { } parameters) { + this.SignatureValid = false; + return; + } + try { + using var rsa = RSA.Create(parameters); + this.SignatureValid = this.HashValid == true && rsa.VerifyData(message, this.Signature, hashName, RSASignaturePadding.Pkcs1); + } catch (CryptographicException) { + this.SignatureValid = false; + } + } + + /// AVB's public key encoding: big-endian bit count and n0inv, then the modulus and R², each bit-count/8 bytes. Exponent 65537. + public static RSAParameters? TryRsaKey(ReadOnlySpan key) { + if (key.Length < 8) return null; + var bits = BinaryPrimitives.ReadUInt32BigEndian(key); + if (bits is not (2048 or 4096 or 8192) || key.Length != 8 + 2 * (bits / 8)) return null; + return new RSAParameters { Modulus = key.Slice(8, (int)bits / 8).ToArray(), Exponent = [1, 0, 1] }; + } + + // ── write ──────────────────────────────────────────────────────────── + + /// + /// Writes the vbmeta blob as avbtool's _generate_vbmeta_blob does, then the trailer. Only + /// the unsigned NONE algorithm can be written: anything else needs the private key. + /// + public void Write(Stream output) { + ArgumentNullException.ThrowIfNull(output); + if (this.AlgorithmType != 0 || this.Hash.Length > 0 || this.Signature.Length > 0 || this.PublicKey.Length > 0) + throw new NotSupportedException("vbmeta: only the unsigned NONE algorithm can be written; signing needs the private key."); + var descriptors = new MemoryStream(); + foreach (var desc in this.Descriptors) { + Validate(desc); + descriptors.Write(desc.Encoded); + } + var descSize = (ulong)descriptors.Length; + var auxSize = Round64(descSize + (ulong)this.PublicKeyMetadata.Length); + + var h = new byte[HeaderSize]; + "AVB0"u8.CopyTo(h); + BinaryPrimitives.WriteUInt32BigEndian(h.AsSpan(4), this.VersionMajor); + BinaryPrimitives.WriteUInt32BigEndian(h.AsSpan(8), this.VersionMinor); + BinaryPrimitives.WriteUInt64BigEndian(h.AsSpan(12), 0); // authentication block: no hash, no signature + BinaryPrimitives.WriteUInt64BigEndian(h.AsSpan(20), auxSize); + BinaryPrimitives.WriteUInt32BigEndian(h.AsSpan(28), 0); + // hash 32/40 and signature 48/56 stay zero + BinaryPrimitives.WriteUInt64BigEndian(h.AsSpan(64), descSize); // public key offset (size 0) + BinaryPrimitives.WriteUInt64BigEndian(h.AsSpan(80), descSize); // public key metadata offset + BinaryPrimitives.WriteUInt64BigEndian(h.AsSpan(88), (ulong)this.PublicKeyMetadata.Length); + BinaryPrimitives.WriteUInt64BigEndian(h.AsSpan(96), 0); + BinaryPrimitives.WriteUInt64BigEndian(h.AsSpan(104), descSize); + BinaryPrimitives.WriteUInt64BigEndian(h.AsSpan(112), this.RollbackIndex); + BinaryPrimitives.WriteUInt32BigEndian(h.AsSpan(120), this.Flags); + BinaryPrimitives.WriteUInt32BigEndian(h.AsSpan(124), this.RollbackIndexLocation); + this.ReleaseString.AsSpan(0, Math.Min(ReleaseStringSize, this.ReleaseString.Length)).CopyTo(h.AsSpan(128)); + h[128 + ReleaseStringSize - 1] = 0; + this.Reserved.AsSpan(0, Math.Min(ReservedSize, this.Reserved.Length)).CopyTo(h.AsSpan(176)); + + output.Write(h); + descriptors.Position = 0; + descriptors.CopyTo(output); + output.Write(this.PublicKeyMetadata); + output.Write(new byte[auxSize - descSize - (ulong)this.PublicKeyMetadata.Length]); + output.Write(this.Trailer); + } + + /// Checks an encoded descriptor's own length field, so a malformed blob is refused rather than written. + public static void Validate(AvbDescriptor desc) { + var e = desc.Encoded; + if (e.Length < 16 || (e.Length - 16) % 8 != 0 + || BinaryPrimitives.ReadUInt64BigEndian(e.AsSpan(8)) != (ulong)(e.Length - 16) + || BinaryPrimitives.ReadUInt64BigEndian(e) != desc.Tag) + throw new ArgumentException($"vbmeta: a {desc.Kind} descriptor of {e.Length} bytes is not a well-formed AVB descriptor (tag, length, 8-byte padded body)."); + } + + public static AvbDescriptor FromEncoded(byte[] encoded) { + if (encoded.Length < 16) throw new ArgumentException("vbmeta: a descriptor is at least 16 bytes."); + var desc = new AvbDescriptor(BinaryPrimitives.ReadUInt64BigEndian(encoded), encoded); + Validate(desc); + return desc; + } + + public static string ReleaseText(byte[] field) { + var end = Array.IndexOf(field, (byte)0); + return Encoding.UTF8.GetString(field, 0, end < 0 ? field.Length : end); + } +} diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/THIRD-PARTY-NOTICE.avb.txt b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/THIRD-PARTY-NOTICE.avb.txt new file mode 100644 index 000000000..452bf67c3 --- /dev/null +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/THIRD-PARTY-NOTICE.avb.txt @@ -0,0 +1,32 @@ +AOSP Android Verified Boot (libavb / avbtool) — vbmeta structures converted to C# + +Source: https://android.googlesource.com/platform/external/avb +Revision: c5066a96caa7bf4150c0a8cc8cc14ab81733fdc7 +Licence: MIT (the licence of libavb/avb_vbmeta_image.h, libavb/avb_descriptor.h and avbtool.py; + reproduced below) + +AvbVbmeta and AvbDescriptorText are a conversion into this codebase of the vbmeta header, the +descriptor structures and the public-key encoding defined in those files, not a verbatim copy. +Magic strings, field offsets, descriptor tags and algorithm numbers are copied exactly, as the +format requires. avbtool at the same revision is also run as a black-box oracle in the test suite. + +Copyright (C) 2016 The Android Open Source Project + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/EmbeddedPayload.cs b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/EmbeddedPayload.cs new file mode 100644 index 000000000..722d9be8b --- /dev/null +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/EmbeddedPayload.cs @@ -0,0 +1,89 @@ +#pragma warning disable CS1591 +using Compression.Registry; + +namespace FileFormat.FirmwareCommon; + +/// +/// Recognises and unpacks a compressed payload embedded in a firmware image by the magic of its +/// stream format, using this repository's own stream codecs through the registry. A payload is +/// only reported as decompressed when the codec decodes it without error, so nothing is ever +/// guessed into existence. +/// +public static class EmbeddedPayload { + + /// Stream formats a kernel or firmware payload is commonly compressed with: registry id, file extension, magic. + private static readonly (string Id, string Extension, byte[] Magic)[] Known = [ + ("Gzip", "gz", [0x1F, 0x8B, 0x08]), + ("Xz", "xz", [0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00]), + ("Bzip2", "bz2", [0x42, 0x5A, 0x68]), + ("Zstd", "zst", [0x28, 0xB5, 0x2F, 0xFD]), + ("Lz4", "lz4", [0x02, 0x21, 0x4C, 0x18]), + ("Lzop", "lzo", [0x89, 0x4C, 0x5A, 0x4F, 0x00, 0x0D, 0x0A, 0x1A, 0x0A]), + ("Lzma", "lzma", [0x5D, 0x00, 0x00]), + ]; + + /// The stream format whose magic starts , or null. + public static (string Id, string Extension)? Identify(ReadOnlySpan data) { + foreach (var (id, extension, magic) in Known) + if (data.StartsWith(magic)) return (id, extension); + return null; + } + + /// + /// Decodes with the codec names, giving up + /// past output bytes. Null when the codec is not registered or rejects + /// the stream. + /// + public static byte[]? TryDecompress(string formatId, ReadOnlyMemory data, long limit = 1L << 30) { + if (FormatRegistry.GetStreamOps(formatId) is not { } ops) return null; + // A stray 5D 00 00 is no LZMA stream: refuse property bytes past lc/lp/pb's range and dictionaries + // a kernel compressor never uses, before the decoder allocates a window for them. + if (formatId == "Lzma") { + var span = data.Span; + if (span.Length < 13 || span[0] >= 9 * 5 * 5 || System.Buffers.Binary.BinaryPrimitives.ReadUInt32LittleEndian(span[1..]) > 1u << 27) + return null; + } + try { + using var input = new MemoryStream(data.ToArray(), writable: false); + using var output = new CappedStream(limit); + ops.Decompress(input, output); + return output.Length == 0 ? null : output.ToArray(); + } catch (Exception e) when (e is InvalidDataException or IOException or ArgumentException or InvalidOperationException + or IndexOutOfRangeException or NotSupportedException or OverflowException or EndOfStreamException) { + return null; + } + } + + /// + /// Scans from for the first known stream magic + /// whose codec decodes and whose output satisfies . + /// + public static (int Offset, string Id, string Extension, byte[] Decoded)? Find(ReadOnlyMemory data, int start, Func accept, int maxCandidates = 64) { + var span = data.Span; + var tried = 0; + for (var i = Math.Max(0, start); i < span.Length - 4 && tried < maxCandidates; ++i) { + if (Identify(span[i..]) is not { } kind) continue; + ++tried; + if (TryDecompress(kind.Id, data[i..]) is { } decoded && accept(decoded)) return (i, kind.Id, kind.Extension, decoded); + } + return null; + } + + /// A memory stream that refuses to grow past a cap, so a hostile stream cannot exhaust memory. + private sealed class CappedStream(long cap) : MemoryStream { + public override void Write(byte[] buffer, int offset, int count) { + if (this.Length + count > cap) throw new InvalidDataException($"decoded payload exceeds {cap} bytes"); + base.Write(buffer, offset, count); + } + + public override void Write(ReadOnlySpan buffer) { + if (this.Length + buffer.Length > cap) throw new InvalidDataException($"decoded payload exceeds {cap} bytes"); + base.Write(buffer); + } + + public override void WriteByte(byte value) { + if (this.Length + 1 > cap) throw new InvalidDataException($"decoded payload exceeds {cap} bytes"); + base.WriteByte(value); + } + } +} diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/FirmwareArchive.cs b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/FirmwareArchive.cs new file mode 100644 index 000000000..5cb8524c8 --- /dev/null +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/FirmwareArchive.cs @@ -0,0 +1,82 @@ +#pragma warning disable CS1591 +using System.Globalization; +using System.Text; +using Compression.Registry; +using static Compression.Registry.FormatHelpers; + +namespace FileFormat.FirmwareCommon; + +/// One member a firmware container exposes: a slice of the image or a rendering of it. +public sealed record FirmwareEntry(string Name, ReadOnlyMemory Data); + +/// +/// The list / extract plumbing every firmware pseudo-archive shares: a firmware image is +/// parsed into an ordered set of named slices, and listing and extracting both walk that set. +/// +public static class FirmwareArchive { + + public const string MetadataName = "metadata.ini"; + + public static byte[] ReadAll(Stream stream) { + ArgumentNullException.ThrowIfNull(stream); + if (stream.CanSeek) stream.Position = 0; + using var ms = new MemoryStream(); + stream.CopyTo(ms); + return ms.ToArray(); + } + + public static List List(IReadOnlyList entries) + => entries.Select((e, i) => new ArchiveEntryInfo(i, e.Name, e.Data.Length, e.Data.Length, + "stored", false, false, null)).ToList(); + + public static void Extract(IReadOnlyList entries, string outputDir, string[]? files) { + foreach (var e in entries) { + if (files is { Length: > 0 } && !MatchesFilter(e.Name, files)) continue; + using var target = CreateEntryFile(outputDir, e.Name); + target.Write(e.Data.Span); + } + } + + /// A NUL-terminated field as text: everything before the first NUL, Latin-1 so no byte is lost. + public static string CString(ReadOnlySpan field) { + var end = field.IndexOf((byte)0); + return Encoding.Latin1.GetString(end < 0 ? field : field[..end]); + } + + public static string Hex(ulong value) => "0x" + value.ToString("X8", CultureInfo.InvariantCulture); + + /// + /// Parses the key = value lines of an INI rendering into section-qualified keys + /// (section.key); keys before any section are unqualified. The value keeps its + /// exact text after the single blank that follows the =. + /// + public static Dictionary ParseIni(ReadOnlySpan ini) { + var result = new Dictionary(StringComparer.OrdinalIgnoreCase); + var section = ""; + foreach (var raw in Encoding.UTF8.GetString(ini).Split('\n')) { + var line = raw.TrimEnd('\r'); + var trimmed = line.Trim(); + if (trimmed.Length == 0 || trimmed[0] is ';' or '#') continue; + if (trimmed[0] == '[' && trimmed[^1] == ']') { + section = trimmed[1..^1].Trim(); + continue; + } + var eq = line.IndexOf('='); + if (eq <= 0) continue; + var key = line[..eq].Trim(); + var value = line[(eq + 1)..]; + if (value.StartsWith(' ')) value = value[1..]; + result[section.Length == 0 ? key : section + "." + key] = value; + } + return result; + } + + public static bool TryParseNumber(string text, out ulong value) { + text = text.Trim(); + var space = text.IndexOf(' '); + if (space > 0) text = text[..space]; + return text.StartsWith("0x", StringComparison.OrdinalIgnoreCase) + ? ulong.TryParse(text.AsSpan(2), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out value) + : ulong.TryParse(text, NumberStyles.None, CultureInfo.InvariantCulture, out value); + } +} diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/FirmwareCrc32.cs b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/FirmwareCrc32.cs new file mode 100644 index 000000000..5916e059a --- /dev/null +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.FirmwareCommon/FirmwareCrc32.cs @@ -0,0 +1,30 @@ +#pragma warning disable CS1591 +namespace FileFormat.FirmwareCommon; + +/// +/// The reflected CRC-32 (polynomial 0xEDB88320) firmware headers use, exposed raw: initial value +/// and final XOR are the caller's, because TRX for one stores the register without the final +/// inversion. +/// +public static class FirmwareCrc32 { + + private static readonly uint[] Table = BuildTable(); + + private static uint[] BuildTable() { + var table = new uint[256]; + for (uint i = 0; i < 256; ++i) { + var c = i; + for (var k = 0; k < 8; ++k) c = (c & 1) != 0 ? 0xEDB88320u ^ (c >> 1) : c >> 1; + table[i] = c; + } + return table; + } + + public static uint Update(uint crc, ReadOnlySpan data) { + foreach (var b in data) crc = Table[(crc ^ b) & 0xFF] ^ (crc >> 8); + return crc; + } + + /// The standard CRC-32 (zlib, IEEE 802.3). + public static uint Compute(ReadOnlySpan data) => ~Update(0xFFFFFFFFu, data); +} diff --git a/Hawkynt.FileFormats.FileSystems/README.md b/Hawkynt.FileFormats.FileSystems/README.md index 1964dd2ce..7acf0821b 100644 --- a/Hawkynt.FileFormats.FileSystems/README.md +++ b/Hawkynt.FileFormats.FileSystems/README.md @@ -59,6 +59,8 @@ The `Id`, `State` and verb columns are read off the descriptors by `FilesystemRe | Format | Id | State | Compact | Defrag | Sort | Wipe | Shrink | Geometry | Purge | Proof | Notes | Reference | | --- | --- | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | --- | --- | --- | +| [Android boot image](https://source.android.com/docs/core/architecture/bootloader/boot-image-header) | `AndroidBootImage` | R/W | — | — | — | — | — | — | ✅ | [`mkbootimg` / `unpack_bootimg`](https://android.googlesource.com/platform/system/tools/mkbootimg) — byte-identical both ways | boot/recovery header v0–v4 and vendor_boot v3/v4; components as `unpack_bootimg` names them, header in `metadata.ini`; edits refuse a signed image (v4 boot signature, AVB footer) and layouts `mkbootimg` cannot produce | [Boot image header](https://source.android.com/docs/core/architecture/bootloader/boot-image-header) | +| [Android Verified Boot (vbmeta)](https://source.android.com/docs/security/features/verifiedboot/avb) | `AndroidVbmeta` | R/W | — | — | — | — | — | — | ✅ | [`avbtool`](https://android.googlesource.com/platform/external/avb) — byte-identical unsigned images, `info_image` reads ours; signatures checked against avbtool-signed vectors | hash and RSA signature verified on read; each descriptor a member; only unsigned (`NONE`) images are written or edited — a signed image is read-only, since re-signing needs the private key | [AVB README](https://android.googlesource.com/platform/external/avb/+/main/README.md) | | [Apple IPSW](https://en.wikipedia.org/wiki/IPSW) | `Ipsw` | R/W | ✅ | ✅ rebuild | — | ✅ | ✅ | — | ✅ | own reader + struct-parity tests | ZIP-based firmware archive | [IPSW](https://en.wikipedia.org/wiki/IPSW) | | [BIN/CUE](https://en.wikipedia.org/wiki/Cue_sheet_(computing)) | `BinCue` | R/W | — | — | — | ✅ | — | — | ✅ | own reader + struct-parity tests | Sector-image editor | [CUE sheet](https://wiki.hydrogenaud.io/index.php?title=Cue_sheet) | | [CDI](https://en.wikipedia.org/wiki/DiscJuggler) | `Cdi` | R/W | ✅ | ✅ rebuild | — | — | ✅ | — | ✅ | own reader + struct-parity tests | ISO 9660 edits rebuild; low-level existing-sector rewrite remains available | [DiscJuggler](https://en.wikipedia.org/wiki/DiscJuggler) | diff --git a/docs/catalogue/our-registry.csv b/docs/catalogue/our-registry.csv index a8bf87611..3b9d8d4b5 100644 --- a/docs/catalogue/our-registry.csv +++ b/docs/catalogue/our-registry.csv @@ -26,9 +26,11 @@ format,Ampk,AMPK (Amiga Pack),Archive,,.ampk,Y,Y,Y,Y format,Amr,3GPP AMR,Audio,,.amr;.awb;.3ga,Y,Y,Y, format,AmrNb,AMR-NB,Audio,,.amr,,,, format,AmrWb,AMR-WB,Audio,,.amr,,,, +format,AndroidBootImage,Android boot image,Archive,,.bootimg,Y,Y,Y,Y format,AndroidBundle,Android App Bundle / split-APK set,Archive,,.aab;.apks,Y,Y,Y,Y format,AndroidOta,Android OTA payload,Archive,,,Y,Y,Y, format,AndroidSparse,Android Sparse Image,Archive,,.simg;.sparse,Y,Y,Y, +format,AndroidVbmeta,Android Verified Boot (vbmeta),Archive,,.avb,Y,Y,Y,Y format,Ani,ANI (animated cursor),Archive,,.ani,Y,Y,Y, format,Aomei,AOMEI Backupper Image (ADI/AFI),Archive,,.adi;.afi,Y,Y,Y,Y format,Apc,CRYO APC,Audio,,.apc,Y,Y,Y, diff --git a/docs/catalogue/reference-formats.csv b/docs/catalogue/reference-formats.csv index ab231c065..1b3c56981 100644 --- a/docs/catalogue/reference-formats.csv +++ b/docs/catalogue/reference-formats.csv @@ -258,7 +258,7 @@ VMDK,vmdk,disk-image,R,,,,R,,Y,3,https://developer.broadcom.com/,Vmdk,Y,Y,Y,PART VirtualBox VDI,vdi,disk-image,R,,,,R,fmt/726,Y,4,https://www.virtualbox.org/,Vdi,Y,Y,Y,OK,, QCOW / QCOW2,qcow;qcow2;qcow2c,disk-image,R,,,D,,,Y,3,https://gitlab.com/qemu-project/qemu/-/blob/master/docs/interop/qcow2.txt,Qcow2,Y,Y,Y,PARTIAL,,"no encryption, backing files, zstd clusters or extended L2 (Qcow2Structures.cs)" Android sparse image,simg;sparse,disk-image,R,,,R,,,,2,https://android.googlesource.com/platform/system/core/+/master/libsparse/sparse_format.h,AndroidSparse,Y,Y,,OK,, -Android boot image,img;bootimg,firmware,,,,D,R,,,2,,,,,,MISSING,,https://source.android.com/docs/core/architecture/bootloader/boot-image-header +Android boot image,img;bootimg,firmware,,,,D,R,,,2,https://source.android.com/docs/core/architecture/bootloader/boot-image-header,AndroidBootImage,Y,Y,Y,OK,,mkbootimg/unpack_bootimg byte-identical oracle; vendor_boot v3/v4 included EnCase / Expert Witness (E01),e01;ex01;l01,disk-image,,,,,,fmt/803,Y,2,https://github.com/libyal/libewf/blob/main/documentation/Expert%20Witness%20Compression%20Format%20(EWF).asciidoc,Ewf,Y,Y,Y,PARTIAL,,"single segment only (no .E02+), no L01 logical evidence, no Ex01 (EwfReader.cs)" AFF (Advanced Forensic Format v1-3),aff;afd;afm,disk-image,,,,,,,Y,1,,,,,,MISSING,, Nero image (NRG),nrg,disk-image,,,,,R,fmt/1743,Y,3,,Nrg,Y,Y,Y,OK,, @@ -306,7 +306,7 @@ LhF,lhf,archive,,,R,,,,,1,,LhF,Y,Y,Y,OK,, MDC (Amiga),mdc,archive,,,R,,,,,1,,,,,,MISSING,, MXM-SimpleArc,,archive,,,R,,,,,1,,,,,,MISSING,, UEFI firmware volume / capsule,fv;fd;cap;bios;uefi;uefif,firmware,R,,,R,,,,2,https://uefi.org/specifications,UefiFv,Y,Y,Y,OK,, -Android Verified Boot (vbmeta),img;avb,firmware,R,,,,,,,1,,,,,,MISSING,, +Android Verified Boot (vbmeta),img;avb,firmware,R,,,,,,,1,https://android.googlesource.com/platform/external/avb/+/main/README.md,AndroidVbmeta,Y,Y,Y,OK,,hash + RSA signature verified on read; unsigned (NONE) images written byte-identical to avbtool; signed images read-only Device tree blob,dtb;dtbo;fdt,firmware,,,,R,,,,1,https://www.devicetree.org/specifications/,Dtb,Y,Y,Y,OK,, U-Boot uImage,uimage,firmware,,,,R,,,,1,,UImage,Y,Y,Y,OK,, TRX firmware,trx,firmware,,,,R,,,,1,,,,,,MISSING,, From 2f594ce59bcb984882341035261a24290edf8fe4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2026 12:48:46 +0000 Subject: [PATCH 2/7] * refresh the application screenshot --- screenshots/main-window.png | Bin 66235 -> 66749 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshots/main-window.png b/screenshots/main-window.png index a9ceb7f7ce233693ac240e941d4af64380209648..4fba35f0cb689809c0f71b5924d97d6195d59445 100644 GIT binary patch delta 28601 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 Sj56jt^7<9i%Xs}efBX-pqXA<8 delta 28069 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 Date: Mon, 26 Oct 2026 09:56:35 +0100 Subject: [PATCH 3/7] # Android boot image takes a lone payload as its kernel; vbmeta declares its member names Symptom: CI failed CreateRoundTrip, ModifyRoundTrip and Purge for both formats. The generic suites create a probe image from one arbitrarily named file, and both writers threw ArgumentException for any name outside their member vocabulary. The suites accept two outcomes: the format folds the input into its own entry set, or it declares the input inadmissible. Neither descriptor did either. AndroidBootImage: a single input under a name that is not a component becomes the kernel, which is how UImage treats its one payload and how mkbootimg --kernel takes it. The result is byte-identical to creating with "kernel". Two such inputs, a kernel plus one, or FULL.img alone are still refused. AndroidVbmeta: there is no payload slot, because the members are structured AVB descriptors, so folding a blob in would be wrong. Instead it implements IArchiveWriteConstraints with the check Create already makes, which turns the purge probe into an honest skip. A KnownGaps entry records why the generic create/modify probe cannot apply. --- .../AndroidBoot/AndroidBootImageTests.cs | 29 +++++++++++++++++-- .../AndroidBoot/AndroidVbmetaTests.cs | 29 +++++++++++++++++++ .../FilesystemWriteRoundTripTests.cs | 2 ++ .../AndroidBootImageFormatDescriptor.cs | 11 ++++++- .../AndroidVbmetaFormatDescriptor.cs | 26 ++++++++++++++++- 5 files changed, 93 insertions(+), 4 deletions(-) diff --git a/Compression.Tests/AndroidBoot/AndroidBootImageTests.cs b/Compression.Tests/AndroidBoot/AndroidBootImageTests.cs index ebfd0b101..df82a6e7e 100644 --- a/Compression.Tests/AndroidBoot/AndroidBootImageTests.cs +++ b/Compression.Tests/AndroidBoot/AndroidBootImageTests.cs @@ -169,11 +169,36 @@ public void GivenAV2CommandLineLongerThan511Bytes_WhenCreated_ThenTheRestSpillsI }); } + [Test] + public void GivenOneFileUnderAnArbitraryName_WhenCreated_ThenItIsTheKernel() { + var payload = Bytes(3000, 11); + var image = Create(("PROBE.BIN", payload)); + var files = Extract(image); + Assert.That(files.Keys, Is.EquivalentTo(new[] { "metadata.ini", "kernel" })); + Assert.That(files["kernel"], Is.EqualTo(payload)); + Assert.That(image, Is.EqualTo(Create(("kernel", payload))), "the same image mkbootimg --kernel would make"); + } + + [Test] + public void GivenOneArbitraryFileBesideARamdisk_WhenCreated_ThenItIsTheKernelAndTheRamdiskStays() { + var files = Extract(Create(("vmlinuz", [1, 2, 3]), ("ramdisk", [4, 5]))); + Assert.That(files["kernel"], Is.EqualTo(new byte[] { 1, 2, 3 })); + Assert.That(files["ramdisk"], Is.EqualTo(new byte[] { 4, 5 })); + } + // ── refusals on create ─────────────────────────────────────────────── [Test, Category("Exception")] - public void GivenAnArbitraryFileName_WhenCreated_ThenItIsRefused() - => Assert.That(() => Create(("readme.txt", [1])), Throws.ArgumentException); + public void GivenTwoArbitraryFileNames_WhenCreated_ThenTheyAreRefused() + => Assert.That(() => Create(("a.bin", [1]), ("b.bin", [2])), Throws.ArgumentException); + + [Test, Category("Exception")] + public void GivenAKernelAndAnArbitraryFileName_WhenCreated_ThenTheArbitraryOneIsRefused() + => Assert.That(() => Create(("kernel", [1]), ("readme.txt", [2])), Throws.ArgumentException); + + [Test, Category("Exception")] + public void GivenOnlyTheWholeImageView_WhenCreated_ThenItIsRefusedRatherThanTakenAsTheKernel() + => Assert.That(() => Create(("FULL.img", [1])), Throws.ArgumentException); [Test, Category("Exception")] public void GivenASecondStageForAV3Image_WhenCreated_ThenItIsRefused() diff --git a/Compression.Tests/AndroidBoot/AndroidVbmetaTests.cs b/Compression.Tests/AndroidBoot/AndroidVbmetaTests.cs index 37b06fe3f..95320d65d 100644 --- a/Compression.Tests/AndroidBoot/AndroidVbmetaTests.cs +++ b/Compression.Tests/AndroidBoot/AndroidVbmetaTests.cs @@ -140,6 +140,35 @@ public void GivenAPublicKeyAmongTheInputs_WhenCreated_ThenSigningIsRefused() public void GivenAMalformedDescriptorBlob_WhenCreated_ThenItIsRefused() => Assert.That(() => Create([("descriptors/00_x.bin", new byte[20])]), Throws.ArgumentException); + // ── write constraints ──────────────────────────────────────────────── + + [TestCase("descriptors/00_hash.bin")] + [TestCase("descriptors\\03_property.bin")] + [TestCase("public_key_metadata.bin")] + [TestCase("trailer.bin")] + [TestCase("METADATA.INI")] + public void GivenAMemberCreateWrites_WhenOffered_ThenItIsAccepted(string name) { + Assert.That(Descriptor.CanAccept(ArchiveInputInfo.InMemory(name, [1]), out var reason), Is.True); + Assert.That(reason, Is.Null); + } + + [TestCase("PROBE.BIN")] + [TestCase("descriptors/hash.bin")] + [TestCase("00_hash.bin")] + [TestCase("FULL.img")] + public void GivenANameThatIsNoVbmetaMember_WhenOffered_ThenItIsDeclinedWithTheMemberList(string name) { + Assert.That(Descriptor.CanAccept(ArchiveInputInfo.InMemory(name, [1]), out var reason), Is.False); + Assert.That(reason, Does.Contain("descriptors/NN_*.bin")); + Assert.That(() => Create([(name, new byte[] { 1 })]), Throws.ArgumentException, "Create refuses what CanAccept declines"); + } + + [TestCase("public_key.bin")] + [TestCase("signature.bin")] + public void GivenAKeyOrSignature_WhenOffered_ThenItIsDeclinedBecauseSigningNeedsThePrivateKey(string name) { + Assert.That(Descriptor.CanAccept(ArchiveInputInfo.InMemory(name, [1]), out var reason), Is.False); + Assert.That(reason, Does.Contain("private key")); + } + // ── avbtool oracle ─────────────────────────────────────────────────── private static readonly Lazy Avbtool = new(() => { diff --git a/Compression.Tests/Operations/FilesystemWriteRoundTripTests.cs b/Compression.Tests/Operations/FilesystemWriteRoundTripTests.cs index 587e5a001..6ff05fbc2 100644 --- a/Compression.Tests/Operations/FilesystemWriteRoundTripTests.cs +++ b/Compression.Tests/Operations/FilesystemWriteRoundTripTests.cs @@ -55,6 +55,8 @@ public sealed class FilesystemWriteRoundTripTests { + "A ReFS corpus would have to come from Windows.", ["TahoeLafs"] = "R/W is a live capability-backed namespace — no creator can synthesize a Tahoe grid endpoint and root write-capability. " + "TahoeLafsClientTests exercise the gateway contract with an in-process HTTP oracle.", + ["AndroidVbmeta"] = "members are structured AVB descriptors (descriptors/NN_*.bin), so an arbitrary byte blob is not one and the " + + "generic probe cannot be written. AndroidVbmetaTests round-trips real descriptors byte-identical to avbtool.", }; /// diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageFormatDescriptor.cs b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageFormatDescriptor.cs index 05ce7a719..2b81daab5 100644 --- a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageFormatDescriptor.cs +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidBootImage/AndroidBootImageFormatDescriptor.cs @@ -104,13 +104,18 @@ void Add(string name, byte[] part) { /// /// Builds an image from component files named as unpack_bootimg names them, with the /// header fields taken from a metadata.ini among the inputs (the rendering this - /// descriptor lists) and mkbootimg's defaults for every field it does not set. + /// descriptor lists) and mkbootimg's defaults for every field it does not set. A single + /// input under any other name is the payload a boot image exists to carry and becomes the + /// kernel, as mkbootimg --kernel would take it; more than one such input is refused. /// public void Create(Stream output, IReadOnlyList inputs, FormatCreateOptions options) { ArgumentNullException.ThrowIfNull(output); ArgumentNullException.ThrowIfNull(inputs); var files = inputs.Where(i => !i.IsDirectory && !string.IsNullOrEmpty(i.ArchiveName)) .Select(i => (Name: Leaf(i.ArchiveName), Input: i)).ToList(); + var unnamed = files.FindAll(f => !IsComponentName(f.Name) && !IsReservedName(f.Name)); + if (unnamed.Count == 1 && !files.Exists(f => f.Name.Equals(Kernel, StringComparison.OrdinalIgnoreCase))) + files[files.IndexOf(unnamed[0])] = (Kernel, unnamed[0].Input); foreach (var (name, _) in files) if (!IsComponentName(name) && !name.Equals(FirmwareArchive.MetadataName, StringComparison.OrdinalIgnoreCase)) throw new ArgumentException($"Android boot image: '{name}' is not a boot image component " + @@ -277,6 +282,10 @@ private static bool IsComponentName(string name) => TryRamdiskIndex(name, out _) || name.ToLowerInvariant() is Kernel or Ramdisk or Second or RecoveryDtbo or Dtb or BootSignature or VendorRamdisk or Bootconfig or Trailer; + /// The rendering and whole-image view this descriptor lists; never a payload. + private static bool IsReservedName(string name) + => name.Equals(FirmwareArchive.MetadataName, StringComparison.OrdinalIgnoreCase) || name.Equals(FullImage, StringComparison.OrdinalIgnoreCase); + private static bool TryRamdiskIndex(string name, out int index) { index = -1; return name.Length == VendorRamdisk.Length + 2 diff --git a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AndroidVbmetaFormatDescriptor.cs b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AndroidVbmetaFormatDescriptor.cs index bbed715b3..d65993a24 100644 --- a/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AndroidVbmetaFormatDescriptor.cs +++ b/Hawkynt.FileFormats.FileSystems/FileFormats/FileFormat.AndroidVbmeta/AndroidVbmetaFormatDescriptor.cs @@ -24,7 +24,7 @@ namespace FileFormat.AndroidVbmeta; /// Apache-2.0, converted. /// public sealed class AndroidVbmetaFormatDescriptor : IFormatDescriptor, IArchiveFormatOperations, - IArchiveCreatable, IArchiveModifiable, ISyntheticEntryNames { + IArchiveCreatable, IArchiveModifiable, IArchiveWriteConstraints, ISyntheticEntryNames { public const string PublicKeyName = "public_key.bin", PublicKeyMetadataName = "public_key_metadata.bin", SignatureName = "signature.bin", TrailerName = "trailer.bin", FullImage = "FULL.img", DescriptorFolder = "descriptors/"; @@ -142,6 +142,30 @@ public void Create(Stream output, IReadOnlyList inputs, Format v.Write(output); } + // ── write constraints ──────────────────────────────────────────────── + + /// + /// The members writes. A vbmeta holds structured AVB descriptors, not + /// files, so an arbitrary blob has nowhere to go; a public key or signature needs the private key. + /// + public bool CanAccept(ArchiveInputInfo input, out string? reason) { + ArgumentNullException.ThrowIfNull(input); + reason = null; + if (input.IsDirectory) return true; + var name = input.ArchiveName.Replace('\\', '/').TrimStart('/'); + if (name.Equals(FirmwareArchive.MetadataName, StringComparison.OrdinalIgnoreCase) || TryDescriptorIndex(name, out _) + || name.Equals(PublicKeyMetadataName, StringComparison.OrdinalIgnoreCase) || name.Equals(TrailerName, StringComparison.OrdinalIgnoreCase)) + return true; + reason = name.Equals(PublicKeyName, StringComparison.OrdinalIgnoreCase) || name.Equals(SignatureName, StringComparison.OrdinalIgnoreCase) + ? "vbmeta: only unsigned (NONE) images can be written; signing needs the private key." + : $"vbmeta: '{name}' is not a vbmeta member — {this.AcceptedInputsDescription}."; + return false; + } + + public long? MaxTotalArchiveSize => null; + + public string AcceptedInputsDescription => "accepts: descriptors/NN_*.bin, public_key_metadata.bin, trailer.bin, metadata.ini"; + private static void ApplyHeader(AvbVbmeta v, IReadOnlyDictionary ini, bool creating) { var current = FirmwareArchive.ParseIni(RenderMetadata(v)); foreach (var (qualified, value) in ini) { From 60bcad2664dee7d936cda36313ed237018f897cd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2026 09:22:44 +0000 Subject: [PATCH 4/7] * refresh the application screenshot --- screenshots/main-window.png | Bin 66749 -> 65657 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshots/main-window.png b/screenshots/main-window.png index 4fba35f0cb689809c0f71b5924d97d6195d59445..e3795c0d04a8041389e0aaa3edc8cc5c89e36820 100644 GIT binary patch literal 65657 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

J-t(C?D*vNbSd$Mpldw%6G^3`$t6)P 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 O*JNyHeySLKDeAvN*8HCU literal 66749 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%0Dtu2fF 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 Date: Tue, 27 Oct 2026 06:47:54 +0000 Subject: [PATCH 5/7] * refresh the application screenshot --- screenshots/main-window.png | Bin 66510 -> 65657 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshots/main-window.png b/screenshots/main-window.png index a8d91cb6875fd05a6e6bed08a6f241f4bb446625..e3795c0d04a8041389e0aaa3edc8cc5c89e36820 100644 GIT binary patch literal 65657 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

J-t(C?D*vNbSd$Mpldw%6G^3`$t6)P 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 O*JNyHeySLKDeAvN*8HCU literal 66510 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 z zQ6F!zX{^9NEH0^6$gnqg7@ImJsj+e9bSC@bGbO1(*+673z6xedyi|;3<_5#UiDyUm zp0=RI7d8F(3b8QOJiGm{iP)W%st1N7pjlPmcdcO&r>@H~d@dkSID`Ez6!8-KBk{3j z7<>m9nD3*1OMC;>$98Iac*`GhNnGO%{E!+ExQ1*^?Nk*i7>Ix6|LV)}_3FAUQgznG T5?6D@2WE2C;!LiA^I!i3jR{9W From 51c7bb74ba6351eda5495d5823bd2000fd4b6efc Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 27 Oct 2026 06:48:56 +0000 Subject: [PATCH 6/7] * refresh the archive browser screenshot --- docs/screenshots/archive-browser.png | Bin 65657 -> 66598 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/screenshots/archive-browser.png b/docs/screenshots/archive-browser.png index e3795c0d04a8041389e0aaa3edc8cc5c89e36820..0fb08c654833560b7c49f4bd78283ac84c6decc2 100644 GIT binary patch literal 66598 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 L^J}Gs_a6QeKh2rv literal 65657 zcmeFZgu7}+%ZT``+|fKdbxl9%F;1*yeeB>(|RdhhR#9`Z3Pck2NOY4DS7H_hLlkX}IkndvVs(x}<}aZAoiRKGBTEJY<_ zSgxx=WEA|}#KgL|tEJ{HkDv2cqyL87eGC`+>T74pA8JIfNJz4;$Op}4w~g7ZrF9YT z-kHhviP+gmJ;VnR2aYJ)YB%OWqUy$lDlad!(l#2L#C{$Urum&XRMl5o z@;iLK#oka~YnQ;lJknb2W4xVfY)qW1=)xm8OVMm_%ft<+bZIX;@F`E!iX$Onirc+P zUsQXqD<>DN?Vf)&aX<0qsAUeBWM(P*hTmc!p3Wn1|Mn4>^8uYUJDHb-o3-)p zP&ah5)HgY113L5Oi1`gYXYni6^iM>fo#?lbQN#rLQopOlE3V$4K_H)wP_qxXo{j!0 zY4MIKR4*TNP6`{2#=F=4yS*6;U3>4c!FNQ|8MzgH%5U#El{eNc-rb``$iDXz-RIXP zXCpH9x@X_v#i=+d394y5JrmO^HI<8YGnd76~fe1d!C=d4?A7F z$XUCZjnir>&DqCEc`6X4$pa;XwASh3DP(!Cv^hBW;=Oe~!WER`+A6!T!?a>DbQ@}DZ zvg$0R$Vo|i7fKR+F{YY~imTU@l$6G-W&mlYK~-z(Cr=YPp!>U|l7xue0* z+eh44Y7L&RvCGt-KaEfDla3Q6#DA4VZcZ?z=O=`Y8)M%4evd?_R^hbcSqK#@A*AUY z>H>|;@7TaXlXo6J)r2SNYCC@aem>dQdU)_i@WF$L$b1-7x3TfUpWV#X_E7pckImv< zYR2+1JIU+^89uk8NrRo)cybknzCKT#l670j*;u>|Y0~q<{gG^Jw`)Y|z8$yw-WQJv z%h?oi0zyLgQ4{N@JtSIvWBqFhOP(NDaL_*C!B9Hc;dC`f zo3E~L>JI@Cex-iEW#wZdjo7${O&)?{wJYvM{kK{028T?YU;Y5n1!YIOcD3$;!y`2oAzOMeuOc20i2WwEpM)P1ETur-k^+i>=A! z)m_)yF8Aalvj}H%zu6`!q9&klG{}B}>%*SI|qd>2KN2QRe1Lr@#-*Q!3t{4${ zeC$*;J{~$WbUbp_@&MWGf>e-wa$?t7OiXN`NGmfiwX7^Gw{#yoCFk?==K}6G7FRWE z%sRMG?FKi4i6X5;OZCP3^jv?Qs;Loiad8m@P!4=lRgW2n=R3TtVq|A$WTC4ws3*lKw1-R*E>v&ntOb%9kl?AJps-|JTW%yt-+abt`8KTeG1xAHd*$ypSh>3_ zei&jxOj1X8k=Hb?Ei(=b7UM(xLtQU}%!N*dvwL!kGF9NskmW->G{^(L5C)x?A2EYz zwL^|uf#^Z8+-6wz)U;ee!ot4XE`q2F`%bVQ8Oxufq@Mo)MD=@gY9zA+wTK571 zgAC9xJROx;s;pq+sc@`uxc2p_ovPgAyg1&-Oi6j+j$vUj-RN{It|XLM>En~`eLerc z@8IxJs_sGnVa@2qI3-hw*RPjo_p(3R+fNj$m#+OuEhu1ETI~}FBDI`NYj-q{U+aq( z>*^wNy}BHEpNxY2!H9lnX#9rw=PT~SqK^DUzjg$%Xk`YkWcG)Pe*wE2>3Ofo6 z6c{gb)T#dcJBv)={Q}sr$(N^S5OYQckER#&^a0&yOXq0zjbkIm0v|bezyz_Ke+tBr zcSJ!;bVZEs*rl`UW$0CO4b4pr7)+Jpr+LFhi9~XZ%v{ojE^fv%(+lTvy_dL8``(mV z-~al8_oZG}w~~<1v7O|Xj+Gm|F~iLwJ`)oY@W^KzcP*@}bZ(551dSUS3k&n|x`zeE zE2>@-Cfh@zfnO2wZ(hd1BumD(usysd)Q7#wyCym5ARzMZYvU*2Ff zseZ}b=$SlESnR}mbVxGWY;}!&48|HLExp9LaqhY7hpyF*((0P-BYb>(3=9m!#l>w{ zSW9zCJOXe@S9Zfi(IrF zORDL0UQ$y}>=16|CnW`}@~GrASgss^u+guxtS&1%*r=hhHpQ3WnfmqmGLhGIymN4H zwzq&^q{pX+oRG=&^)n19OiX%-o^+Jc??r;D0V)$?L$N%Yo}L9-$>H&4rh2oLwjDpJ zb#*THu}=$md_#x^49ih4x1JM_GtpD4IFj_kO7&-}%mTYg)C(TQ5f+=yeH%2;<2L;>;67kzE5!6te zJ7kK4bd`Yy>EFis`}1Bn6#5s_0DOw`_Xv^)RnP`Qx|V|>$Nam?x*Xk#zu4xTzBsCa z0^xABj~;tM`L9(|}MoKvOij&NPnd(G#TKh=GwiEQ5(BP50pMDF3?tkN00aGVL+}3A9U}d2 zn3Yl*UN}-IV>d;;Fcr?Tmi7SY!*KcGM4}swOO2_X3MM|)ufN~aKKnZ<#EmeT-*dOn z(RxFP|DiEy>sx-UUxHtdEfED=Nt~89Kce&3qQPS~7H^t)@{5PWRYi%nCM)1b+d7+| zcwSy6ol<4V;oYbv9}2W{`%6xgW>Az1@%l&OFZ~w}@t_HHG4!u*%I_(k5&o{PvEyNF zJfQSS!^MV|fV1$sNgfTvS4#$I#KpyYL>et`aiz%HO>{2AxkHApU_tSTwewT;Eu$(3 z$E%~<2L<_BuPE7%?PWj9+t`?x@^v`9xPaD2L;?^&qcQ~|=^*%=5}@1QhP z5VnzeG8}iF7ydYDsRfgDwZY35*8BVXr_W=mO%1H{TlL=9+Sr1?ii1ZoG24mLnx+oE zIQFKQz>tAXrNG0=*PLcnMk@01xJ1|e6T78ZzP@#F#P>x}7qSg^8y9y+rxH4poyo}w z5BO>MvQylAjuN~W*T`q$H!3aroe7h7_Gu(#6%Qy?3hegwF7pz$#9Dhtm*)lHCnpXV z$li2a-Th*slIB)c6YunxC@5GhhCd)~=KQc%R-PqtzrDfmF3ie(VbBtm8MR7~9emRz zFOTj{;(*wis#4xLhC8LoI$dW?{JD2s?5r(vx1d2P+r3FMmcOf0iYKIgc^@R4SjU6c@V_M#B4 zX(<$`fzEFMYxTt%t-9rCkQ0vWEsJS6nU%H2SY$jGox5VvmPJbO<3)#w_I4HY3`|AR z+8#H_9l@7;9&zFEGvy#dag}peP7ypIs%&xZK|W<9ST*dx+9@u{`$EX9s2D+5{}!8! zZ>O~*q%SD2WbH20u%YSlm9vhF$Qt58^RACS3M(svt5^pR3>P=JMl(%KaUBcDFw7LE zXJoTqM4$8{R6pB3K_t2D=XGyVo?)=DS z!ph5SN8lN^@r%d?p=Q^KbPW}I_R1e6C4M1S9%QU>IK$aS*icb5H8mIE-;I9QN{Wi= zZr9p(D|C8) zljCj^c$lW9rjnWoBY)nr5pRpQKOLQ(`VwKf8CY(lLL;Z5Ffy@3#%FE%Yx2$S-;68G zK@FJ-QD?4VXF`*ht<fGqsJ}8QK+=ThqlY~GTH8gd^)qXcC zFHI7)tEcDk==`uojv`i)3ewh}H3v5uFfcUC%g@Jy0*YcvT^)uKpj@c^sHwkafbjTf zknqUpV2QE82^W=c1de)4tci&!E;LZ1>YK}Hf6KVAw6t_m%byKIR#qkv5l8ry&2dO} z=Hlp-=0WLu>jduj=-Vk>vfN{|SjnIu9h67Z*%_ZFw+52+0dZj~*otod%FYkWF>kWf zC*zpV*o}`yB!ti5-EFV|nb+pyl28J557EI5HXWu@x@9=PlrIF`IVYjIz@a~g9p>-q32w-hoF&SK%(bV>gap|}YYN#U_#*G+ zzT$*MClBbA{=gfjMR3CIfBjS1?D;4D1s{2caQe#f>JwR8KneD!6wg)L@+1mV!!Ss1lGPrdeMeitgYpZMc5^dC;U-E?ENzIx zkq6>A!^6UPPR>rVz4@`pMc-ayfJwV*KwGG2 z;oY)13O%66S)`__ax5v9bNpOehy5I+#Am!rDu89|`sC}|7#SU{qM{V(A^L26lVp7} zIx@2H_H5sGV%s`hMC`47$?{1=WaRk;-}uCYgtYYcz+et`4$JlDkCce?v%y4vn9H3b zR+U@@yjZ_h!_%j@!^Muw+=)BKA%1!Olb)vQ>!0%q!eb&{Jw;zy#LJ<8t?;YoH@z&9 zr8#QYu-_Tg5!S(eBH($9=q$ziTaW(0xuG}jlpVSzg0bDg4WOc|oD*sFenQlXuW#4X zR~`ZGVz2i0owRa)TN|uhvA3_!{d6JSx6Z|uLQo1bD93TvzM?X~-#@AO>U7J^-`{_O zhzOcmaxf5!kT%uxQar|$$?#45!BJ0g-Xv`CWAE}^mjD?AI`c!==QKH$-6QWaL&M_gOfLK1Q214|aHNiy@SpBb zzoJr)iQh0bb42{9>31(b+)^X08t;%vmQLWW_ZSlwu6<7ApPvpOe@p50Z^rm&2F=c) z;fBjUU!!~t0WGE;N4yL7q+w(%ED^g9@O+Q@hK^JBESke&-qY>&rnTb$AFJW#?oZ8EltOb!|LIK5BW*xAK zeBlDanQ_=A=kstoS)??eq&!qET*Pb2_@o>amy=pVtT`CL=^dXXYf1I0H6JM-{+f^Y4I+wDzUgoSM> zTE8!KL=GU+E+PsvYOj7Sq#qL25v)O?0^mJ{C8L$eqeN$ljjziCm6uJn4Jb3 zE6K>1GSP#`1$gL_&VryyHu}2qeK_3dn>1akOxRIjV*d5Y?f8le-H2;@B5~u_ z5{RHwm4!l8SvMNGzk0q~(_-by3RgWc8tvFspbjllI*OKY*KOUt<`=qBZho zC}3$3#nLOyuGAOwwKz?Lh+jvrAEwNb*z$P^nEvz+b8@G(V#vYGdmu|KWUwenqvLZb zJVpAG?Un8cj_$SM{&G3P)Quc@Ptr*$hqTf7-M`qTo95+Tm>k3oSvEC;v>`<(;nj=3 z&Fwwzu#&=~k>-d2opFm!?a zu%{+h>_l6VFRMy+SKT(Cu2H8e(&u>z#As0DpaR&PBfm*7-DJhDL=z~{73L-_2mRI< zOP=#(^WL*1y<@d zVpZ?xZsaepy?Scc87Aairul33nI$>Z?Wkj?r@!^{_bL=|gzru{bFhOUrSPNqi}#;B zeC#jo(Ybhc7-aD`#Nxg+Wu!eZleEa;}iV172RHyC7yJ_qkGWtM5pibFCpj z=G5t_@XFV#QFDO8tsAFb{QX*hT}Y8zG|deJC^+tlt04TmM0yp!NGLV6fTr#jED=4t zLz!y{Pm(g6@%Zzjzr@4Y2Hvkj&gTKHroBj-`Guti4bDBIHJQ2J#lqbj(&4@w&CDBTOd8R@$jw&bLdbl`Bb*`_g}tOk_9e{Bq-s zg7xkW|9hOk_COtZe1e>C;gF}fZaq`nbtL=VEChKh2`p8i)4tnUU#WEsn_uW)v@2>z zf!#CNuMmw1Rw0V{_FZld4PoJ|>A1|y%){)XNPcSbX=e{XhpEfhxUw)9dMsBh#YKfk z3b+tRPC3SRE6dgT%wfWF&ni9R5nq+$92eV$|4SLt}*`SaRY8VI$uVW=G zIA%cAA+gD$8Mr)sOtNZND5+j$E?#QUHS%MxWFDN<+0`|s*TQqU)5H2qi~D-*&sE>d zJi;_D7z@iA<;d!V^~phPepcS_e1DN!SzgDIT6Lvq*i1oOnY@v!*sX}uQyfhLXG!zf z8v$$-A6QgGglb&8%!R$1M*g_{&@VAo!{E=v+$C1H)62b*a~1Jr~W(wCy9!0=~Q(&Ojd|8{@)1$uLF@sJraDL@9lJEhoFyb%TF8} zGNHQCmX?a2BGwp-ceJ=kILv%=l(SNQ&9WE2|0ER}8ahe_KyN}q0^KGJ4UHnr8&>w( z)4}S-Ml$b~6!Ee$TU=bcnVFeXThEl<1Wjw&NVe;!UB??9Z zRh2fywsIj&cHGhdcc|hE-Y?&j?v3;hy%@vP16NXk8q+h=ve;u|qvq3U z3a5|mx0J690A3u1<4!)%G7swf7ceI$ZO%XYxZ&Z$Bg2tOilp1ym6cpiLPM=uDSWZX zUS1%(og>D8E))?F5hwZ4%ucaHoW-s#&fh<=PzvzXqTSWjyNUM2DN^>=N+vpIu=&CVLt>NiqA&1Ajrc4}|- z)|>;e?w)fahw&ezq|S7|yjZQoQL9PHrJ-agjVGjMx2Y2Dl*0~jS& zhfM^p(fDu1nU^oqIclt?{xr4!n%$agxyDy!Ptk#c0+!R#S?R`JPgr=h-~BSF86#sz z)Rm|H{BSjgh8_?4f5hewA2PC{R-tR~+z=NNbwII#pqC9Q=SaXt&!!1Q4$Qlr$to-N zo9v~Om9gkFcYyNtcw@@jg^q!xOy$%vE-r2%G<4o^H<);5G|f2xh=+itF*CD8g@C8a z%T)c{fFhw(Kb%@BN^zl0N4_XeC}0)nk+EuOrg?cyAafr09bKD3^OjPjb&SA^Hzp;PrhQNyMVWgqSxhPK`UN$8TGBnjAeS$AU2?P6K z^zzg}r~I2~ePqvA-$`FrUyp)b>EgMY625^4)C;gLZcr~!D6FIljw-7uD@P@TTJJ6h z;^RjW2nz%1@gB1d*7}Hugaj)i-}SX$2)h(&zBx&F*VcIEVWaCQC~OoI6!aGt6Oge@ z86GgaLfBT?tH&$y8W$I3WfgbuxGau>0w6F*quY}YA%Uv4xvH(GX!r3H3uycL)Y7#@ zn)Zu(E$C#giu&U)EvLAqc&cj3+1Ypbot~Xt^!bi?wzYQz#IuN_h8n##luE8Lx@}3C zbA26q%f-~F*QfsIkX?T^ue zgu}B|Km-+t&#I!3lo|+hyH&H3kQyi`i%WU;4psL}Y-DnGe-|JHZR|>nSYjCn@*BO~ z%{4V|CU)Cav$E>Axq+TZFCjq?eojjTFnX0iz$$pYuph(2!=Uh2XKx=d?0ohN2fE10 zQuY}AL-ko82K1X|ZMxW)-WxU859oVcK=@@3B=b0aR#a9t?ChGFs_5zJ>gv6c@f1@K zxiEdfw^E$bRxGZ>WNd1l0QCBVFevKz6_+s0Qw~nHh_dEq7`}gjy^f-0LTKz%mi?v^ ze=^RmHR`<@O>3#lA>%k=VuHe6{*E>r=(=58U?7G!gqnf^kYU?R()V)y0Q<-g9<>l> zUQ1X9u8hjW@bJM-qw7G@x#Q-rnw(r|>5-wPUY&1T985z~&n5CJUx_QVhJ)6}h7-KS)yx$EK_Niu0=2%BRmvbfzC?3}%fZ1R zD&)W)ovYRv_M@DTIntAZno~tft8um!u_>y9X&Qm!zZ1aIBDq4F4#S}e&n?a-B*O30 zEvI-%5v0LZoWL!<&YV=lBmjB;URyi9_08aj>&>EpwY8XyxWB%uUw85G{>U0%&iaB1|#ST`hb0Y)ke2jqAG63tre23F%mUs%(gaFoI701-pm)WuL;IBGpLtIjm? zJhd(_uPki1{&Y7txg(-O?~M->!fq9W6P6e*i27tDX!KM_+)`Sa^?|#o1!e|(k57|Zi=Cp-Zw&?Jx?*UM4=0;55f+9ou3hGvZ-45Qjw&kJ7<~GNTIlKN z3CJ(VXv0;>zB1=S8%uF8b(AMUw>KrSEmyv3YdgU@VMi!4shloQ2sk5qcdP&?!xGy& zSWDZ1xJB&Ivb$-)RVg7$&C`vdoD0P;?s3(W7;@mU_x zY{-x?q*{zVv~hQDTwadoTsKzGU-~^9@4`*Ifr}lpxuIywuR##br8oJ*mXP_85A0}j zE_PNxgD7%wfSGP!Cp-r42L{~1ot8;TciD6X4vpBNQhj>g1*9lwZX!CoZh{3 zeidDOzr5TQ2I!E2f{coaf&yeKP3Vj^3d-8biv7l9sYZ1Fy?XKZYE;rt`3E7te*pTlnfvHs@}?*qj)VLpe3Ce3PpckWJ78h$8<<7OBFXu##UyA9|ic*eoC$)5tEo^FKY@LH+GIUn58N6x81& z)yC3&CtLHG0k;8!Buo z6$M9TX2M6Zbr+tf$HjqKJ=#!7YHU=^))!-4=lo$HJk5bR^85h%{vDrxru1i1r%h*E zM$@zFfAR&hbhyy}NLb)N0kuCoJYoeu?iyeQroxS(%76sTKK_+Fa}t3!Z`fYh0U`*n zQ6NDUYG};6?tSk3d9Skmqds5$oX-XzzgtnTx!qSaRX=5vDCQIwSKH*~Yt;jhQHef^ z>~=FFU~?FFNmhk@@j62EBY0LYgftWF>7#)a!tUnf1mGNZ=IXcycHRSTr9V?vQW~Krp|SBCK8NRqnwAdl??FBY$%VS)RN2v{ zN1BXGl4opDAoQj{4pB(;kqb~`%^F){@1xXgznl?j2!Oi|i@d;b>#C24%)cspVKCpO zU8sJr_h$M>2OVU2XXK7>fRB{2L)Ek0f&F;z!5g)(8}=(H5!75f)~EP{%@`O*wT@P! zpQ)_{=uHoR`4sp}f-p9hT{iEQKeG;(buH#0+o@gFqRiw{y2#tw-uU?FWY6`^q4pkS zO@3E(Ev-V6hRWe#`5|8h2uWMU?C-R3!Yq(@za+Of#;|n%2roCAU}E5XNz29cl1{x_ zLTIABvOT{6$(`?Pb9V#-IbEUy%ifNgC_IW$z~hD#pG@l<#UH+MA1;4vL$3h+Miec9 zDtCSnAdW~a_}U^Y2N~>tV6K%R;NjlHKB+$B+!{ zsdd}0h=^t!#%~66*f>qK7f|H>-hbE);!vO*7%pcgiYwVT(?>Rdt-4K%eWrE9_R#k@ zi|V&Z(e=_|-4Sr;0$B^UC{D|x5;rSQxz@MF=_bkB4{K{$7aS+M-szun#l?kYID@-D z5{TUW{2@Q5=1l103qfUNJ2XFaO*-NUg6IOD&`_YRkrLBM4VpTBwaW2nxVm~E63l}C zl!37~H|&YD;EbyJ;D%inm>pu?$+|-PfUYZxSye2J%~ZHPI7(2c4ApNde6Oqws?^|i zJwUlf5v(2>4t(hN>;71Y55|$F{t*!#uAri@IaTflLVh7Levny!O3(cG39zvP`;3W~ za{6O8K}OA*E$fA{yHfzs*Jnw>)`X>q2s6&8%QrmiPUKRE?vauf!*^t~La+&?jfuao z#3Uml`wtGiM=pOIDV>g7xq<7tQhzTu@hzA`B&5Urm`*k>Ma&a?S29EfOJt9bxB7un z`8nG6+f{Qnk2S2|uwpQ&h>DtgCka(S5s{AI;9zL#UVo!2>l!z_!R0)g?-uWFQX@|J zWW3}@B!rfx7ugLa`d6>BWq>tP2lv;mH5i=&jI+HTVg!oM1}`sGLMAHeY`g7Ixr=0gewx9;-l)h{#Hg)6N7oHl6hXM} zck!m{`*2yuSDNguz%T0;OzwJmLl%->?S4oFkkQLyrE;*z>$}-iH7dXR2WywKv2#)O zy_2z8ic^xL!omhrRLS@+djW^Fy=lwB4p%elt33?f#Mx0qy;)mAIndU{JIx6W^AUR7jdv<=U?4HqxX zs8<&GaVXYA0H5l+aKG?wHp?VVDJ0t=7T9WIzkUV8!~?#@jOC2cii+TEGR&i6kif65xU#@X5Yedj_HGOdlUH^6@X787 zv@PVYFE1}^9@TII7eiT?{5frUdpl)h^!3rkVZg*!3O`H=ScA*;s=e%B&Vn>ucXt;p zZT0Ti6}JOM;!U!rhcmp9kc3bKRZdx+<&EWeKqS5rFf#M9F%-OeF*rPGY-N<4n@hXE z=i;QjhCpOw0Xf)+=1puOw}Ys-G?qJwvZki_r%$7$jSm2}-BSlHWuUK8QB#(x7AP00 z^F2mAv)_95$oZTO{-@e*#W5C(Tetg2nvB#N3Vr$VC3__sA@{ANm6>hVQrudfhUar0 z$*~3MSAows7eFWj+5G(6ORyuD|G+g25FTS$m78uxWMmemeE$m5t80%@AtbZa=AYqu zx|Yf}gPK4O(By@?&klP!MKiVR77W~I6&?NF6xQ#FX00lrDuozjH z*=DB3IM6hB}7Y|JtFFQUs8^z{A={L*wS=#xHvh z6-`d!Lxq5p3W%vwa(+cQITPJaK$j%jJ6QR`?_N>CHZnW{_dKKFg1myc-H?s|n}!np zn9;p^)s4H)*sXTh?7qE|b!zR|#EUljG$}c2_5`|fc|ljInl6mNOvmK$=Th{5B*Ug> z8twaqrbXgi^;>A$a~V7{tpsc){aSSmhUqhf`6?GDh}zRXsq2orz$@?yHhXkXWoed~ zpDy@cSe5sA6h-g@8=dCy;n_gxY`~)A{okAn>kXe{D2!c2g<*maYBUv4!VNNoH!^7V4ID@wSF>EKz0z>*f?-(gF=#pm6ZrXnDxOm zU{!K1fDtu5=9!9WAl_Ea}oZZ1Vveyd^T3_M5Cnw(XN!$?$-ww zPoV#;V}X*HY=NyJC{t*Kp%GexwKd;0KCHR9I-U;yxlz8x=eDe}9S3x@S5%bee9mHHqsDMC%S~{|QY_43g552X^Yz)UWT`*_5uzfZ+|Wjb0569De#K z*{4_SJ&TKB%MnjIPOu_L&i}=dw70jza4amafLl$iR%1;X6tDQ`4~Y?os8vH^V&bs$ zjFg;rbAZPO;vsn9@iEXchW?FxAPJ!#94L|veU(MC+VjIkv&UpdUNmPiyLjZYFR%M6J4R}A+ z*qmh5)MAU_OTe*}<7~V#=XoakUe0>-+k%i#`{{Er_6LPm4Ezs?=$y#*&k@(}5I4+) zacJlPd^?S}Px1XcC4c+?2BCN*XI$x_XQ16?$hbnMBQWYV4(mJM{M3kICnsxUk_D=b z=QWk97EvN#2DO@V;96jDlSk+07ppQtvfE~?XH5>)0m zvY7OfNzTc}I64NYuBW?u-t)?-b@QZVD4ni4Rk*E@AfStZiRsBx0(q`GU8T~hWc@-255F?{K3V?B{$tW9d9&=KtQ>kQXX@<8fTB_r<)fHrbZ`(&E8m^loNAi36|4>`=>l@B&Q{Rf+6MOwP!0#stsx zu<&1H8GbKo$v=IdBjVO{{Pyh|#sHkK*zo5!p*oxFU@0SCT!22guI_FoT3XQKaa?{?#SYf8uOvua0t$uzxaR2_p`|lm3`vanj z^W42F$EP#YDyye=q3cIC?k+kFi~EBER-bQ~1zP_b-$56g3gSS6=WXf%iKLj6R*iXk zz|WtcQLLe%!7OP44;PQIw=YAjyax0v0!e7bYPRfrX)Ol4>uEXbbZ`_4VH9`?R#R$qzR_@g5i; z$0c}qLC?7}>WGZf)ZCEp%UYHuuDYYYg$atE`N770D+LsXGi|dui{Vc2MvWIZIr+J2 zl~oa;p{YqM92_2axM^8gzsHC3hRRr2SO80=?o#Jl#|?pH=aXD;1ojlZgeWS@mz7sK z|GCV`DUk)j-C&8DjSV{FgNO(T5LyJiMidQALE2J+7AmkG;F@#s6tOXqc5e{!bKyV%&=K|HU=jFr@!iI|S_nLs5TS zWDhneKeuP78CZI!mRgBMr#}Xfp`E_$`3~DN0+t7C#6hbc%{E!AIQU6{Q)MG}b#O4> zD5Q5tlwn)4KJUpwplNp@@Zp$myb0MOOa%}l37q*UAL&v;WcO)XPX za#W%0k9-rN!gvF;XY(krTUTd5qb;A)^65-Xsr?(}O>W3TlMCQu{)3`d_Dbs)x(F)C zJ$wTLEwXLun|q0*Gtp>116L1@oEi@NP|zR%08LLPP~Y5;k&^oR2hb0^vn?qF20xa@DxKJq?=3U(|-Ct1rLegMyEbUvFQuc<~1?WQ21@ zZ(`kh7|rIpBkEdzL{^qp=DNwT0~P?sBIoV!(`PY{)CHDTR_Yx$yxxMF`x)X>9{3lg z{j2x;FAf54{huz2|FZ?9IQmM&LqGK@(l@T2TD(MDlBc3ybH; z+!pd+7YIi008j5TN??JsV7|MO6dj~(;=bG1U)#tR7b=Z`VnPD)n+dp)mmu_!kB$0_+3tUQ+nVG)6eZK=qhl(AGx!r}1Xn*5gng18? z6+jrrroW1so%-PNM5q@O-=?YBAvnNx#ee8X=+4(jfpX&Ps;$**YM^a7zmz>Nh^2#^OXdgB z6#xG4cwXg9)OO3AhjYfH^T)R9iHoZ?=va=#8Tg+dOQA{TI$0pO*~#RbYI~{__^9gt zqoB=EHSn81DsR@Q{kXEGid=k8G{ z1vS=ladBzw@|K{y2L15(=G|-RQ+Ez4)y@!(M3GM$K!U}XP(bxaN`Kb-pWsYuy000#HjQqPgMZ{dacO#3EFBtBr6HMg zobqVyjLv)SDAN8nwowEYjbCYL2Qp&ir2+ZnhTa;V6i0&@cP5w;0C9}_kE&e3!md`^ zI|hEcK-qh+DUlO#3_pFsg-)6m#xbq4IhELJ&;y|t1V><06m0HTyi+iKa=s7HN&qda zm0Srv{f9{xD8TA`eQCL2ho`?3+L{2o4EXrK>oWa&*h@OQqx}&6(5I%ZCMQ3CW51@{ zNZJZ4D+6Xg-2toUQE_Y)%?r?X_~*x{KMynljPA|J?(u&UCXf*RbtA z(&O4;=t!ji`7a7=a;ZDVNvWbUMda*+JQlg}8PM0h&hbpC$C=H|x*UrG72@d;scMZABTeuY8jxWps! z5S*}xgo4~$=iRTnU93i+7(+)#M}?$0XTxyFEG&kqafF0~@)BVsD z8VmGjP@&Rge!p{40e2+;|DFXP09XbEN%3TP{Q_N!{HM2xi=yf7wLoBhjE)Y9m|Uy6 z{VQ131RM+wqJ*~Nj%rN&_q$eH6?Jt}BYg$Pi+}5n6}lHnI$#PKJE~p0XQD7SF)%Tj zGE%rn|F?q~y{apVEsD-6V|_CjC!mY;jd^EnKr|5hE{=DUwvli+MRCK!fa(9Pb9dhJ zMnfch=*cIrnAP)}uW5pWHOfBU9LH;;-0D5~;L`H}u$-MA zJu+g_l$4g5uQH{WIpsNdFbSx+|5&|WSRVU9S zqVwG#eB{+qW<3`5jz)%tzYot*u%27ETuY@7fzW)p_Pa3MGf`4p8aVCu>z2yx*OI#M zJPO^kQQY|~%^n9>)SoJ%ev8;Ikk`{2_M+^GX84@@`A3xkN{9VUyuRKND2$yxw1q|H z`}=>k%Ne?R%Cr|3)OX(E&r|+{U%zqz&EDA=DEt3-i^W)x+QvY?_s*Y5kEN)-=K>ud zhhN(+{RWK+sE~j8hlM8p$!Eoa>mQ9AKM(XTW%o-aa@7NRFQj98re383;qj2gZZAbp zB&5;xHn?MKrpY;cdSc30DauN<+;pPpdWlLVeaINAs*35*5D#i+Z@1ci0e@~bv9`P# z7x&C@d-lz;g=%DRrF9=&HRFt52$4*p0UHA^@S8gW=9+J&`o{iX7kCXKB2Y2o*=^6= zgKH$5EL0EuF2~7QI|7Z$r@WC*upeVbM~07pWWtgZ$#>+M0KT{Rn5i6^ebmr@s##w@ zo8%|CRL!%Y5YoB5^9=lF%}pK)$=ZIrP}Aej-q3k~CRnp|j=(Nej{^Awnr$pKsbcB$NRjVk}kJ>wZ{u6>}&d7U=t=g!YK7cup z{AtEG(0w$8Z7hgTA0JdK#Dr85V!z7EP;o>*pWZwmB2wewA>mJM-W^;3zp{dY>aMCm zl0wFX{%9M|nj257pR4+R*n7*UD%-6M6!ldJQ4j%XQ9?=S1_c2D>6Q`@k?t-P5R{e@ zknZj-0cq*ZCEeY9Cb;*z<8z-M=l5BIF%($9T2I{foL5a_c{!=&;l!SAcs-aGa6S}T zJJV}Z!kr>~{%N0EKnry5<~tu;_`w*Fv{^Q{1G`dB%!^<2rO~wBvm()Ygz2;h%dK8V7H&=?Fr=in%)Y9D4i9)J=6p10e zpZXtC(wyd)R(N{>X>CDWag#E8+8ta1^VU61*;VP-NMg-ES z?%risRqU$s3gsazvjhkHXL}_jrNL4~1VEPJucjM+G|(!SrmbNlM_swrp;56dF7^C@ z(*yL^Q?(R5(`;cBJv!%oIaY0*;s?G4T}=K%>&MHZ5|XNg#JkrNi*A{}jdwU|POdg_ zJ1HPNB_xOljL_A5^RY`I>TGL{$;GB?poh!+Rdn%O-%h&1?942W^Wn0t?V2@fzu5-J zJ;)X(S_iUyZlG&aq9zbubN`6y&Y#||ApR?oPAN}L`sqe*7vEW_qvrB_KyrIjeN!Wa zt2h|(VxFdMSRqGWrBvNJd4kN)DIdm@mgyGmT3#Tf#dys|&y4=wY?jNFGb_}p3 zWyHH)iKLTXjr@ioi99jCseedCJ&@(+={@|bO2_pG2lS-c*Y_m9GL9vU(Q9I2N_VYU zu`dUUh5qI4_O0BOgO9ITcW+e;r#(5G`H!`!Obc!%2KtQPlqH2!*iXJoQYK>1TH~@2&ldYa10s^Q~z`^5JXQyXMla3dT&0EB2XKuXT zan$tm?8`#E6;6b*uy6#1`9@wN$lI70nZ(6k(tTy?=>4Ijs(H{XcYApBcUsQh0>%|1 zBkvpN0H137b?xRNLh|9AYgH&Ot8BaAH8~yR9W53ny5j|=-qVbnL3ln)14EUc6#;PH zY+1^QDJhVGu)nc&HhZE@dJ{MSDuivYIQhB$>c7K-yk6S9crp6z0F6qHj-Kbi1G*^K zF3~;ODBK1|3i6Bfgn8s=I1`s+!i%a~s;~x5skGJYrfwHY7%~pNuF?r4b%SlkXta!H zUL3=tj+oc*YlHeXJN^5Xku~+-)cDHM zqmbU<2-A^Wp2lOmO_lzr)$24#7fsY%hfj}xe_9V*Br*yTVj`mOA>o-^#V%?BCc&3s z;Tfv4ix6!CEtA|tov@$UY1Bqc_VOC?qk_-$epFW*9>}72ZVH@<%&dx^iT2KF&5D;l@HefCJ6m{5O zV|fxX@N=POb-bc0UAXvIz5f=g6Nty?eVm=SRC3C|Fr3DMK+fC*@;&3Ja&LLR=nb z9Ny<~>R+RK`SRt+D4Ps|x4u5Mg^eyY6fqb z=0C}Tj|A20a|<82ab%yhl=ujJ>{^R~8Pq@UCFHRduKrH*<(81AovT;xH3q}@(BIf**(TbOAG;p_mB69;qCBl!dqn-M` z+t0h>Wu;MR(}!Uk?s3)lRH(g@=q{|V$4>-ETU)cTyiDsy;8Wja8BK-VDKND&+a%iY z{j1YaWw>b$?YUJ9mO#jL(Zy$uyv+Uj6Vc!^lT%21$dk3y|IfO6s%cus9M8Rt9D!miD)03Rl1H z(d}^9Z}P*qule^$qEZYYv)L_#9w_4$gx zze0z;*Ecp|@l&~=WQ}pfIq`^Q#@EI6EU2H^rlh6FDHX-XYYPhtL*T*Ocx9MHq=|ZE zMof&9&O~v6^10%5z+v+z9~q6|NjM)eDQkaqhVq(FXe>BHAhwFyF0$Z^*f^TU!XEMq ztLa}BSZq<~=#ZnB`L8#mC#1*IUKlgCcS`ycR!7nm5$cs`j-Tsa``%@p9<3L9N=kZS zzjwR1U7zbA!=qH872JVXElxqhpVWq`-Pu?XH(2o&*nr?ulalfe2oRZZgWgNul^*?3 zJcw<^7SWAWSTmTIAE(4eg8GvA14(uUiOMjpO$NtyIgi8gzXAvds2gX#i!%f zJv7ERY-`-CH_aLOG)+Mc7=5*3etupm-sCf(S`-}Bq@jDH&%|V>PL6IRCbCr3dNlGy z0UNi8irTJP^7Y%d?m}5O%(VY+jo0QM(RS)H$|C~Ad6EMViA$qwP=KNQ^p!CKgtS)~1rP?*skAWl2jx!2!zU=7NBw4Ykwt zj`EwCVeB>3v&fvw7_^UkR9Ib(2?K$D?eHOxOyJGb5!GL;)uC4Z>)I@o88b6#TNP3M zU*BpPQ?zl`7v?9eWEZU^EH`cvDEjn&f(zPvJHngTZzQR3rf94j@FRdnAnHf-W>rvn zFa{oUKC`7X_ua@SC}@@P9GfrWHqU)Z-MP4~8I|2)R-uS8A2jTGMx@t!|JI%VQ1;#D z%=Tvfc$3(2em>V`4Y5&TKf-1LQ5ESP{hWhCM5Fmz`>9N_y6to{RNYf%N4u+iUAa7@ zuj|6)%Xe2u*zE9qge-Cjt-{#Klc+;yi8B9~hLlsJkA+QC`RbE_xoG(NsPP7t^sg`6 zsnDo1GI5NG3y_iJx)-)*yl_{?U0%&{&sB02 zOH=M+etU#>~hXP?m*vX4GPUSMk!cu2#w(qDaisg5E; zN=i!SVD-v%ygc(b**dlt(6f;6SqGJbIr~WWI0z#RzDAk?Oj`e$`UK+H3n8Iy!!}M1 z{`o=#iqjKhyW{BvlGc#>zr%$(A8WR}B`UL=HTh=;mBAUtc$kmLrgI*U1h3*$gij~P z_Z4*5@HqbVPf+~t$kb>QX8~Xs;L-Vd0&ImB4=HzjI>nt`gQ7yGyo!(e)YHF`Myw8jD zB!MIKr;XyoGzn3LikB!^^!KEDyKy-Wrx1;dFYrP>T^^}AMbr)=D17l)%$vTyzx%}J z!`3AEr4Ehd@v@=u_7JKtX6-i+wAScH?EVX>_oeCc`P{%{egQ;CPzXLgD*==Fv+D86 zv<$oDU#I#56ylL4{}cNcHW58j2CGbH=)ja2r8mh)v94sZ*S|7b`?Eq*6;-QjCw{%Z zlJaGbgx5EkTV7gvqh=+7#ePBP&ctw~hF(#|decKRCJP)dL1gg9IZay-#N#8K2iMVU zq;Jv$%*-^Z(lk5K+dmJK50TH0ZEk8!FQ#C|+a`Y=lNOf;1#Gp^aMuDm)y;LHbA;fq zaS`ewN7?O-k%K55*-3fFgA+CG_` ze%;DA{n-0b%u_PA`{jEpHc?!{EiLte_4V%VXS{SYG*pgqO8)7F>|Z+Zu&H`-ARt($dk<4H?*9UdOG;?Nr!=m;Wv3$(Ciy% zeoBSbCuxOCDk?9(oi4F|l&)j@+hF!-H}5`L2%XE}&uF1|Fuvcy?=;zT)6iqa2dE`z zfpx_h#mm$4vvYQxX0~b>*+Vke?^+KI4tUCKH1bS&gH=FV^@q$FOw+f+EiElYtE1rL ztJVvolp#Mk+D_`xTN*3A0WK|JVTb?H(e5A5v=Yfrb3IU2rdXUk0h10>$q%U0pCC+2V zLI233-D-!k08!-ht0^TSH(^sVt~8OSvR#{$_Hu% zqEmInqs!JhHKpCDv}FzwQAimW%q(WVNNIvw$FmK!9+_?h| z(3`he{mrf-@wMFIeQAC?{b+$27yHhg*_q&KlsuVDtxBwuB=W;kg^7?ubLC*_(&-5X zo7or9Dr|?_iyR|E06Dp0KHE1&U%-2XsLyXy(;8y zojKLSbugIeN)U3HO?Nh>6@7T;{;$pgr_Z0j z&9*#HZgWukHx(mu>p#dFg{tAt|3%G|gqHk)m=PI&nP_Nnc2-oXn*M+K+rD{=cNmis z3kTJyvOGL=JImvJ5DxI>&6^o^xdSuI|JBv5zt8_q?kH``?j3*+EqyL;nZuQ-Wl=~H z2o%n`T6$m4Fe(Bm6in$Q>UrQ&mDCB5h3F;bZGjl(N9~bCM#J-_>@(DIc!5+JWi3z1 zv+#BZWfl-7nFPRJjX*jGloQiy4hY2FsfNcbQQwJMH!dR`)1XXjU{PiouAq=A6z#$X zB=)6PV_xB@3u#jkv195?x4+%`oRTuax}OHepydamfMeO=mebVal*YAdbQ+T_Zw%nh zrdKQITx;&>?Ugf|xy$S$w?;fxSXc;}9C~9CLoGvY^RIzWJjB&X*F^%_@Hh-MzX*S;V?eTf{~Z;|_TGp?%;$of$il*S*SbA>HJtYHO)l3kwP!8{q` zDXAyOu@v^wy?yejT))$5L6${-Yv#OdZ1mx#-ttUv`(5?)mOQF41a6!zzz8?!7s%M3nLjPh$-6h zh}=6MOH?Bw>dJy3qYLirQQO>;nZ3By8H(ft1y9!!KQHL!mJ~AwE!M$c9AdUL8!vQ| z&A97Bdb&!f)F}Sf7a?(R_je%4(q7eg%!+4+pcW*3ZCuvG9A+&wPl39lLp*GGQP0wdMyQIWP%$1@mQXw zsb6bu4h>9uDc^F0l3Vs0GW$BeKLN6_$j>j)-OfE3Zo}W?+#(h)FK-lv42Ma^tcn%? zWVJ@p!7+$Qsee4JZ4~^!J^|&YPh-tvOIUu?Z~cR=TU*^Rt;J?xDa6k5ifr)StFSYe zk9mK)OlWj9FNuMK_x1cwMC4psl=6gP{OvfZwy2k?OsIdk!|L(~VWP%dGT}{)v@h*! zs`cOmPp2wWOp#mt+BHaX5C)@ldB6p6|6Qh0M9T$*wxNGOW&h~ zwWcN^pa3?On?xMeYc&FYqywFTJ<`b5_Zykk#ii7r)`X$qf{&!kdhy{*qu}>e#p}07 ze0-+BxgHdPistp%jbBCwj`;jWiP1|H!5L);C+-5Wpf!Ykk|btp19S(--Z(yKpwgo)2;FuQp~ zsF!t6q}fKYs$z44gej`+%`N;vJ{oRS1&Oq+UoJ=ei+`pbg&TL>{Lu{*R)&jRMyH`t zY^&+-*HQOLPQO9KJ>S`-y*6GwWwujfGM=z&wP;vKg4?fP1n(P{#tbYtOr1R=C2z0; zQ>Aob-EMvJF;FNq8sc^QX}f6XuQ@TX^Z1(3O$$zkiEi=i5rONsZV#|vHTc41xiT4? z4n9SyZ;G=c+H?m3O0{BQJ>Dd@W%POlT?u+&O*m9+Ln+tbaUeU;+CUhCzPY>o4tms6 z)C68NkGM;E7Jm^PZy|5*wl0^12{m>niOng@v)b0(Z8|2<`NPfPkZ0Ig7mgm zPF{``a_B!*rdIn+;ldb?PNj*>bFtaQ(|)&#zjQwYwmgx=Atv;^2VZ6$KVg?(M(y0j z;wKLEGJeM?Gk`08>FvEQ`)0$cJU=dVy~Xd^AF{`Ipzy5)H|X-avh}HCZ{WS>uOYoN zd2bTvDJ1*3p`+jRZZ6V#KIK2!+kaDg^;g0+Os#VC^XH2jAEH48toJMVTh9Jy?QPPy zix&h5WX?F`iM4JSajhL#9Y>TKOsHa_tr!a1O|jEnuxz;oEP&KvVJNe^0kYlQTwN~SLi}-MMdiJ!tU*A1FJu9mnL=9P|Q+69a5pt2X zye_|TCfKs=An2XJ7(X@cw&pYb@ycSo1v_#%5gCO5$+zL0Vns$w*c^EH{BY%*pZ2AW zjlkptNn|fn)X$q#s^6IXUfa#p+bd@Mlwx6>cPZwdn4F{C<<8p8wO4_K05?>71P|JSq>UDODkuElgNOIyH)Z$6lhPSn#z6cS;~T`m2*^MXk7x98VjcEI}3pGBWenAN@^-9{kJKy zw{~{6Q@A!Z9QmJjoL*^BoTXg%Q7O91Y5QxFPl0~lN&Qy@8}Km@{#WOzSK;`8ky!A} zG){Xf^qg9)NY$b(2d{BoR|#ROpc2QA~zaBziEO$uu_aI3BU3SmgJf58TrPzx)8rVb?(0ziMn~lbIZuq z^i^>DUSINZB5s`EtubM|k-Mq)-obA|ckH-{R9N@=k%(=GFVgP??)V#ipE7e0EwaF3 z;FA`Ec$-*Js?T{VH_mv-QZn9&iJ!j$z{x&#G~p3lL$oVJl3q3m>iD2F>{-iDBL&#`)@7l9KIhzO9k*c_2rAiFe zszAto2l+4Go4eGZw0*suDN?%qYwa*#1`7gE%D_MW_Q@G&NqZJ7pT&O?oU(ZFGpq7Q z{rXiXPzrJjzOmYU*`YUzSXUo$YVC(IOIGcG^H*33Hw%l^Qo9;Bf$!krLN5|qt z8ul9wYJ|k4dO<RlbIaa2S%wVGVe%m6Vj|PzOoggtYUkarrU4A^9r# zayjRp^`kZ(&x$Mdgg3S6?j%){>LkuT|K4=zExzxmRqe>!>co{JWA#cIIl1LBN5SB} z20uKa?fbuGdKx2GGq@~HYau1?S^R>awr{>y-2JWE1=(>nZUFdfj;EWGc=kg}>2BI% z=GZjuqRya&(mV~meD+a{+!IMgiZqwhd5V%#UA!K4N6H;PzlT!jaS7Ze#OG7 zs=79-E+zHueRqn}QIm+cc;r&v_gt}J&3Ga3Q#_H2ii*m$oFP$j*jwpOUTa}7$j{49 z-K6s99NNM?L?_lqq_!q3FhSkhMUNz3W?8S@?WQ5_;{&xcPP>is0o8iXT*o9;Yg1D} zVV=H`<_1(0=O_IEEe{VXo$+M$Q~?JePTFiU=Gp`D%%z_`l~x~jY2ADtVxyj6 zGt+WIUfcE5hWbvHQe{#~%KTvT^*%Xy$d+bx$z3Xyr7S8j^7QedG<0OM z_S!%X9HV=aGwJP-oLU*o>IhzQ9D0q|*evI%G+}k;@h>yfXS5ncs?yRE-C;e6wcWu6 z{aH$d;fGZ+cE~ISZ*rXWqO?73ehmwQku7$14iG>uIDjPQA9fxz1O`qC9z)~TDKRk^ z*hEHy8Op&sz=0tyLcDxT@jt$0&V36}-jLEt!f9@~X;K{)9^S-sSI%yxvZ%yQi@%Ab zV`-$=P+wb5B)LZohd%X~C}yG~llFm*8wS45u8D}U@-w+R5t)7Y4s0eQ(Z*_=V7dv- zvMn&`fdpbP4nuv;vMMuE(fo|?@R#nJ-xCH?=HD6>;qVe%3V*|Id;C8)RtoW9Tq))h zDgU5vj%O2fFd!{&2m+Tw?JT&g*A7nWgu(IGq6ksNj{8k(WsTTZoOt+~025*m#V6C`v}E1H1vuD^5f91^1Q-;-A-}t`>I-8avBk9w_lbC;kRyj zmC|n*_niWfVm8R#pbYuOs23NU>D1|klt$KxI5#N<8x-XiSzDU!?<#ux&0+D|?~+JW z`A2`x&SCmRNd_8aCm!N!*F8^zV^UI5Vq+zEdIx&qSHYMF*&$GxRR=9C$-27>3I=;% z__dBzn4S3YIDm0e{ACd#o3(dpE`t`D)FrDl@6l0JX%R>j{c=0qylq2UsGLsq-W^o1 z*rxYqX%rftG!zA3A)1gvb8 z6(QM&j8w#kYU-2uILE2U?ivvQZCkPja&*P=;9g{M(@v^f*t2oVXMt#1TAx%U|J41sk%nrLbV z1U-#WJf1>WzSm$?VKV=L&~2}}iJGUUtLB_dyBfd0bXs}1hJ;R{sA$vSYt-wc!N+&a zwQIQcK5VIE+bh6I$Srbdjt)9qzjdBiv^<{KqNzQYG4#&)glc*Ou8B)0hfb~keCt@p zTX$ksPkyCtb)UUk=OT0CtJ92_|-`1Ypd1(08ISIDq>8WhiZCykK{99 zXhHfwHoSIOW8+nT;fW7;8lD`4Ei5e*7Ur2F%2+^eNyi%%zW4$ePQ~!arq@VFCUgLR z#YGeut@NlXN!0|J3=a3O$;0#{tan3C9T_!|D24cJ8c`eCv3XgWLKVf&Ts_nmx0)+3I>0>{CL1_+0jPc9tPA z%w~C+(03jQl}%HHQ2k$NK#xcLS*Vhk*NnA ze!VMT60ANj;JHWoqX{a?w+Rl`NGV=!{{JdyUlYh`2SY(CJKVB4Jg){7)Oj8HmI@^{ zfQj?Q z%-CI))qx0g^?9q`Px|oSAFVwf?a-l1^Anfq&0Abb#W=xAT$W#QUOinF)RbuXaE<&y`vvWT>jjsj9-X%&FSixLRTNtEDX;AD~1^GxP-OFmeuLB)DUp1gv z(09b1UX6&>$l3cY?eZDuhE+Xbvj^}zGwSpxCqpx*F-*O^>`31WRL)rnYjsQ>mMG})lr?&Bxaf3}( zTbsYB_Mp8^$mewXAYU{8jl4ogK!BcsPTz3tB!CXEe|QPKw6`}@9o=nP9VWa<3jMX3 zg98`8=h9{{M1)=JxYkYvVqQHiM4>rY^kC|`2q}=pkOrtmwgZvyfCrVb7BtMA|m2_v!)4ztStCy2zK^F)gpeoH!{l*Y*{$; za{tv|Z(D#@`xhLud8!g3oL8}>RY|S*CIz2hyBb2m58G5mSW62HyC&E2=Rg?gbXJ55 zx~U4o(zv+VM5bgh_eAP}47FVSohmi1)Wbbu?osezz7Q3?fd&kEMNXmCeyB}ywTHJ_&ux!Q=;yol0mn!g3v($VPA>U6*gH}EW3u# zGlY@Z2nGSJ3M96=McN)n>V?*e;ZL=fc?V(gLq%9kuA_q~Ep1q&03%{6oE*!n7BYTl zsg+H36^RqvjG&##NnMyfY^ZtEmIo{!cFUDOt@yZj7y-sSDWVUw6K{1XJ!xZEMaiMR{y&2bB>}y^I4C{5MwBI|=Fx>*et+ zNQP~oRe5F0f&oYRwT=!%MJUmb+g*zXix7l%2}=6lvE&&=u)6t!3lU6cSq`e89em*C zeV6r)=5+|Us^I4L1cOlu1V21tW6L&gW16G?#^Lh5j1M5WRkiYa_~JD9FfIlq@qq8dJ6yG=%KPqnjtC_Vt^LnnUjeJOEH< zVNH?q;EyXW?!aSMf%=jhhMGpggicyHHIK%S-Xc!@I5Ya7L|L6bE`pD_l)q(Wys=DtCG-?`QjE?GA~;uy_QjIGG3s!v`hLx zh~chz4~3-j>1JYhI2GyZhHo5@a>$b%@q%KhrO=>SJkoim*3PVMHYs#qQ(i-;e(K03 zkwh)XL{&BXz1n%BF~fQ3+)*bV&gNi!Qk?=qMwraVuXVq0#1r^J)I?QPMMV#ZWWEv$ z6>)j&snpc}Q7Dr>V|MpQPp7_vsy#KC3LC8y7u4f~tVc#lcdZ`6pa;pz@4rtkRllNw z7&c(ms(CAImWN#5GEcnCQOaO=Abbpk-%`vyVC+|;jVW- z4h|e?(pVE*dec}L1j+?2G^g7y;MKN)Z6?-k$~8qX1+*!_-)A6Oz4J~l7u`BW__ zEF_$qlxTz~9BCMSS)2U@L_lzDK$_IoyAc;>9ID1G9GV-p8~3@mDB(BcHOf2l^Bahv z{i}#i-R9a5s?0w<`Z+X5uRc46%k8q!?X*+`GNN218lWe$vR2)_LLtlu*wOZ=YAG2R z{zOTcn-TavS!?AN*cKMQelHnPN+gMeo0R25O;M5%Hl5hMfT0ItyRF zK5%u*pkV)Fp}{G)x#jNK7W_(;qPM(O-DKBX-{vl5+CrLaiC@_LcyZ;-U|E?P6u|*$wg?MKc zFg${!-7q5)m;KE59H4+XNYWA#E|J_jtlSj^a)UpgxQwOo5iTzylLop(ORxwehh!f45|}W7x;I*J<$vS{3g&EUzHJLgeUec`0TWaD0Q&7JfuLpVRVf z=5_(W0%A1ncS&0$zS>KJ{m8?oM1L}Tg9sP5*wEeFk@#}2pMHD6#^TTey)2A<+W$s$ zEhHa>AtAZ!iadKN_uuI5$&MY^>O#A`0>FINxxe?jH2&hIYo>QWb3nBkWT>s5k#|+| zt*DB!Izc7cU5<;IRGgfYxz;Za31Crp{3@>rlKx$*lKrDp{dX3M6|3eevReXY$Z!#Pk>9=wGme)TV0!S;syS$+)3G z6iIKAboyl_Jblk=_;(+tuD`%T-`=A>%W<_bkp5ICK#78e^F#d(j?VFs(#J=2jMA@0 z#Ll{t&p1y5_xAoJ!$fYXo_a0>!ER*a4`0HSEm@TdKVZhUF(YZ-+J^Qus=_jlP~< z+u_*30+S0rG8hSFO|PNP^BFW)az^^T?PbPaRVj+9whVi@YxO-}KY~nLw!V+UW@0in zzVQw=_Nh`)fxywO+{}R&&aGtxn9PjjS=asyTvM;LhTkw73kVM{vzntjo1=$lnsTd! zicu>DuloCL3CX&KL%CDR-?t{?;uMmS(A2)s{`{G+Oo7t(gJp_~j&24i;;|zJuh^x< z8owc@mt2--6qaeO+>&9{Ku z$HaQKwq@dJF*k!fUC-mNosBilYjcZa&}M5f7y=^)W~j+BsF;{67Jm*2x(m7x@q)ig z5Zjl8iE|#L0?B@CMoKob$L=sL)>DW!F88OES*O>#O0FWYAu_%2mpYNtK|!uiDnK0K zA~rSbaFTu7n^g}eDJkg)$lQLKSxd{kR%dr=Ir=!~wlM`t)}ex8e6z7!)8;%#xS^iw zP%pOxtNe^#_9aWeCrB9 zqwZdDB$hLCxP}0duf>oOmF;|8%DYEOnrpoy>~myw7R#617QQl=IPz=aLG;0O$L7!V z0|4J-e5pwX!wlNPSpJ!oOv3x1L1*jr}CYJa`U#~ zjAg@ST0Q(;d8L<&E%1@n@`5umMB`pc-f)Up_3DtzE6~2ei}E?$DQ0{6^!CTbL~3Hd zJh5mAun3O4oE)SjKY5~+l#qsohjR|-Tw-wp1^m5LqRR8Z$XwLk#}uQnolhJg-W}eO zmzwGi`I0{a^z!}Ca8terdlQpg?6N1ZnDX2XeDg+`84w;);c#}TYu~pEW8nAs|2jB0 z+vWq|RKp`9Gc$9L6P=i>du+Eom{;#rUr72taQ#-YyFjpm!M7sM{g$ZGCA@Qr;SyxH9 zcN9?=FqKpEutg9YUUqgfCLc0_DwNiqRqK7Ks+KQFtWs52L0#jqoiBS;b26e1UBnri z?rL%eLuf}d&)J>`Ky_WXt4>@te^nwQZ@ZLPEX_juXm5vzZNa5iiB0%XX4j^@)=tD$ zVeHjks8X|?RdI%%6MxfAL@`JPEf6CHo$pRzKwQ%8D=0fK zd^DO(w?FXu9@rq{b@Km1V@lOQs#;-a2M`%FR6uQqeGMwm>eKI%l`l#NprQp&Ft&V2 zaEQX$QjHifG3X7qOReH1v!fv17S6~IbUy$M$;l`_f5{aiR)m=-z}-H_GtCt+K0vj* zHq{{S$HP_Rpk6H`W7#CZq*9$-yyr3un)$;$<$XZ(p)P%E8T5DHi4#|-bFfHQT*VlZOE6ibZm-<(6j z^fW9CAkrEx(u2r`M8bcZYy{(X$i!enLBiKKCmKYkRUG&|gEK3GGf#j+N>lssq$5XX zOF?G*#53gjpYW{gNoZ=EE+{InkBAI%w-aq4~fmZ1tw z9$~q4_1aRo{fv2+Y@hGLh3n&Nz9S}huYNaqg}ZfG0_-~7KR_k%a%lK^}d-w(nutFCM4RuCiTS_4iRDLJ|0O{pm9eX9=3xz$P-UgGTg>CwZ7_uPPR1g}#v z8B^G2eSHm_fu1R8o5`sIH-D(~gIutkFGtsF^`%sqwc@y8be)N(YD6Lb<=#syq3Wa- z>EicPe#j67k~|4}O8I ziK#|NMN{S8Dt6=SRc-taYKGMHS~qeSqxNh~rNhs*m-747AEB(_kM)oC&(U8wlwayM zQ7ymLwNLkZb*74K&(>}{kFq5tW1=?bF2EDMMZ~^4fCBB4wF#m~t8WqRGYW4KMGoAT zvt?gJNg;{!Wr5{Ez?CDTVP&!Ev)e0pK8^xTA6@O3nv^7p z9LAvQOYCRUu|yHrTxPy9Y$BViQE95KiVLx)FRKq zVs3HE5e4Omu@vO_OKRk4&Fr>CEUy@bef|twT#3`%O;WeI+37i4P(jLYsH>`S%WM2w zXIgk{4}F=woCaa@j^G(1&VV65vX8 zW56Bl>x=FIPV2mGf*d*5uGiG{h=zuSnp##t=1X8O`b~5mr(HsMSGH@q-hOC^gIR%_Bc>xxQg;X@41GpeaFB>a&@`4Zs5UricI%oJ2u3Ap6^}zTh zn29-Jvr?2>#0tZ9M>*%(!#S)bO_=65u2-bk7Uh7j*O|W-3O9-d3eN@`?~f%EpQuAm zSGd=mf+9lMa$NZMJz+|Ouw)cmr(mCYZ1_eh7X5#<_g<(+jF0v-SjHw;AD*8~$W=W) z{s22>naLQd(Iy#=S0ZFA_VrboZkPi${PbxJh$#SgNZA%?!IY1GzvqM-Y7TeLAKLoC z&Qr>{&7%r(YK1p*(_af2SGqC{q@E-1^y2LKEU}i|y1V#e!t^6L9^v6G?GD!2AB9iX z;&FEB1CpxT-u#F7R(_&_QDv0Pcr4dqe{ch&u3a@XRyD^I9FtyNV&>*&C-pH&AJe{N z(2ypilswz~P#5`eg~#+E6{o0%qzkAw7UALM>BU5v;4qLCQM{50wT(SLZg)X8;Xj}PkCWd}!DKizZ{)qr z?d?OACTAewN%4@Slzf?|r2|dGvXPO{O`EhFVi>#D(!7uzm^}W`BQyjx0&hNBWyixc zQfIP`(9lVg>xBMuO!Av z6t`NHelVi4+)9ol;h5gFP$2okv5SinF$~SbuY}fInd9Kb$8R?xqayZ9_*0VN;BFN_ zZl=Zn4OIF=hCcapcC25}EJ%ENTvcm`*9_Bb?RN=s96uQ##w$CypczM0>0W;~teF=? z#!c;o)aP65=jZKh=y3fAia1!_c2>rYj`}?~w%&NPUI(jJMK{7+#An)!9(qL4`}@^J}kk$D)#w zXW{9XqFmgZ)(Q#=>gD=6Gd<1cNCZSSW?(;<``ClSBHu@AOt6^6>!<<6Eg){vW}2xv z1udw8g5->h+nb7JG;5PXJuLR6bCSmx7Uw?;++pXvl!pu`kEk&`d14900v=K|!GXX$ zpH+JC-QI`!Ut4IV9nL>Lk0_rLi0{Idg5Vv(}cEWDIF1CL<%G z#hj4i;)&-ti|YSpoTbwx&F1JgmXfN8Xgw%3DBRIN9#KdgoOBu7F$BlsOKk3+`ET_^yLJ!f`E?CkXYv!(^BPH`)`|6 zd>Hhqjq`RPX??7tM1g8}G|V!!t+Q=$D*67fo${?7-BULV z(9c|Ps%*w`Apjkvd-Ai>(dvPkcHc4=SRqb4PDgXz>;OHQu0-G(o0!;FBp$Ib)u8k> zEZD_*=ktt&fQJ-$*V?$>T`mdWHqN>P^wfhG|CSBLOc&GZu)JHN)MU^x(c7r~)XGgT z^efTnP%E*WpJxyhbmt49UFodik+(aItG{xzw>DI%!V+C6@AUFB7BSw?aIFk@h+5c2 zOnI-36&v!nEHL&3XJ3huC+If8W4)dB$)LeT^+Jw7d4t5wPxPJry0&#Rs6eR@X=+q_ zvs$a=0&yziM-L7da8Y{@{&_N%WW6_KpQ?*UKa~f`Tfw){N3ouDUbC zxKksG6^|n!9||drG^W3}*?swEcpt75_U+E4pzZy&V11|9s<(3Q8JDV6{A7Y?x+ z!_V>k?+Y{UJ@kwT#<+ct+a*CVLG$kQmor<=8;zB7Q4Xukm6X2*$~kSK*zFeA*o^0C zyHDmngbBqDRoZBTN)XuytO$@Q6b4>*Iwp6|TD{mAScQB6^+vh>&{w{XIm(S(VzcJcIGic{H=+ z5c-#Ie@)mnXv)eIekt1^RHWBat2B3(yqs-uuUENDD{&&&qOVjxSadI5CP6njs;Pu9 zD%g>kdZuJt()y+9Lgs=Rqy3a0p8)T1iilS+teK{#wO56NI5g$EY8zU*8(Q+dB$moi zH7m>psUv!O3jpy0%C;I|YdBT?qd_4}&J4oYie+R_uRkZ!*48d&8^4RWtL(A6@}@&2 z#(_cTRZr618ehrwhzY;vvf)h4{95@{E4#Q3mN&;gS{1V-!a2uUJE{@iJIif)5QiEB zV?KG1if4NkD9M8Fqt4QBMLof7sk-Y{eJAgacQ*W)z)mD7{{LFc^P=9D}(3=p)de-n*gUuvlXS~FL?c})LOMv&}N5gPgTIPzs zBp-+U^59tcwVmVyD=5v<6tia+Cr1aX1MYLF#7aTG<9yH-4x`=)x)ZfrRNm-P1HIgv zB#@kBQi#v!_+w?n#tlQ@qu(HYuD0&9F$|EvPFKJ+e%-W=3ECTU{Hp~kg9qs>28BL% zPFR!-^Xa7@c}(GXw1H}SuH0T^X)zd$G%7_5Nxk_=iFIA^M@0qdU@G^xb;)+u^3MtL zTnr?m9K27~C{KQtP%bw6HZ_q(J8st5TtD5DSbC~i2jVI`!tBIjM<3D5{-fp&w(Zp# zm>j#pWi3kfrOd>hyJ)k$X$<_=tgNi7eU&3H-bXZbs7gEnt}rW?-2@rE0lLWIwNY|6 z_VqEFaddq4!6Ck`#&2u}4H3jvN#duI{G+MjOZ~&c!#|^Vjb^{uxf~x1oTjX4IUm}s z{=}0>mCMGjyFxFsRE+q1I^hBK5qJLc@MV89gxz08kql>=; zN;XF3K4vS<$@$7+GEPb2ES31V4{IlL-J}&IFc}g&G7rrA_O9>BTUZdV+ItJdE9cru zXTwmgt5&5LHu_D;(f<#5?*SE6x^0cxCQw8$A|fCnB3UF!R-%G{S`k;SbQW7h=gkh&IBSu?&wEMPR5YO0Go7R?f^xheWn&87OD?C1&h|KB| zPgX5?HdAX#<{T7Rf`5bg=Dp^s%r#k+@B!!S?~5nzm^(xryu>@bvc7zo&-o-?H|Zsd z@$O}?xlBB2yilmuvtn91ozyGmS3|O@+FfL{J89JCf?ru#DN0apW$}Wl;NjdBUP}Ot zd@($nwH*dHll7PRUM^m3PqB&|;dcuT4!+ozheU?skA8oHRq!6Fc2?89M(s-_Rsuq2 zi8yZZGL*y|TpZM;+Q-vvPe2UuJR=t#D6}#Gu_o5e&NC;AR2JQw_c-*|3Q?TcWY@0E zmj%(c9QfzPtVk6fMfGLb6l!^PnV8(Z2%6<1b|bWOG|xf(&(=gHJKLcxy3wOUT|DAW z@qKCh;vE_z9n5{{l}*`c!CKtJCDGN^h7g{B_ZoX>WaQ%1-0JuEH;#q&?4SG&=VzqF z#KcJZ*al4MU{prbL?Aa@Ek7m)s;vu$~aspHLfydTz@UvpYXx!}88Pz|7#YY1hIU^Nev3TeA}{rY5l zq$jG$e?LvQ>l4cyTYH*(nqMRX`5z1e!f!wyn4OsYik7i)xi$m}@ znAxT(wfewemn%oJU?{MrhKlcPC#sh~E!2!N_QUwb{s_52r%7H&aDoiA3qEd9kw>SE zhqn5w_m(pkaKjSbU{y)%=*aBB455)|(K$kShU6Fv&p;fqGlmzw(GX&Lvb=2m6qG#! zl>$Bl-g{+Mlg43dIxVUXGa;Mnr;U=SA9;J7Q5>kP)vql-h2q2#To{nAWqeX(!rhsUk1sq1jlg)_inR3P}&- z;B1>rZ34%Ai>BiJa8AqHIail7`b!XpU7{u4B#ix)l|tApB@&BZeATzs<<%EmD*}Vo z`p+fG%+8OuZy-QfE@ytdk0@oxF$v7RNf1NVW-<(iA8RUsX)gL*Uu2~?n_igQ&uM*hbxdVP&-P%&g-GPs*38%aR}_dNm5CaN}sz-N5FTb`_?O+<@bklS6H7fA)X7* zcVDu(#iQmIjs!v@xM8`ptq$Sa?um&-U$O%ReSyh3LZ_glbaHcXv!T}_Kc9l<2x`hd zoex{}>P5aSW<%@!%0*k>sG7RE-MPtzin_o>-<^fk7V`Dikyd3VVKbfBoHMWau4mv^B*EcNT zsU`Tz#%erh#Q9Z6m_Mh;FqFsyDsn^ zehg39quBV+M-)3SExDE(`v&PyH|eDQINXwnk&%*eDz`4k&6gxvE=g4XL97($WGKib zJf-zlEqbZf7MM~X=z_rI(aU5IN-tdN`L9knqOp#hKf!MK>9I|H+cXM$#e$O-iX_Dx zBet(SGwVDkJX4aBuYmjQ?=Nyw>?u&3qYm)Wx=ZHF!Pc}SWV<=NjGCmg+azt~*^^$h zEY|ZcxwkWx9w&B{K&=91qWGmPHda@^&=i`J^Q)TxTaAk>VogC>w)q~z zT8q4^*%^pBXJXraiipd)tWu1qD}|AXX?1=1EMYUEeQGS%v2d`yKG~Edg60i@-u9@A zXCVDzKT;Uj{Vcg`m+M1Nv!f~yB&q-5E})?$+tbx&C(x~vHZi#M^l5cja4J|WXldJSEoLN$Z8{5wd2co2PoY1@GBcXM2INKV=r$G;RU5CY|Cz) zM$PXYd&BNV7s zoolQVvNVZAO)u8pcXrTBZQfkc;F^@m%A}OIvf}zpXNTqriScwm6anvfkvEY%hLhB@ zh=xDtdBH6d9XlG(^NWUsEFfoabO!)I_>a!I;e`A1nBhL|U?qe4jgX%XOT{R|mcfy}& zYC{eZqtCz_xyKpz@ftDv8T4VEkQ{qvCUV*h15VUxUdQC@_&<8wj+bV%m^{@Tk3b66 z*{#hGSS($S#=OtztBM;x`qQ^5)k+O0VX00xv952l2Uuer56pb89HbDl3zfhiq+u3slM5O3KggQKnNm zLv**hwDk3N^trsczhzx);K&=yZAXz}0DrugE@h)Tf%Ej~18PhuDsj7=P z#w^d~gK1qfCO_tDR!S%wuFLbiP3ua=fmwYA^95E?(!#!BckB*c6H4D=3PzthK6d1{ z)=M;Hu4h=knx%5E$;a9h()LEiIe_}sBvhgt20WsZ@y3 zqb(N!TW_U9+Oat-9vq`n&bnPN8j`uZkZr*9{>OFT`ha#6ttuhC^U}&H0iUz$ajYHd zz+#W2%&@P4R|@`M>Y|*L*!*-|oz#R(KzHdCM6bd=#EYG=nfMyeDB~X|PQcfmDr-K` zN?~hYG(hr#mB(?_)xzs0`tZm3_+4CKXz6jg?QQk9oUwH7zTS!?Bx+f4zPVQZuU=&= z_-6Y18}~wtz(Oa+IWU9VmI+KZ(4zTQQdtLwG7tqkMCD>IoR{HRwoM-!Om!Eu0GJM-U#Qs;BO3>vovkRs8yjnNEX_pDt!`oka#6OqP8>3h;}&hHG(mM^jy})s zpm)f1d>+?9QS2Z$x00_kf;c5!#Y->C1H~#jP0n5EzVYNRzx)G_BtM+cv#BH9lSa4Bm0% z)yfrYe`%?Ef9`EE%!~IiqIB2s1HIuvCf}T=QyPqxD1k5yGtBD&19Xiz^rc(~P;In^j=I5@3V$od8&O5n7#?1AfO`yf4Gz8prT6TywH zmy+v|*Lbd>F+p`xNUNm@`dQANCF0Rn=w1=TA>G@53O?55*hpMT-{Z$(S1|Sl+gU<$ z#v|Yv|4AYRcKPtIBq{Dt`NZ}w7pS!YW0kGQ0_J1`YwH`5b^=&oOU7P>zxKOrC!sPG6JtMuwjIp}H#Q_dAmR>;V! ztBE*6j$XdwrIb17$NM=gRhbu=AjMpoTR5%X`oRJcqcz$KwL zt#D5hk!0Hi#l}wLuM%9{-Z{BG4^Oxh*n)G<_#Kc)7w8t$9{rFQ?TVMA(DI(~r)6-K zG~IWNr73g4hs=cUZS%X~`=m{+@-HkbFLa*gXL~xiBd|Y1a&dePBzCZINxt$@&sL|8 zr3~qZL`IevY(`MvOqMLW&Ord>c9t|F9hkPFHP+sM_aSo{A&qsK^Dq=9**hU&4b3e!B?`dqrP07%EbFka5hKWAgGP5k+b( zEcBNBe{WAa{6Pdm@WSqC>5pBedta0w{6DK74EWye8ZgmHjW{M%XEhq;6aEeV%cEUBahey6e2XsI!Uu@fl^aKZ!RW2 z9*>YG3Xsi$wP~BJY2P#IaOOvvMk$8)(Wo278Y!m8e7WR-2%;)~qbn%&vZZ!KBwMAA zm_9bUWvntRBxIqxh)Ug`_eE{{DgRq(3K?748l$DLb)Cs)Hzs*+LPA2oQR!7AARsV$28W+&{8+5plL6I+u2jWLiA6Qo_m@;1 zcE%sIQA(Vr;FYO-XB0q!og|aqDjpmhiVcICW%R7tKsxN@1bt)Uj~kcv{5owX+E~@Q z&ZFj6R##1i^2eTaL&MDsO>vJVjQ&YTEMyJU74Y~$1 z7r&Lc;h78-XFlKdXzhFP!qRwng2nD&53WeLrluFi7`^9)FX1>Zr!)3Og3Wu`#*l{x z1QBL7rn%lileB~HvPMabA2}4UN9G2aTU*Uc6%;aal}&mxEDq)sAqwGp3-eqL*XkaX z#5uWgX|;cYuXe>HHaq;j--#L|x@#|xl&i#(6TY3P1Mqd9)!C~Y_5uLSUnz!fJ`z!( z8PQ_4G49@~e)(`7a5N&@*y##i=asn6sL*_m9d+|pbzoYqEWWz0wGlnltd@U8y)zoZ zouaQL^G70l@&#R_0!4ZrppW&0r$#NdQK|EinE^jdSoe#Um}|2*<=jzv?U4Q3=Wi#ZwCI1Vs+nXyopqMLQBobc!Oci)mZLE<_Fo0fGZ)v3O1+R&sAaOtEf5M zPsn^(QTvtb4Q}$sq{ar>M3ROi8U2n^0e9P~A=(nMjtW3CkZ!J^c#*44Hi>--cZl8}) zoIf>&i5Q)p4E5p;T_wTp5Q$a#yk!-_$Msh3rXWEIZJJD7_P|Kggs>x5j_JZRaKpic zPrp~aam%vV90>2r;j&(OI_yS@wZ&$eYe7R+?p!0?uD>42ATOILqqojx;Ob41x!$)f zmH6^+)=I&UQl3`rrgO6{^Qo>hUlO*#o|;6}utUa1^gYAJ#u5C!P867WhJep{dmD$0 zkN@>C2QE?dijE#J1tR;LhWhO8Q68ji@r{Ll=c}v7J^y#;Ul6T zkywlV0lUrV7xMyVoG`5cPD|?W{rvo|k$Za#<>9S?1RkM4h4?KQrX zRNH$hU&R>OEVQ*Znv&gB0{qFHABu~gl<#9>)l zUP8*VmM}Irn-U1nY`_C_x5IGB3}cfnyWNVw41*`avaYNQ7b&$iD$Hlo)@<3JBDkN% z{%u0o-q6eH{-?XUE#|suDqak8Eub}|*8LCEC3gNg`aEw(K2MX{%82ePy2&;HlAF5&fw?|X4pk1 z%+_vJ1i&LvMahthpCxs8LfP)JWh5Bs&mET94%*!}1u1M!1D}7RIR}>$+;OQc2<+~xd6LKsL zqE|1rrThMU(6~3|(NtsPP@Y!O4bH*_&c(;q*yN}K^pmo6Nvs!O&RbAgHNH>fj3@2>mT?a%&i zcJpe2(j^*{vwNaD{tZgu3WXoXqU8r>@D9Twt-EvXOY~}4I~0vOYi{8>AD+lz?F3zk zh{(vMJoKBFu3EF}U|X03>kg}-(oMp)7O&j5E-GlTu>@ zm*h^}Xym}kk|}@MMdX&>lR@SzRVI1KLxZ!X+viA$#)$C~>K)gv_0kZG)!D8cJ@SfR zBZ&B08)I(5lUgZb540zIWhSygZPA&L`c9chsi)j08l%mXCVD*?P)5ufrd&iZ^6~&2 zqEG%h=)%JfwzF1aO^aU{`rk(;81X^8)$~s{`_Iol;1Lm>0iMh9^p%;Uu!$Kse{7{C z51Yfb@4IIOkXtBy=FkxHsgjO3hsELMLq5dP(Q385TVub64ol_>djGLsj!j$|l^hBS zhm%3{EMIiwA+(#x9XdPj@%8K1JRs0k@t2D4nNG|4c82%n&TXmLon1iO#t*#sn{))T zxwcG19v5V<)TPny*-|kuqz#6dxUS9heXGl)Wxcr4LOJl7qogaYp)JL6LWxh+myM2= z7Dl2kEJ%c(j7%qLY6+F4A#^;f_|H8&)7`sMbV?WPIK*$96C+|H0hy&(k4q3c@2nYg zW5UOjcHOI1as(wn5`Tb;pQ3C&JSVjK5d$3T`bT^TyYmv~m*-86?(-0U+c&PsSP z(rOY^GLRAL)HQ$jl$VrePx%(xr1d#$^^e&^#VlO-Ujjt3`IZ;&x>)0W@BO+NVkzLzJ&l};=(O4we;udmMy>-s92q}X@4xg8bRYMpH z`HbB8AoR%KVa4aqwIPKF;WiRMBe~8cX}<8s5+)io&aw=Be7n88&paUu+w#h4iE=|bU_5%kG8sbBtCMerV)jNY!aj?yx4hMByi&@ zn?5t-8XkdxwhbG2`(GcuI^0%gIB?u|_0L>Q`1*OBdrq$|jP-1u^-ODrv%#2ry3z3yazJ~Z+XLJm2p-&SXk!;zw zSEnL(AlK~c?uOQFtP|Ti))4Nz!J7B=;4quF&ZQ6E-e0F~<$3G13u+$247&(t*@;^E zM)9HK!yLq-TDE=%vmb9kmeFi-kA60X{Y;cd0CkGuAu8D2zY~!yLcQN*PAd9^Nvkrs zg!BNZJ7@?)rOJ3oJbA4gE5{j(DJX+prc6e$XQI`tCO3)LZaof}9iQGR=}cLprd7yb zW>8<!jktUlNhks-C zX_nP71}r-}e%pn)fh9S!+VFN6JI+Fw0|k_hig0f$vzJ^B8_7^}OmnzuAL4Z9cX$@p z?&ZapxT}PO>>T%WbzoCvx%A$jh7y0$474(a239Vjvw1E~cY*W8FPDLz8s8Xdu`3?x zR%kb*#;wGP_qfn*)B16}lPag7VX_N8KhO4b_y+Oe-ki4gY{$#FK$)u2Qm)A{$;w~xAn`~%crLH{Z^wX7&ieR3c5ZR#g_!T;%raoI z*-8E!X>WhfrB2FIZ%cEhc`0Idd#5~{TNz^crUHww<68`P>fzzx<})h+FoF95cHKt+ z4S6_qC@CXdadjHPcy0FbU}`iw&Sh4ERslQPC)j8@(by4$FNcMt(1N&_m_bK|3w~*5 z<<8Ff(CX@HU0IC=-2V?OIOeOsx-s(ZelgOe-dDWqBSX!d$0oHKT&B^}Cr_8t2oE8s z647kuY@GQl{%8tpI8#Y5tHVYXRdF%TWL#XImC%9d+O+f<5Nf8W`f&@tB!1EC(3UYbqQ&Ba9v2GuBl9a3q6&IW3??IKlN_=lkJSkV~@#8a#`H^Xx z<9bXqN=iGsI|}lNP!Y*An)30uM3;mdQ6i}vuVX)UnUpAcUvF4VjBWpD4krw21C{{j z?`+JHs&wSc)+hQ~c>bt27g+RJN@C%q{DeLkP46E@I!BznBCm zyD^`N{a%@y;%OHRph*C&D{(i@4H>TbwCz@#c9YoSf&hPi^NHDx^b3@U9kYmv;PbQH zeLXBjt=3@K5QC3pZeIieiLLD*e?DxYIchfJJ-^7vv@R@68u8>a-w93fXwe`Bfa_Lg zcs$7*I_F&dqc!={c2ih6b^=Ph1A$Hr zXNC%7sEsyDtjH||Nj%+Wx>Fl2toJ9Waic<%dDThD1jyAF8LBIBwYMo3$GUEdfg+tm|0Cek#CjalwvWhFb> z-3g2$u`4LFPt&Jxo*pXfO18ndVTno|Q!8AO79yTUx!Lb56G+GN*4LV)sU~TyYL^^X zZqM-epckXki^@MRS)oT~80)trXYC0^b1uo$Q#69k<}G(4=8oY$X(q%?DT&ev9KWso4@ z>2TTC(uph@+;Ma4&b9JoT`Vd~wO**FqyCT~vq9}}v95s6*hp9F0;dnA5>Q0%^i@fL zkmXvs)&>5N?C*!yj~@93sae{O+VT=dZ{CK1WvS?QJG7uRBwIfN&fB2dBt3=KD%a2S4tt&pwK6-Q+!J2kf(I zQfxbP&s{oB9Ee>N?<@G;F8kl&-P&CY5GCmA?G_;AId3&-xccp{Z>RM7?<&d~o`t^( zQC#pr*4*StNiqJYoY@K#_TTJobocfGTujQ6VUWfHNNB!|4G{I_efuY7M`@j#Q!zSb zP-DA%_58J~=jWkdLALNA=Oz!UwvDxQODNCapxDu)5nYzy|ENm!>OpjXDhG=Ul6;`X zflBuD^vrn@D<>K&MW91@5~Fr@bYztcXl5CM0%jt$(ctU@8^R3YDGm{{ErX5pyl56S zXYbqK4Kp1n*5gs``)nNy^I=$a^ZgLNE+lVFbv~+o5T;$~=^ zA|oOkDOoHUU%LRiFC946Uvo`Jx(!#>W`OAmIt!ht+;-ySd*w&a&+yW$?Y|^`*2RBk z1Z7KnXkjwhs0U>PE7XAe4L{~n*jJb|f^+OQvJ&g$QenKg4w#tm&J-XVXdXdllK>L^ z@x!_y{*d>WZBJICGyHlmc_YV=n#(}bh}&w?D{4+I;mNbT?v}ACAMJkh^JR_uum`j5 z{~mLVSdZXFit?ks;uF`{dyL-3Uuhxw7)Opi3o$o)IgUY6?%SMkh7PX3_Adq!`CFNq z5B;J0itmtHVwF{u7bA>jQHeCmXR&Fu1hu4`g~GRW2dn$5qjC~c4sqse7XSDTkJ94W zpq&>H`h&0~WDJ+ua6AOHD22wg2AUg0o(E>s7M~}-aDhgGjB!)}y~N*W@UbldQxynV zpMP~iv)1#eJECm@L{d0DOKB?>SP)3%t7#?H_ZNMMRD0&jvwt*BTi5LO%X_`7;+Yu z)k$D^N>B$BA1=phYsYc2n$&iUOMJX*Q5sVNG=s~0ULy!bIo% z-@ngt!Mu|X`@dizP2s>5ktlP`oNSPgkSOsF<BWxwn|piq zmFO+}s_PquL02XK3_4$jK7pPPHoM6^K~In>q49eddi=N-A!G8|3KTFTLKqF|Hr}#v z&o2Fth5>^Tw|TyFVq}D2SVS`AEnV2@rd|c*rf~LX-R$?ZK-xj|q=!F1gCE1|-^5

J-t(C?D*vNbSd$Mpldw%6G^3`$t6)P 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 O*JNyHeySLKDeAvN*8HCU From 2eeb722d7b4061c23271e6000bb6d8bff0ee62d5 Mon Sep 17 00:00:00 2001 From: Hawkynt Date: Tue, 27 Oct 2026 11:48:39 +0100 Subject: [PATCH 7/7] * retain main artwork for Android boot formats Preserve the completed screenshot refresh history and restore main artwork so the Android formats merge independently of other pending formats. --- docs/screenshots/archive-browser.png | Bin 66598 -> 65657 bytes screenshots/main-window.png | Bin 65657 -> 66510 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/screenshots/archive-browser.png b/docs/screenshots/archive-browser.png index 0fb08c654833560b7c49f4bd78283ac84c6decc2..e3795c0d04a8041389e0aaa3edc8cc5c89e36820 100644 GIT binary patch literal 65657 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

J-t(C?D*vNbSd$Mpldw%6G^3`$t6)P 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 O*JNyHeySLKDeAvN*8HCU literal 66598 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 L^J}Gs_a6QeKh2rv diff --git a/screenshots/main-window.png b/screenshots/main-window.png index e3795c0d04a8041389e0aaa3edc8cc5c89e36820..a8d91cb6875fd05a6e6bed08a6f241f4bb446625 100644 GIT binary patch literal 66510 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 z zQ6F!zX{^9NEH0^6$gnqg7@ImJsj+e9bSC@bGbO1(*+673z6xedyi|;3<_5#UiDyUm zp0=RI7d8F(3b8QOJiGm{iP)W%st1N7pjlPmcdcO&r>@H~d@dkSID`Ez6!8-KBk{3j z7<>m9nD3*1OMC;>$98Iac*`GhNnGO%{E!+ExQ1*^?Nk*i7>Ix6|LV)}_3FAUQgznG T5?6D@2WE2C;!LiA^I!i3jR{9W literal 65657 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

J-t(C?D*vNbSd$Mpldw%6G^3`$t6)P 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 O*JNyHeySLKDeAvN*8HCU