From 53aa44dd57e0dc0bb7fdae1703161d13facd8679 Mon Sep 17 00:00:00 2001 From: zqxwce Date: Tue, 25 Aug 2026 10:51:40 +0300 Subject: [PATCH] catalog: Add iOS 27 beta 7 + cloudOS 26.4 firmware pairing Add iPhone17,3 iOS 27.0 beta 7 (24A5424a) paired with cloudOS 26.4 to the firmware catalog so it appears in the `fw prepare` picker, `fw catalog`, and the `--json` report. Document it in the Tested Environments table across README.md and the ja/ko/zh translations. Bump the hardcoded pairing/menu count in FirmwarePickerTests 21 -> 22. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Ej64m761KR33KaNYh3BuTo --- README.md | 1 + docs/README_ja.md | 1 + docs/README_ko.md | 1 + docs/README_zh.md | 1 + sources/VPhoneCore/VPhoneFirmwareCatalog.swift | 1 + tests/VPhoneCoreTests/FirmwarePickerTests.swift | 6 +++--- 6 files changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5fc8cf1..079064d 100644 --- a/README.md +++ b/README.md @@ -172,6 +172,7 @@ vphone-amfidont # .build/vphone-cli.app/Contents/Resources/vphone-amfido | Mac16,6 26.4.1 | `17,3_27.0_24A5390f` | `26.4-23E5207q` | | Mac16,6 26.6.1 | `17,3_27.0_24A5408d` | `26.4-23E5207q` | | Mac16,11 27.0b2 | `17,3_27.0_24A5418b` | `26.4-23E5207q` | +| Mac16,11 27.0b2 | `17,3_27.0_24A5424a` | `26.4-23E5207q` | ## FAQ diff --git a/docs/README_ja.md b/docs/README_ja.md index e24c821..78e8d71 100644 --- a/docs/README_ja.md +++ b/docs/README_ja.md @@ -172,6 +172,7 @@ vphone-amfidont # ローカルビルドの場合は .build/vphone-cli.ap | Mac16,6 26.4.1 | `17,3_27.0_24A5390f` | `26.4-23E5207q` | | Mac16,6 26.6.1 | `17,3_27.0_24A5408d` | `26.4-23E5207q` | | Mac16,11 27.0b2 | `17,3_27.0_24A5418b` | `26.4-23E5207q` | +| Mac16,11 27.0b2 | `17,3_27.0_24A5424a` | `26.4-23E5207q` | ## FAQ diff --git a/docs/README_ko.md b/docs/README_ko.md index 34b4f3c..3133054 100644 --- a/docs/README_ko.md +++ b/docs/README_ko.md @@ -172,6 +172,7 @@ vphone-amfidont # 로컬 빌드의 경우 .build/vphone-cli.app/Contents | Mac16,6 26.4.1 | `17,3_27.0_24A5390f` | `26.4-23E5207q` | | Mac16,6 26.6.1 | `17,3_27.0_24A5408d` | `26.4-23E5207q` | | Mac16,11 27.0b2 | `17,3_27.0_24A5418b` | `26.4-23E5207q` | +| Mac16,11 27.0b2 | `17,3_27.0_24A5424a` | `26.4-23E5207q` | ## FAQ diff --git a/docs/README_zh.md b/docs/README_zh.md index 8158548..e2d5a51 100644 --- a/docs/README_zh.md +++ b/docs/README_zh.md @@ -172,6 +172,7 @@ vphone-amfidont # 本地构建见 .build/vphone-cli.app/Contents/Resourc | Mac16,6 26.4.1 | `17,3_27.0_24A5390f` | `26.4-23E5207q` | | Mac16,6 26.6.1 | `17,3_27.0_24A5408d` | `26.4-23E5207q` | | Mac16,11 27.0b2 | `17,3_27.0_24A5418b` | `26.4-23E5207q` | +| Mac16,11 27.0b2 | `17,3_27.0_24A5424a` | `26.4-23E5207q` | ## 常见问题 diff --git a/sources/VPhoneCore/VPhoneFirmwareCatalog.swift b/sources/VPhoneCore/VPhoneFirmwareCatalog.swift index 8e27891..a20771c 100644 --- a/sources/VPhoneCore/VPhoneFirmwareCatalog.swift +++ b/sources/VPhoneCore/VPhoneFirmwareCatalog.swift @@ -62,6 +62,7 @@ public enum VPhoneFirmwareCatalog { .init(iosName: "iOS 27 beta 4", iosURL: "https://updates.cdn-apple.com/2026SpringSeed/fullrestores/140-57108/5E816D0E-89BB-4B95-8825-6A3EDF22E509/iPhone17,3_27.0_24A5390f_Restore.ipsw", cloudosName: "cloudOS 26.4", cloudosURL: cloud264), .init(iosName: "iOS 27 beta 5", iosURL: "https://updates.cdn-apple.com/2026SpringSeed/fullrestores/140-86338/57B34BF9-3BF5-4B47-BCCA-81B282175957/iPhone17,3_27.0_24A5408d_Restore.ipsw", cloudosName: "cloudOS 26.4", cloudosURL: cloud264), .init(iosName: "iOS 27 beta 6", iosURL: "https://updates.cdn-apple.com/2026SpringSeed/ad5b3026-b03e-4b21-8bcb-96d6ea527e09/iPhone17,3_27.0_24A5418b_Restore.ipsw", cloudosName: "cloudOS 26.4", cloudosURL: cloud264), + .init(iosName: "iOS 27 beta 7", iosURL: "https://updates.cdn-apple.com/2026SpringSeed/ad5a4f9d-f005-466b-bbcf-3b466040074b/iPhone17,3_27.0_24A5424a_Restore.ipsw", cloudosName: "cloudOS 26.4", cloudosURL: cloud264), ] /// Distinct cloudOS images (first-seen order) for the "choose the cloudOS" prompt. diff --git a/tests/VPhoneCoreTests/FirmwarePickerTests.swift b/tests/VPhoneCoreTests/FirmwarePickerTests.swift index 6ca5276..360c404 100644 --- a/tests/VPhoneCoreTests/FirmwarePickerTests.swift +++ b/tests/VPhoneCoreTests/FirmwarePickerTests.swift @@ -10,8 +10,8 @@ struct FirmwarePickerTests { // MARK: - Catalog integrity - @Test func catalogHasTwentyOnePairings() { - #expect(VPhoneFirmwareCatalog.pairings.count == 21) + @Test func catalogHasTwentyTwoPairings() { + #expect(VPhoneFirmwareCatalog.pairings.count == 22) } @Test func everyPairingIsPopulated() { @@ -106,7 +106,7 @@ struct FirmwarePickerTests { iphone: nil, cloudos: nil, isInteractive: true, read: reader(["1"]), write: { lines.append($0) }) let menu = lines.filter { $0.hasPrefix(" [") } - #expect(menu.count == 21) + #expect(menu.count == 22) // Label text starts in one column regardless of 1- vs 2-digit index. let labelStarts = Set(menu.map { $0.range(of: "] ")!.upperBound.utf16Offset(in: $0) }) #expect(labelStarts.count == 1)