Go to file
google-labs-jules[bot] ca44d9e8d2 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.
2025-06-20 19:56:19 +00:00
.github feat: Implement cross-platform USB writing, UI/UX improvements, and enhanced Docker interaction 2025-06-03 22:16:08 +00:00
custom Remove fails from /custom 2021-12-19 19:42:51 +00:00
EFI_template_installer/EFI refactor!: Complete shift to gibMacOS installer workflow, update all USB writers, major plist enhancements, UI/UX improvements, and full README rework 2025-06-13 10:47:04 +00:00
helm chore(docs): update helm requirements list style 2022-01-12 09:18:01 +01:00
osx-serial-generator@908b3d687a Update submodule 2024-04-01 07:55:14 +00:00
tests Add sonoma to README with special flags 2024-04-08 13:12:35 +00:00
vnc-version feat: Implement cross-platform USB writing, UI/UX improvements, and enhanced Docker interaction 2025-06-03 22:16:08 +00:00
.gitmodules Add https://github.com/sickcodes/osx-serial-generator.git as a submodule to replace ./custom 2021-03-09 08:44:58 +00:00
CHANGELOG.md Add sickcodes/docker-osx:monterey! 2021-09-09 23:00:20 +00:00
constants.py Jules was unable to complete the task in time. Please review the work done so far and provide feedback for Jules to continue. 2025-06-01 10:43:01 +00:00
CREDITS.md Merge pull request #742 from Anthropohedron/faq 2024-05-01 16:53:12 +00:00
discord-logo.svg Fix usbfluxd setup instructions. Add @cybik & @Silfalion to credits. Added https://github.com/Silfalion/Iphone_docker_osx_passthrough 2021-09-07 05:49:26 +00:00
docker-compose.yml Update docker-compose.yml 2020-07-02 16:36:15 +02:00
Dockerfile feat: Implement cross-platform USB writing, UI/UX improvements, and enhanced Docker interaction 2025-06-03 22:16:08 +00:00
Dockerfile.auto feat: Implement cross-platform USB writing, UI/UX improvements, and enhanced Docker interaction 2025-06-03 22:16:08 +00:00
Dockerfile.monterey feat: Implement cross-platform USB writing, UI/UX improvements, and enhanced Docker interaction 2025-06-03 22:16:08 +00:00
Dockerfile.naked feat: Implement cross-platform USB writing, UI/UX improvements, and enhanced Docker interaction 2025-06-03 22:16:08 +00:00
Dockerfile.naked-auto feat: Implement cross-platform USB writing, UI/UX improvements, and enhanced Docker interaction 2025-06-03 22:16:08 +00:00
FAQ.md one more FAQ 2024-02-08 17:42:30 -05:00
fetch-macOS.py Update fetch-macOS.py 2021-07-01 08:33:40 +00:00
glibc-linux4-2.33-4-x86_64.pkg.tar.zst Self-host in the repo glibc to emphasize the temporariness of this patch. 2021-02-12 18:17:38 +00:00
LICENSE Initial commit 2020-06-04 11:01:38 +00:00
linux_hardware_info.py feat: Add config.plist auto-enhancement, UI/UX improvements, and docs rework 2025-06-05 21:47:07 +00:00
main_app.py Jules was unable to complete the task in time. Please review the work done so far and provide feedback for Jules to continue. 2025-06-12 06:20:40 +00:00
plist_modifier.py Jules was unable to complete the task in time. Please review the work done so far and provide feedback for Jules to continue. 2025-06-12 06:20:40 +00:00
rankmirrors Add rankmirrors for minimal automated mirror fetching. 2021-01-04 13:29:47 +00:00
README.md Jules was unable to complete the task in time. Please review the work done so far and provide feedback for Jules to continue. 2025-06-13 07:03:53 +00:00
running-mac-inside-docker-qemu.png More attractive image + credits updates 2020-12-17 10:47:25 +00:00
usb_writer_linux.py refactor!: Complete shift to gibMacOS installer workflow, update all USB writers, major plist enhancements, UI/UX improvements, and full README rework 2025-06-13 10:47:04 +00:00
usb_writer_macos.py refactor!: Complete shift to gibMacOS installer workflow, update all USB writers, major plist enhancements, UI/UX improvements, and full README rework 2025-06-13 10:47:04 +00:00
usb_writer_windows.py refactor!: Complete shift to gibMacOS installer workflow, update all USB writers, major plist enhancements, UI/UX improvements, and full README rework 2025-06-13 10:47:04 +00:00
utils.py Jules was unable to complete the task in time. Please review the work done so far and provide feedback for Jules to continue. 2025-06-01 10:43:01 +00:00
Youtube-Screenshot-Docker-OSX-Setup.png Add YouTube tutorial video 2021-10-06 00:26:41 +00:00
Youtube-USBFLUXD-Screenshot-Docker-OSX.png Add usbfluxd video link: https://www.youtube.com/watch?v=kTk5fGjK_PM 2021-12-07 12:35:54 +00:00

Skyscope macOS on PC USB Creator Tool

Version: 1.1.0 (Alpha - Installer Workflow with NVIDIA/OCLP Guidance) Developer: Miss Casey Jay Topojani Business: Skyscope Sentinel Intelligence

Vision: Your Effortless Bridge to macOS on PC

Welcome to the Skyscope macOS on PC USB Creator Tool! Our vision is to provide an exceptionally user-friendly, GUI-driven application that automates the complex process of creating a bootable macOS USB Installer for a wide range of PCs. This tool aims to be your comprehensive solution, simplifying the Hackintosh journey from start to finish by leveraging direct macOS downloads from Apple and intelligent OpenCore EFI configuration.

This project is dedicated to creating a seamless experience, from selecting your desired macOS version (defaulting to the latest like Sequoia where possible) to generating a USB drive that's ready to boot your PC and guide you through installing macOS. We strive to incorporate advanced options for tech-savvy users while maintaining an intuitive interface for all, with a clear path for enabling currently unsupported hardware like specific NVIDIA GPUs on newer macOS versions through community-standard methods.

Core Features

  • Intuitive Graphical User Interface (PyQt6):
    • Dark-themed by default (planned UI enhancement).
    • Rounded window design (platform permitting).
    • Clear, step-by-step workflow.
    • Enhanced progress indicators (filling bars, spinners, percentage updates - planned).
  • Automated macOS Installer Acquisition:
    • Directly downloads official macOS installer assets from Apple's servers using gibMacOS.py principles.
    • Supports user selection of macOS versions (e.g., Sequoia, Sonoma, Ventura, Monterey, Big Sur, etc.).
  • Automated USB Installer Creation:
    • Cross-Platform USB Detection: Identifies suitable USB drives on Linux, macOS, and Windows (using WMI for more accurate detection on Windows).
    • Automated Partitioning: Creates GUID Partition Table (GPT), an EFI System Partition (FAT32, ~300-550MB), and a main macOS Installer partition (HFS+).
    • macOS Installer Layout (Linux & macOS): Automatically extracts and lays out downloaded macOS assets (BaseSystem, key support files, and installer packages) onto the USB to create a bootable macOS installer volume.
    • Windows USB Writing (Partial Automation): Automates EFI partition setup and EFI file copying. Writing the BaseSystem HFS+ image to the main USB partition requires a guided manual dd step by the user. Copying further HFS+ installer content from Windows is not automated.
  • Intelligent OpenCore EFI Setup:
    • Assembles a complete OpenCore EFI folder on the USB's EFI partition using a robust template.
    • Experimental config.plist Auto-Enhancement:
      • If enabled by the user (and running the tool on a Linux host for hardware detection):
        • Gathers host hardware information (iGPU, dGPU, Audio, Ethernet, CPU).
        • Applies targeted modifications to the config.plist for iGPU, audio, Ethernet, and specific NVIDIA GPU considerations.
      • Creates a backup of the original config.plist before modification.
  • NVIDIA GPU Strategy (for newer macOS like Sonoma/Sequoia):
    • The tool configures the config.plist to ensure bootability with NVIDIA Maxwell/Pascal GPUs (like GTX 970).
    • If an Intel iGPU is present and usable, it will be prioritized for display, and nv_disable=1 will be set for the NVIDIA card.
    • Includes necessary boot-args (e.g., amfi_get_out_of_my_way=0x1) to prepare the system for post-install patching with OpenCore Legacy Patcher (OCLP), which is required for graphics acceleration.
  • Privilege Checking: Warns if administrative/root privileges are needed for USB writing and are not detected.

NVIDIA GPU Support on Newer macOS (Mojave+): The OCLP Path

Modern macOS versions (Mojave and newer, including Ventura, Sonoma, and Sequoia) do not natively support NVIDIA Maxwell (e.g., GTX 970) or Pascal GPUs with graphics acceleration.

How Skyscope Tool Helps:

  1. Bootable Installer: This tool will help you create a macOS USB installer with an OpenCore EFI configured to allow your system to boot with your NVIDIA card (either using an available Intel iGPU with the NVIDIA card disabled by nv_disable=1, or with the NVIDIA card providing basic, unaccelerated display if it's the only option).
  2. OCLP Preparation: The config.plist generated by this tool will include essential boot arguments (like amfi_get_out_of_my_way=0x1) and settings (SecureBootModel=Disabled) that are prerequisites for using the OpenCore Legacy Patcher (OCLP).

User Action Required for NVIDIA Acceleration (Post-Install):

  • After you have installed macOS onto your PC's internal drive using the USB created by this tool, you must run the OpenCore Legacy Patcher application from within your new macOS installation.
  • OCLP will then apply the necessary system patches to the installed macOS system to enable graphics acceleration for your unsupported NVIDIA card.
  • This tool does not perform these system patches itself. It prepares your installer and EFI to be compatible with the OCLP process.
  • CUDA: CUDA support is tied to NVIDIA's official drivers, which are not available for newer macOS. OCLP primarily restores graphics (Metal/OpenGL/CL) acceleration, not the CUDA compute environment.

For macOS High Sierra or older, this tool can set nvda_drv=1 if you intend to install NVIDIA Web Drivers (which you must source and install separately).

Current Status & Known Limitations

  • Workflow Transition: The project is currently transitioning from a Docker-OSX based method to a gibMacOS-based installer creation method. Not all platform-specific USB writers are fully refactored for this new approach yet.
  • Windows USB Writing: Creating the HFS+ macOS installer partition and copying files to it from Windows is complex without native HFS+ write support. The EFI part is automated; the main partition might initially require manual steps or use of dd for BaseSystem, with file copying being a challenge.
  • config.plist Enhancement is Experimental: Hardware detection for this feature is currently Linux-host only. The range of hardware automatically configured is limited to common setups.
  • Universal Compatibility: While striving for broad compatibility, Hackintoshing is hardware-dependent. Success on every PC configuration cannot be guaranteed.
  • Dependency on External Projects: Relies on OpenCore and various community-sourced kexts and configurations. The gibMacOS.py script (or its underlying principles) is key for downloading assets.

Prerequisites

  1. Python: Version 3.8 or newer.
  2. Python Libraries: PyQt6, psutil. Install via pip install PyQt6 psutil.
  3. Core Utilities (All Platforms, in PATH):
    • git (for gibMacOS.py).
    • 7z or 7za (7-Zip CLI for archive extraction).
  4. gibMacOS.py Script:
    • Clone corpnewt/gibMacOS (git clone https://github.com/corpnewt/gibMacOS.git) into a scripts/gibMacOS subdirectory within this project, or ensure gibMacOS.py is in the project root or system PATH and adjust GIBMACOS_SCRIPT_PATH in main_app.py if necessary.
  5. Platform-Specific CLI Tools for USB Writing:
    • Linux (e.g., Debian 13 "Trixie"):
      • sgdisk (from gdisk), parted, partprobe (from util-linux)
      • mkfs.vfat (from dosfstools), mkfs.hfsplus (from hfsprogs)
      • rsync, dd
      • apfs-fuse: Requires manual compilation (e.g., from sgan81/apfs-fuse on GitHub). Typical build dependencies: git g++ cmake libfuse3-dev libicu-dev zlib1g-dev libbz2-dev libssl-dev.
      • Install most via: sudo apt update && sudo apt install gdisk parted dosfstools hfsprogs rsync util-linux p7zip-full (or p7zip)
    • macOS: diskutil, hdiutil, rsync, cp, dd, bless. 7z (e.g., brew install p7zip).
    • Windows: diskpart, robocopy. 7z.exe. A "dd for Windows" utility.

How to Run (Development Phase)

  1. Meet all prerequisites for your OS, including gibMacOS.py setup.
  2. Clone this repository. Install Python libs: pip install PyQt6 psutil.
  3. Execute python main_app.py.
  4. For USB Writing Operations:
    • Linux: Run with sudo python main_app.py.
    • macOS: Run normally. May prompt for password for sudo rsync or diskutil. Ensure the app has Full Disk Access if needed.
    • Windows: Run as Administrator.

Step-by-Step Usage Guide (New Workflow)

  1. Step 1: Download macOS Installer Assets
    • Launch the "Skyscope macOS on PC USB Creator Tool".
    • Select your desired macOS version (e.g., Sequoia, Sonoma).
    • Choose a directory on your computer to save the downloaded assets.
    • Click "Download macOS Installer Assets". The tool will use gibMacOS to fetch the official installer files from Apple. This may take time. Progress will be shown.
  2. Step 2: Create Bootable USB Installer
    • Once downloads are complete, connect your target USB flash drive (16GB+ recommended).
    • Click "Refresh List" to detect USB drives.
      • Linux/macOS: Select your USB drive from the dropdown. Verify size and identifier carefully.
      • Windows: USB drives detected via WMI will appear in the dropdown. Select the correct one. Ensure it's the Disk X number you intend.
    • (Optional, Experimental): Check the "Try to auto-enhance config.plist..." box if you are on a Linux host and wish the tool to attempt automatic config.plist modification for your hardware. A backup of the original config.plist will be made.
    • CRITICAL WARNING: Double-check your USB selection. The next action will erase the entire USB drive.
    • Click "Create macOS Installer USB". Confirm the data erasure warning.
    • The tool will:
      • Partition and format the USB drive.
      • Extract and write the macOS BaseSystem to make the USB bootable.
      • Copy necessary macOS installer packages and files to the USB.
      • Assemble an OpenCore EFI folder (potentially with your hardware-specific enhancements if enabled) onto the USB's EFI partition.
    • This is a lengthy process. Monitor progress in the output area and status bar.
  3. Boot Your PC from the USB!
    • Safely eject the USB. Configure your PC's BIOS/UEFI for macOS booting (disable Secure Boot, enable AHCI, XHCI Handoff, etc. - see Dortania guides).
    • Boot from the USB and proceed with macOS installation onto your PC's internal drive.
  4. (For Unsupported NVIDIA on newer macOS): Post-Install Patching
    • After installing macOS, if you have an unsupported NVIDIA card (like GTX 970 on Sonoma/Sequoia) and want graphics acceleration, you will need to run the OpenCore Legacy Patcher (OCLP) application from within your new macOS installation. This tool has prepared the EFI to be generally compatible with OCLP.

Future Vision & Advanced Capabilities

  • Fully Automated Windows USB Writing: Replace the manual dd step with a reliable, integrated solution.
  • Advanced config.plist Customization:
    • Expand hardware detection for plist enhancement to macOS and Windows hosts.
    • Provide more granular UI controls for plist enhancements (e.g., preview changes, select specific patches).
    • Allow users to load/save config.plist modification profiles.
  • Enhanced UI/UX for Progress: Implement determinate progress bars with percentage completion and more dynamic status updates.
  • Debian 13 "Trixie" (and other distros) Validation: Continuous compatibility checks and dependency streamlining.
  • "Universal" Config Strategy (Research): Investigate advanced techniques for more adaptive OpenCore configurations, though true universality is a significant challenge.

Contributing

We are passionate about making Hackintoshing more accessible! Contributions, feedback, and bug reports are highly encouraged.

License

(To be decided - e.g., MIT or GPLv3)