Docker-OSX/README.md

12 KiB

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)