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:
parent
91938925c1
commit
ca44d9e8d2