Skip to content

Conversation

@gahan9
Copy link
Contributor

@gahan9 gahan9 commented Jan 8, 2026

For Issue #8

Technical Details:

  • Created 'uefi_analyzer' module consolidating analysis and reporting logic.
  • Implemented 'BiosAnalyzer' with Flash-accurate metrics:
    • Physical Flash Occupancy: Strict constraint based on root-level FV allocation.
    • Deep Analysis (Logical): Captures decompressed component data.
  • Developed an interactive HTML Dashboard with modern UI:
    • Hierarchical tree explorer for FVs, FFS files, and Sections.
    • Absolute start/end hexadecimal address ranges for all components.
    • Intelligent recursive search with automatic parent expansion.
    • Progress bars for space utilization at every nested level.
    • Raw JSON fallback for non-standard UEFI structures.
  • Added 'uefi-analyze' unified CLI for one-step binary-to-dashboard workflow.
  • Integrated UEFI Analysis into Windows Context Menu for right-click explorer access.
  • Enhanced 'UefiParser' with robust UTF-8 handling and version metadata fixes.
  • Bumped project version to 2.0.6."

Test Plan

Step 1: Parse the Binary to JSON

from xmlcli.common.bios_fw_parser import UefiParser
parser = UefiParser(bin_file="path/to/bios.bin")
output_dict = parser.parse_binary()
parser.write_result_to_file("output.json", output_dict=output_dict)

Step 2: Generate the Analysis Dashboard

uefi-analyze "C:\path\to\binary.bin"

…dashboard and unified CLI

Technical Details:
- Created 'uefi_analyzer' module consolidating analysis and reporting logic.
- Implemented 'BiosAnalyzer' with Flash-accurate metrics:
    - Physical Flash Occupancy: Strict constraint based on root-level FV allocation.
    - Deep Analysis (Logical): Captures decompressed component data.
- Developed interactive HTML Dashboard with modern UI:
    - Hierarchical tree explorer for FVs, FFS files, and Sections.
    - Absolute start/end hexadecimal address ranges for all components.
    - Intelligent recursive search with automatic parent expansion.
    - Progress bars for space utilization at every nested level.
    - Raw JSON fallback for non-standard UEFI structures.
- Added 'uefi-analyze' unified CLI for one-step binary-to-dashboard workflow.
- Integrated UEFI Analysis into Windows Context Menu for right-click explorer access.
- Enhanced 'UefiParser' with robust UTF-8 handling and version metadata fixes.
- Bumped project version to 2.0.6."
@gahan9
Copy link
Contributor Author

gahan9 commented Jan 8, 2026

pls review ++
@sys-xmlcli @prakashb72

@prakashb72 prakashb72 requested a review from Copilot January 19, 2026 03:26
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a comprehensive UEFI Firmware Analyzer module that provides both physical flash and logical (decompressed) analysis capabilities. The analyzer generates an interactive HTML dashboard with hierarchical exploration, space utilization metrics, and intelligent search functionality.

Changes:

  • Created the uefi_analyzer module with three core components: BiosAnalyzer for metrics calculation, report_generator for HTML dashboard generation, and cli for unified command-line interface
  • Added uefi-analyze CLI command for one-step binary-to-dashboard workflow
  • Integrated UEFI analysis into Windows Context Menu for right-click access
  • Enhanced UefiParser with improved UTF-8 handling and version metadata robustness
  • Bumped project version to 2.0.6

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
src/xmlcli/modules/winContextMenu/xmlcli_registry_listener.py Adds new "analyze_uefi" command that chains JSON generation with dashboard creation
src/xmlcli/modules/uefi_analyzer/report_generator.py Implements HTML dashboard generator with embedded JavaScript for interactive firmware visualization
src/xmlcli/modules/uefi_analyzer/cli.py Provides unified CLI entry point that handles both binary parsing and JSON analysis workflows
src/xmlcli/modules/uefi_analyzer/bios_analyzer.py Implements core analysis logic with separate physical/logical metrics calculation
src/xmlcli/modules/uefi_analyzer/analyze_view.py Alternative entry point for analysis-only workflow when JSON already exists
src/xmlcli/modules/uefi_analyzer/init.py Package initialization file
src/xmlcli/modules/uefi_analyzer/README.md Documentation for the UEFI analyzer module features and usage
src/xmlcli/common/bios_fw_parser.py Fixes exception handling syntax and adds robustness for version attribute access
src/xmlcli/_version.py Increments BUILD number from 5 to 6
pyproject.toml Updates version to 2.0.6 and registers new CLI command

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant