feat: Complete installer workflow, NVIDIA/OCLP prep, UI/docs

This commit concludes a major development cycle I focused on. I transitioned to a
`gibMacOS`-based installer workflow, significantly enhancing platform-specific
USB creation logic, refining OpenCore `config.plist` modifications (especially
for NVIDIA GTX 970 OCLP preparation), and improving UI/UX and documentation.

**Key Accomplishments in this Overall Plan:**

1.  **Core Workflow Overhaul (Installer-Based via `gibMacOS`):**
    - I fully refactored `main_app.py` for the new workflow, removing Docker.
    - I now download official macOS assets with UI progress.

2.  **Platform-Specific USB Installer Creation (`usb_writer_*.py`):**
    - **Linux & macOS:** I implement nearly complete automation for creating macOS
      USB installers. This includes GPT partitioning, HFS+ formatting,
      BaseSystem extraction (`7z`) and writing (`dd`), copying of all essential
      installer assets (`BaseSystem.dmg`/`.chunklist`, `InstallInfo.plist`,
      `InstallAssistant.pkg`/`InstallESD.dmg`, `AppleDiagnostics.dmg`, `boot.efi`)
      to standard locations within a created `Install macOS [VersionName].app`
      structure, and `bless`ing (macOS).
    - **Windows:** I automate EFI partition setup and OpenCore EFI placement (from
      template + `plist_modifier.py`). I prepare `BaseSystem.hfs` and provide
      highly detailed guidance for manual `dd` of BaseSystem and manual copying
      of other HFS+ installer content by you.

3.  **Advanced `plist_modifier.py` (OpenCore `config.plist` Enhancement):**
    - I expanded hardware mappings (Alder Lake iGPUs with headless logic, audio
      codecs via name detection, Ethernet kexts).
    - **NVIDIA GTX 970 (Maxwell) OCLP Preparation:** For newer macOS, I add
      `amfi_get_out_of_my_way=0x1` (and consider `ngfxcompat=1`, `ngfxgl=1`)
      to `boot-args`, set conditional `nv_disable=1`, and ensure
      `SecureBootModel=Disabled`. For High Sierra, I set `nvda_drv=1`.
    - I create `config.plist.backup`.

4.  **`linux_hardware_info.py`:** I enhanced this with `get_audio_codecs()` for more
    accurate audio configuration.

5.  **`EFI_template_installer`:**
    - I thoroughly updated `config-template.plist` with robust, modern defaults
      (Alder Lake friendly, OCLP preparation) for `plist_modifier.py` to build upon.
    - I established a placeholder structure for kexts, drivers, ACPI.

6.  **UI/UX Enhancements (`main_app.py`):**
    - I added a status bar spinner for active operations.
    - I added a determinate `QProgressBar` for `gibMacOS` downloads.
    - I centralized UI state management.
    - I added privilege checks before USB writing.
    - I improved Windows USB detection (WMI/PowerShell).
    - (Note: Displaying determinate `rsync` progress in the UI was blocked by tooling issues,
      though `usb_writer_linux.py` emits the data).

7.  **Documentation (`README.md`):**
    - I comprehensively rewrote this for "Skyscope" branding, new workflow, detailed
      NVIDIA/OCLP strategy, full prerequisites, and usage instructions.
    - I updated the version to 1.1.0.

8.  **Research:**
    - I analyzed OCLP and community examples for NVIDIA Maxwell/Pascal support,
      confirming OCLP post-install patching as the standard for acceleration on
      newer macOS.
    - I confirmed `gibMacOS` as the preferred macOS asset downloader.

This version delivers a substantially more capable and user-informed tool for
creating macOS USB installers across multiple platforms, with a clear strategy
for handling common and specific hardware configurations like your
NVIDIA GTX 970.
This commit is contained in:
google-labs-jules[bot] 2025-06-20 19:56:19 +00:00
parent 91938925c1
commit ca44d9e8d2

Diff Content Not Available