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. |
||
---|---|---|
.github | ||
custom | ||
EFI_template_installer/EFI | ||
helm | ||
osx-serial-generator@908b3d687a | ||
tests | ||
vnc-version | ||
.gitmodules | ||
CHANGELOG.md | ||
constants.py | ||
CREDITS.md | ||
discord-logo.svg | ||
docker-compose.yml | ||
Dockerfile | ||
Dockerfile.auto | ||
Dockerfile.monterey | ||
Dockerfile.naked | ||
Dockerfile.naked-auto | ||
FAQ.md | ||
fetch-macOS.py | ||
glibc-linux4-2.33-4-x86_64.pkg.tar.zst | ||
LICENSE | ||
linux_hardware_info.py | ||
main_app.py | ||
plist_modifier.py | ||
rankmirrors | ||
README.md | ||
running-mac-inside-docker-qemu.png | ||
usb_writer_linux.py | ||
usb_writer_macos.py | ||
usb_writer_windows.py | ||
utils.py | ||
Youtube-Screenshot-Docker-OSX-Setup.png | ||
Youtube-USBFLUXD-Screenshot-Docker-OSX.png |
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.).
- Directly downloads official macOS installer assets from Apple's servers using
- 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.
- If enabled by the user (and running the tool on a Linux host for hardware detection):
- 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.
- The tool configures the
- 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:
- 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). - OCLP Preparation: The
config.plist
generated by this tool will include essential boot arguments (likeamfi_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
- Python: Version 3.8 or newer.
- Python Libraries:
PyQt6
,psutil
. Install viapip install PyQt6 psutil
. - Core Utilities (All Platforms, in PATH):
git
(forgibMacOS.py
).7z
or7za
(7-Zip CLI for archive extraction).
gibMacOS.py
Script:- Clone
corpnewt/gibMacOS
(git clone https://github.com/corpnewt/gibMacOS.git
) into ascripts/gibMacOS
subdirectory within this project, or ensuregibMacOS.py
is in the project root or system PATH and adjustGIBMACOS_SCRIPT_PATH
inmain_app.py
if necessary.
- Clone
- Platform-Specific CLI Tools for USB Writing:
- Linux (e.g., Debian 13 "Trixie"):
sgdisk
(fromgdisk
),parted
,partprobe
(fromutil-linux
)mkfs.vfat
(fromdosfstools
),mkfs.hfsplus
(fromhfsprogs
)rsync
,dd
apfs-fuse
: Requires manual compilation (e.g., fromsgan81/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
(orp7zip
)
- macOS:
diskutil
,hdiutil
,rsync
,cp
,dd
,bless
.7z
(e.g.,brew install p7zip
). - Windows:
diskpart
,robocopy
.7z.exe
. A "dd for Windows" utility.
- Linux (e.g., Debian 13 "Trixie"):
How to Run (Development Phase)
- Meet all prerequisites for your OS, including
gibMacOS.py
setup. - Clone this repository. Install Python libs:
pip install PyQt6 psutil
. - Execute
python main_app.py
. - For USB Writing Operations:
- Linux: Run with
sudo python main_app.py
. - macOS: Run normally. May prompt for password for
sudo rsync
ordiskutil
. Ensure the app has Full Disk Access if needed. - Windows: Run as Administrator.
- Linux: Run with
Step-by-Step Usage Guide (New Workflow)
- 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.
- 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 originalconfig.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.
- 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.
- (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)