mirror of
https://github.com/sickcodes/Docker-OSX.git
synced 2025-06-21 00:52:51 +02:00
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:
parent
15b9048a9c
commit
5d0e2da88d