diff --git a/CHANGELOG.md b/CHANGELOG.md index edf4d17..2153eef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes are listed here. Versions follow [Semantic Versioning](https://semver.org/). +## [Unreleased] + +### Docs + +- Added Ventoy, YUMI, Universal USB Installer, XBOOT, LiveUSB Install and balenaEtcher to the references, roadmap (multiboot and USB-safety items) and credits. Ideas only; no code used. +- README: TL;DR and Status now describe 1.0.0 (they still said 0.2.0), Status is newest-first, and the backup section no longer says "in development, 0.6.0". + ## [1.0.0] - 2026-11-08 ### Added — first stable release diff --git a/CREDITS.md b/CREDITS.md index 1d4b4e8..87f987d 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -9,6 +9,9 @@ - [windows2usb](https://github.com/ValdikSS/windows2usb) (Apache-2.0): Windows USB layout modes, write-through progress. - [MultiOS-USB](https://github.com/Mexit/MultiOS-USB) (GPL-3.0) and [GLIM](https://github.com/thias/glim) (public domain configs): multiboot USB design. GPL code can't be copied into this MIT project. - [Lufus](https://github.com/Hogjects/Lufus) (MIT): UI reference. +- [Ventoy](https://www.ventoy.net/en/index.html) (GPL-3.0): multiboot USB design reference. GPL code can't be copied into this MIT project. +- [YUMI](https://pendrivelinux.com/yumi-multiboot-usb-creator/), [Universal USB Installer](https://pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/), [XBOOT](https://pendrivelinux.com/xboot-multiboot-iso-usb-creator/), [LiveUSB Install](https://pendrivelinux.com/liveusb-install-live-usb-creator/) (licenses not stated on their pages): multiboot and live-USB creator UX references; ideas only. +- [balenaEtcher](https://github.com/balena-io/etcher) (Apache-2.0): write-safety and verify-after-write reference. - [Automatic Ripping Machine](https://github.com/automatic-ripping-machine/automatic-ripping-machine) (MIT): auto-action on disc insert, parallel drives, notifications. - [TotalImage](https://github.com/TotalImage/TotalImage) (MIT): image editor reference. - [Redumper GUI](https://github.com/Deterous/Redumper-GUI) (GPL-3.0): preservation dumping UI reference. diff --git a/README.md b/README.md index e37183e..64a893c 100644 --- a/README.md +++ b/README.md @@ -6,17 +6,19 @@ ## TL;DR -IsoFoundry is a single free Windows program for working with CDs, DVDs, Blu-rays, disc image files (like `.iso`) and bootable USB drives. You pick a job from a grid of big buttons — burn a disc, copy one, turn files into an image, check an image for errors — or run the same job from the command line. The current release (0.2.0) is the complete disc-image toolkit: create, browse, extract, edit and convert images, mount them, and check them against known-good hash lists. Disc burning, audio and USB writing follow on the [roadmap](#roadmap). Nothing in IsoFoundry needs the internet, and it never sends data anywhere. +IsoFoundry is a single free Windows program for working with CDs, DVDs, Blu-rays, disc image files (like `.iso`) and bootable USB drives. You pick a job from a grid of big buttons — burn a disc, copy one, turn files into an image, check an image for errors — or run the same job from the command line. The current release (1.0.0) covers disc-image tools (create, browse, extract, edit, convert, mount, checksum and verify against known-good hash lists), bootable USB, audio conversion, disc burning, ripping and copying, and spanning backup. Disc, USB and audio hardware paths are proven against simulated drives and disk-image files, and stay **Unverified** on real hardware until field reports arrive (see [Status](#status)). Nothing in IsoFoundry needs the internet, and it never sends data anywhere. ## Status -- **0.2.0 (released)** — the complete M1 image toolkit (create, browse, extract, edit, convert, mount, checksum, verify): the task grid opens working windows for the five image tasks, and the same jobs run from the command line. The task windows open and render correctly on a real desktop (checked from the owner's captures, 2026-11-07); a full job run in each window is still to be confirmed. -- **0.5.0** — M4 disc burning plus M5 ripping and copying, through the `if-drive` layer (IMAPI2 burning, MMC/SPTI raw reading): burn image/files/MP3/video, erase, drive info with the disc's table of contents, disc → image with dump reports, disc → disc, secure audio ripping with AccurateRip checksums, audio CD burning, surface/quality scans and recovery from damaged discs — in task windows and from the command line. Every flow also runs against a built-in simulated drive (`--fake`), which is these milestones' test gate; no burn or rip has run on real hardware yet, so the hardware paths are **Unverified**. -- **1.0.0** — first stable release: the complete 1.0 feature set (image tools, bootable USB, audio conversion, burning, ripping/copying, spanning backup) promoted from 0.9.0 with no feature changes. Hardware paths remain field-Unverified, as stated in the limitations. -- **0.9.0** — M6 integration and the RC pass, grouped into one release: spanning backup/restore with a catalog on every span, auto-action on disc insert, shell completion scripts, Explorer verbs, an opt-in update check, MusicBrainz CD lookup, and completion actions (sound, notification, shutdown). Also fixes the M5 tasks showing as "planned" in the grid. -- **0.4.0** — M2 USB and M3 audio together (0.3.0 was never released separately): Create bootable USB and Install Windows to USB (`usb`, `windows-to-usb`; tested end-to-end against disk-image files — writing to a physical disk and booting from it are still to be confirmed on real hardware), and batch audio conversion with tags carried across and ReplayGain measurement. MP3 needs `libmp3lame.dll` at runtime; AAC uses Windows Media Foundation; both encode paths are **Unverified** on real hardware. -- **0.1.0** — the M0 shell: main window, command line and elevated helper. -- **Planned** — disc copying and ripping (0.6.0), integration extras (0.7.0). See the [roadmap](#roadmap). +**1.0.0 (2026-11-08)** is the first stable release. Hardware paths stay **Unverified** until real-drive reports arrive; see [docs/LIMITATIONS.md](docs/LIMITATIONS.md) and [AUDIT.md](AUDIT.md). + +- **1.0.0** — the 0.9.0 feature set promoted with no feature changes: image tools, bootable USB, audio conversion, burning, ripping/copying, spanning backup. +- **0.9.0** — M6 integration plus the RC pass: spanning backup/restore with a catalog on every span, auto-action on disc insert, shell completion scripts, Explorer verbs, an opt-in update check, MusicBrainz CD lookup, completion actions (sound, notification, shutdown), failure drills, accessibility statement and measured budgets. +- **0.5.0** — M4 burning plus M5 ripping and copying through the `if-drive` layer (IMAPI2 burning, MMC/SPTI raw reading): burn image/files/MP3/video, erase, drive info, disc → image with dump reports, disc → disc, secure audio ripping with AccurateRip checksums, audio CD burning, surface scans and recovery. Every flow also runs against a built-in simulated drive (`--fake`), the test gate for these milestones; no burn or rip has run on real hardware yet, so those paths are **Unverified**. +- **0.4.0** — M2 USB and M3 audio together (0.3.0 was never released separately): Create bootable USB, Install Windows to USB, and batch audio conversion with tags and ReplayGain. USB is tested end-to-end against disk-image files; writing a physical disk and booting from it are still to be confirmed. MP3 needs `libmp3lame.dll` at runtime; AAC uses Windows Media Foundation; both encode paths are **Unverified** on real hardware. +- **0.2.0** — M1 image toolkit (create, browse, extract, edit, convert, mount, checksum, verify) in task windows and on the command line. +- **0.1.0** — M0 shell: main window, command line and elevated helper. +- **Next** — 1.x: multiboot USB, FAT/VHD image editing, Xbox XISO, Spanish UI. See the [roadmap](#roadmap). ## What the program does today @@ -61,7 +63,7 @@ Writing is guarded: the system disk, the boot/pagefile disk and fixed disks are - **`copy-to-image`, `copy-disc`, `rip`, `burn-audio`, `surface-test`, `recover`** — the M5 tasks, in windows and on the command line. Ripping a disc writes the image plus a dump report and a `.dat` hash file (raw rips add a CUE sheet; subchannel capture is optional). Audio rips are secure by default — every sector is read twice and the reads must agree — and land as WAV, FLAC or MP3 with AccurateRip checksums in the rip log. The surface test reads every sector once and grades the disc; recovery rips tolerantly and extracts what the filesystem still gives up, naming the files the bad sectors damaged. On the command line `--fake` reads a simulated source disc; in the windows the test drive does the same job. -## Backup and integration (in development, 0.6.0) +## Backup and integration (0.9.0) `backup FOLDER` packs a folder onto as many discs as it needs — one ISO per span, burned spans with a prompt per disc, or a rehearsal on the simulated drive — with the full catalog and a SHA-256 for every file on every span. `backup-restore` rebuilds the folder from span folders or ISOs and verifies every checksum. The same work lives in the Backup task window. diff --git a/docs/references.md b/docs/references.md index e484dbd..057bcd2 100644 --- a/docs/references.md +++ b/docs/references.md @@ -56,3 +56,14 @@ Primary sources to check before implementing or changing behavior (per the dev c - https://learn.microsoft.com/windows/apps · https://learn.microsoft.com/windows/win32/winprog/windows-api · Windows hardware test https://learn.microsoft.com/windows-hardware/test - Wine https://www.winehq.org · ReactOS https://www.reactos.org - Q&A: https://stackoverflow.com · https://serverfault.com · https://superuser.com + +## USB creators and multiboot tools (ideas only, no code copied) + +Checked 2026-11-08 from each project's own page. Licenses marked "not stated" were not named on the page — check before borrowing anything beyond ideas. + +- Ventoy: https://www.ventoy.net/en/index.html — copy ISO/WIM/IMG/VHD(x)/EFI files onto the stick and pick from a boot menu; BIOS, UEFI (incl. Secure Boot via key enrollment), ARM64; persistence; files over 4 GB; auto-install. Open source (GPL-3.0). Reference for the multiboot design. +- YUMI: https://pendrivelinux.com/yumi-multiboot-usb-creator/ — multiboot USB (Windows installers, Linux, rescue tools); YUMI Py (Windows + Linux, exFAT, persistence) and YUMI exFAT (Windows) both boot through Ventoy. Open source; license not stated. +- Universal USB Installer: https://pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/ — ISO → bootable USB; Standard, GRUB2 and MEMDISK boot modes; persistence for some Linux distros; BIOS + UEFI. Open source; license not stated. +- XBOOT: https://pendrivelinux.com/xboot-multiboot-iso-usb-creator/ — drag-and-drop multiboot USB/ISO builder with GRUB or Syslinux and a built-in QEMU test. BIOS only (no UEFI/Secure Boot), FAT32 4 GB file limit, unmaintained since 2011. Design reference only; license not stated. +- LiveUSB Install: https://pendrivelinux.com/liveusb-install-live-usb-creator/ — Python live-Linux USB creator (dd-style write, editable syslinux.cfg, WinGrub mode); no persistence; no longer actively maintained. Open source; license not stated. +- balenaEtcher: https://github.com/balena-io/etcher (Apache-2.0) — image flasher built around safety (guards against writing to system drives) and verify-after-write. Reference for the target-safety and verification UX. diff --git a/docs/roadmap.md b/docs/roadmap.md index 374eabb..3ec6ab7 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -46,8 +46,9 @@ Not used, because they bypass console copy protection: PS3-Quick-Disc-Decryptor - [x] Bootable USB writer, `usbwriter` crate, later shared with WinISOPilot. (M2 — built; physical-disk verification owed) - [x] Windows installer layouts (from [windows2usb](https://github.com/ValdikSS/windows2usb), ideas only): MBR+FAT32 (default; BIOS, UEFI, Secure Boot), GPT+FAT32, GPT+NTFS; Microsoft's own boot files so Secure Boot stays intact. As built, FAT32 layouts refuse an `install.wim`/`.esd` over the 4 GB FAT32 limit with a clear message (splitting not implemented yet) — GPT+NTFS is the route for those images. (M2 — built; physical-disk verification owed) -- [ ] **Multiboot USB** (ideas from [MultiOS-USB](https://github.com/Mexit/MultiOS-USB), GPL-3.0, and [GLIM](https://github.com/thias/glim), public-domain configs): install a boot menu once, then copy any number of ISO/WIM files onto the stick and pick one at boot. Linux ISOs boot by GRUB loopback; WinPE/Windows setup from WIM/ISO; BIOS and UEFI; Secure Boot handled without asking users to disable it where possible; per-ISO boot options survive updates. Out of scope until the single-ISO writer is verified. (1.x) +- [ ] **Multiboot USB** (ideas from [MultiOS-USB](https://github.com/Mexit/MultiOS-USB), GPL-3.0, [GLIM](https://github.com/thias/glim), public-domain configs, and [Ventoy](https://www.ventoy.net/en/index.html), GPL-3.0; also [YUMI](https://pendrivelinux.com/yumi-multiboot-usb-creator/) and [XBOOT](https://pendrivelinux.com/xboot-multiboot-iso-usb-creator/) as UX references): install a boot menu once, then copy any number of ISO/WIM files onto the stick and pick one at boot. Linux ISOs boot by GRUB loopback; WinPE/Windows setup from WIM/ISO; BIOS and UEFI; Secure Boot handled without asking users to disable it where possible; per-ISO boot options survive updates. Out of scope until the single-ISO writer is verified. (1.x) - [ ] UI reference for a modern, simple writer: [Lufus](https://github.com/Hogjects/Lufus) (MIT, Linux). +- [ ] Write-safety and verify-after-write UX reference: [balenaEtcher](https://github.com/balena-io/etcher) (Apache-2.0). Single-ISO writer references: [Universal USB Installer](https://pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/), [LiveUSB Install](https://pendrivelinux.com/liveusb-install-live-usb-creator/). ## 2.0: Windows ISO customization (WinISOPilot integration)