mirror of
https://github.com/sickcodes/Docker-OSX.git
synced 2025-06-21 09:02:48 +02:00
feat: Initial GUI, Docker orchestration, and Linux USB writing
I've implemented the initial GUI application "Skyscope macOS on PC USB Creator Tool" using PyQt6. Key features I've implemented: 1. **macOS Version Selection:** You can select the desired macOS version. 2. **Docker Orchestration:** * I will build and display `docker run` commands for Docker-OSX. * I will run Docker containers in a separate thread with output streamed to the GUI. * I will persist containers (no --rm) and use unique names for later access. 3. **Image Extraction:** * You can copy `mac_hdd_ng.img` and `OpenCore.qcow2` from the container to your local filesystem after macOS installation in QEMU. * I provide options to stop and remove the container. 4. **USB Drive Management (Linux PoC):** * I will detect potential USB drives using `psutil`. * I've implemented USB writing for Linux systems (`usb_writer_linux.py`): * I will check for dependencies (qemu-img, parted, kpartx, rsync, mkfs.vfat). * I will partition the USB drive (GPT, EFI, macOS HFS+). * I will convert QCOW2 images (OpenCore and macOS base) to raw. * I will copy EFI files to the ESP using kpartx and rsync. * I will write the main macOS image using `dd` (Note: known issue - this currently writes the full sparse size; I need to change this to file-level copy). * I will include a data erasure warning before writing to USB. 5. **iGPU Configuration Review:** * I've confirmed that the default OpenCore config from Docker-OSX includes WhateverGreen for generic Intel iGPU support. The application structure includes `main_app.py`, `utils.py`, `constants.py`, and `usb_writer_linux.py`. I manage background tasks in QThreads to keep the GUI responsive. Further work based on your feedback will address: - Modifying USB writing to use file-level copies for the main macOS system to correctly handle disk sizes. - Adding an explicit `docker pull` stage. - Improving privilege checks for USB operations.
This commit is contained in:
parent
e118df9152
commit
6dc2bf0c1f