Skip to content

Align project-bundle hash verification with iOS romChecksum schema #205

Description

@scawful

Problem

z3ed project-bundle-verify --check-rom-hash expects manifest.json.rom_sha1, while the portable/iOS bundle producer contract writes manifest.json.romChecksum.

A valid Oracle portable bundle therefore verifies structurally but reports:

rom_hash_check: warn: No rom_sha1 field in manifest.json

Reproduction

z3ed project-bundle-verify \
  --project /path/to/Oracle.yazeproj \
  --check-rom-hash \
  --format json

Observed with Yaze/z3ed exact build tree d02784a79afa334f566ffc260a353a98af45df19:

  • structural checks: 7/7 pass
  • hash check: warning, despite romChecksum containing the correct 40-character raw-file SHA-1

Relevant consumer:

  • src/cli/handlers/rom/project_bundle_verify_commands.cc reads only rom_sha1

Relevant portable schema/producer:

  • iOS YazeDocumentManifest / Oracle exporter use romChecksum

Expected

Use one canonical field across producers and consumers, or accept both during a compatibility window. If both are present, reject disagreement. A valid bundle should pass --check-rom-hash without warnings.

Scope

Nonblocking for the current Oracle WaterFill safety patch because its exporter independently verifies romChecksum; this issue is for cross-tool bundle compatibility and trustworthy CLI qualification.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions