I've made a major refactor to switch to a gibMacOS installer workflow, update all USB writers, enhance plist modification, and rework the documentation.

This commit represents a major architectural shift for the Skyscope macOS USB Creator Tool. I've changed the core functionality from a Docker-OSX based VM image creation process to a macOS installer creation method using `corpnewt/gibMacOS` for downloading official macOS assets.

Key Changes and Features in this Submission:

1.  **Core Workflow Overhaul (Installer-Based):**
    *   `main_app.py`: I've fundamentally refactored this to remove all Docker dependencies and UI elements.
    *   I've introduced a process to download macOS installer assets directly from Apple using `gibMacOS.py`. This includes basic progress parsing for UI feedback.
    *   The application flow is now: 1. Download macOS Assets -> 2. Create Bootable USB Installer.

2.  **Platform-Specific USB Writer Modules Refactored (`usb_writer_*.py`):**
    *   I've updated all USB writer modules (`usb_writer_linux.py`, `usb_writer_macos.py`, `usb_writer_windows.py`) to accept the `macos_download_path` (from `gibMacOS`) as input.
    *   Their `format_and_write` methods now aim to create a bootable macOS *Installer* USB:
        *   **Linux & macOS Writers:** I've implemented partitioning (EFI FAT32, Main HFS+), extraction of BaseSystem HFS image (via `7z`), writing BaseSystem to USB (via `dd`), copying of essential installer support files (`BaseSystem.dmg`, `.chunklist`, `InstallInfo.plist`, main installer PKG), and setup of a template-based OpenCore EFI (with `plist_modifier.py` enhancements). I'm still refining the completeness of all installer support files.
        *   **Windows Writer:** I've automated EFI partition setup and OpenCore EFI placement. I've prepared the BaseSystem HFS image. I'll guide you through a manual `dd for Windows` step for writing the BaseSystem image and note the difficulty of copying further HFS+ content from Windows.

3.  **`plist_modifier.py` Enhancements:**
    *   I've updated hardware mappings, particularly for Intel Alder Lake iGPUs (including headless configurations if a dGPU is detected) and common audio/Ethernet chipsets.
    *   I've refined NVIDIA GTX 970 `boot-args` logic: `nvda_drv=1` for High Sierra; `amfi_get_out_of_my_way=0x1` and conditional `nv_disable=1` (if iGPU present) for newer macOS to prepare for potential OCLP use.
    *   I now create a backup of the `config.plist` before modification.

4.  **`linux_hardware_info.py` Improvements:**
    *   I've added `get_audio_codecs()` to detect audio codec names, enabling more accurate `layout-id` selection by `plist_modifier.py`.

5.  **`EFI_template_installer` Created:**
    *   I've added a directory with a base OpenCore structure and a more robust `config-template.plist` (suited for Alder Lake and `plist_modifier.py`).

6.  **UI/UX Enhancements:**
    *   I've added a QTimer-driven text-based spinner to the status bar for active operations.
    *   I've made an initial implementation of determinate progress for `gibMacOS` downloads.
    *   I've centralized UI state management (`_set_ui_busy`, `update_all_button_states`).

7.  **Documentation (`README.md`):**
    *   I've completely rewritten this to reflect the "Skyscope" branding, the new installer-based workflow, updated features, detailed prerequisites (including for `gibMacOS` and platform-specific USB writing tools like `7z`, `hfsprogs`, `apfs-fuse`), comprehensive usage instructions, and current limitations (especially for Windows USB writing and NVIDIA on newer macOS, guiding towards OCLP post-install).

This submission lays a new foundation for the tool, focusing on creating macOS installers directly. While the Linux and macOS USB creation paths are mostly automated, the Windows path still has a significant manual component for the main OS partition. Further refinements will focus on completing the installer file sets for Linux/macOS, improving Windows automation if feasible, and acting on NVIDIA/OCLP research.
This commit is contained in:
google-labs-jules[bot] 2025-06-13 01:56:17 +00:00
parent 15b9048a9c
commit 5d0e2da88d

Diff Content Not Available