From 9030e1e2172a495acbdcce767748099cec98cc1c Mon Sep 17 00:00:00 2001 From: hrx114514x Date: Wed, 12 Aug 2026 01:23:50 +0800 Subject: [PATCH] Release v1.8.1 Lilu compatibility fix --- CHANGELOG.md | 7 +++++++ Driver/Info.plist | 6 +++--- Driver/InfoForce.plist | 6 +++--- README.md | 8 +++++--- README_CN.md | 8 +++++--- RELEASE_NOTES_1.8.1.md | 16 ++++++++++++++++ SHA256SUMS.txt | 2 ++ Scripts/build.sh | 2 +- Scripts/verify.sh | 3 ++- docs/INSTALL.en.md | 4 +++- docs/INSTALL.zh-CN.md | 4 +++- 11 files changed, 50 insertions(+), 16 deletions(-) create mode 100644 RELEASE_NOTES_1.8.1.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 5707a3b..b04c6f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 1.8.1 — 2026-08-12 + +- Lowered the declared minimum Lilu dependency from 1.7.2 to the actual API floor, 1.6.1. +- Added static verification for the Lilu dependency in both standard and Force builds. +- Documented the minimum/recommended Lilu policy and the current Safe Mode validation boundary. +- Kept device targeting, Darwin 20–24 boundaries, and runtime behavior unchanged. + ## 1.8.0 — 2026-08-09 - Added `PC711ProbeForce.kext`, an opt-in parallel build that removes the PCI Vendor/Device check while retaining the NVMe class and Darwin 20–24 boundaries. diff --git a/Driver/Info.plist b/Driver/Info.plist index ef5a5b2..939cc69 100644 --- a/Driver/Info.plist +++ b/Driver/Info.plist @@ -15,9 +15,9 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.8.0 + 1.8.1 CFBundleVersion - 1.8.0 + 1.8.1 IOKitPersonalities PC711EarlyMSIX @@ -54,7 +54,7 @@ OSBundleLibraries as.vit9696.Lilu - 1.7.2 + 1.6.1 com.apple.iokit.IOPCIFamily 2.9 com.apple.kpi.bsd diff --git a/Driver/InfoForce.plist b/Driver/InfoForce.plist index b636c46..8a97f39 100644 --- a/Driver/InfoForce.plist +++ b/Driver/InfoForce.plist @@ -15,9 +15,9 @@ CFBundlePackageType KEXT CFBundleShortVersionString - 1.8.0 + 1.8.1 CFBundleVersion - 1.8.0 + 1.8.1 IOKitPersonalities PC711EarlyMSIX @@ -54,7 +54,7 @@ OSBundleLibraries as.vit9696.Lilu - 1.7.2 + 1.6.1 com.apple.iokit.IOPCIFamily 2.9 com.apple.kpi.bsd diff --git a/README.md b/README.md index 9387e6c..013ff97 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ An automatic Lilu compatibility plugin that fixes an `IONVMeFamily` Identify-tim > **New finding: PC711 works natively on macOS 26.** The same physical PC711 was identified by Apple `IONVMeFamily` on macOS 26.5.1 (25F80 / Darwin 25.5.0), with working I/O and sleep/wake. Neither PC711Probe nor NVMeFix was required. PC711Probe does not load on macOS 26. > [!IMPORTANT] -> The recommended `PC711Probe.kext` matches PCI `1C5C:174A` with NVMe class `01:08:02`. Version 1.8.0 also provides an opt-in `PC711ProbeForce.kext` that ignores Vendor/Device ID and applies the MSI-X compatibility path to every NVMe class `01:08:02` controller in the machine. Never load both variants. Use Force only when the standard build cannot match a known affected drive, with a rollback EFI and current data backup. +> The recommended `PC711Probe.kext` matches PCI `1C5C:174A` with NVMe class `01:08:02`. Version 1.8.0 and later also provide an opt-in `PC711ProbeForce.kext` that ignores Vendor/Device ID and applies the MSI-X compatibility path to every NVMe class `01:08:02` controller in the machine. Never load both variants. Use Force only when the standard build cannot match a known affected drive, with a rollback EFI and current data backup. > [!NOTE] > ## ❤️ Support PC711Probe @@ -39,7 +39,7 @@ Additional successful BC711 model strings: `HFM512GD3JX016N` and `HFM512GD3JX013 ## Two build variants -Version 1.8.0 builds two mutually exclusive Kexts: +Version 1.8.0 and later build two mutually exclusive Kexts: | Kext | Matching | Intended use | |---|---|---| @@ -67,7 +67,7 @@ Comparison of older Apple `IONVMeFamily` builds with macOS 26 showed that the ne 1. Back up the current EFI and start with a rollback-capable test USB. 2. Choose exactly one build: normally `PC711Probe.kext`; use `PC711ProbeForce.kext` only when the standard PCI matcher cannot target the affected drive. -3. Ensure Lilu loads before the selected PC711Probe variant. +3. Install Lilu 1.6.1 or newer and ensure it loads before the selected PC711Probe variant. The latest Lilu release is recommended. 4. Copy the selected Kext to `EFI/OC/Kexts` and add it under `Kernel -> Add`: - `BundlePath`: `PC711Probe.kext` or `PC711ProbeForce.kext` - `ExecutablePath`: `Contents/MacOS/PC711Probe` @@ -79,6 +79,8 @@ Comparison of older Apple `IONVMeFamily` builds with macOS 26 showed that the ne Use `-pc711poff` only as an emergency disable switch. Use `-pc711pdbg` for debug logging. +Safe Mode is not currently validated or enabled. Use a normal boot or Recovery when testing or rolling back PC711Probe. + [Full English installation and rollback guide](docs/INSTALL.en.md) ## Build diff --git a/README_CN.md b/README_CN.md index 7907441..a104d43 100644 --- a/README_CN.md +++ b/README_CN.md @@ -7,7 +7,7 @@ > **新发现:PC711 在 macOS 26 已经原生免驱。** 同一块实机 PC711 在 macOS 26.5.1(25F80 / Darwin 25.5.0)中可由 Apple `IONVMeFamily` 正常完成识别、读写和睡眠唤醒,不需要 PC711Probe 或 NVMeFix。PC711Probe 不在 macOS 26 加载。 > [!IMPORTANT] -> 推荐的 `PC711Probe.kext` 匹配 PCI `1C5C:174A` 与 NVMe class `01:08:02`。v1.8.0 同时提供可选的 `PC711ProbeForce.kext`:它忽略 Vendor/Device ID,对机器中每一个 NVMe class `01:08:02` 控制器应用 MSI-X 兼容路径。严禁同时加载两个版本。只在标准版无法匹配已知故障硬盘时使用 Force,并保留可回滚 EFI 和最新数据备份。 +> 推荐的 `PC711Probe.kext` 匹配 PCI `1C5C:174A` 与 NVMe class `01:08:02`。v1.8.0 及后续版本同时提供可选的 `PC711ProbeForce.kext`:它忽略 Vendor/Device ID,对机器中每一个 NVMe class `01:08:02` 控制器应用 MSI-X 兼容路径。严禁同时加载两个版本。只在标准版无法匹配已知故障硬盘时使用 Force,并保留可回滚 EFI 和最新数据备份。 > [!NOTE] > ## ❤️ 支持 PC711Probe @@ -39,7 +39,7 @@ PC711Probe 目前已有一个 PC711(`SKHynix_HFS512GDE9X084N`)和两个 BC71 ## 两个并列版本 -v1.8.0 会构建两个互斥 Kext: +v1.8.0 及后续版本会构建两个互斥 Kext: | Kext | 匹配方式 | 用途 | |---|---|---| @@ -67,7 +67,7 @@ v1.8.0 会构建两个互斥 Kext: 1. 备份现有 EFI,并先使用可回滚的测试 USB。 2. 二选一:通常使用 `PC711Probe.kext`;只在标准 PCI 匹配无法命中故障硬盘时使用 `PC711ProbeForce.kext`。 -3. 确保 Lilu 先于选中的 PC711Probe 版本加载。 +3. 安装 Lilu 1.6.1 或更高版本,并确保 Lilu 先于选中的 PC711Probe 版本加载。仍推荐使用最新版 Lilu。 4. 将选中的 Kext 放入 `EFI/OC/Kexts` 并添加到 `Kernel -> Add`: - `BundlePath`: `PC711Probe.kext` 或 `PC711ProbeForce.kext` - `ExecutablePath`: `Contents/MacOS/PC711Probe` @@ -79,6 +79,8 @@ v1.8.0 会构建两个互斥 Kext: 紧急关闭可使用 `-pc711poff`。调试日志可使用 `-pc711pdbg`。 +安全模式目前尚未验证,也不会启用本插件。测试或回滚 PC711Probe 时请使用正常启动或 Recovery。 + [完整中文安装与回滚指南](docs/INSTALL.zh-CN.md) ## 构建 diff --git a/RELEASE_NOTES_1.8.1.md b/RELEASE_NOTES_1.8.1.md new file mode 100644 index 0000000..25b760b --- /dev/null +++ b/RELEASE_NOTES_1.8.1.md @@ -0,0 +1,16 @@ +# PC711Probe 1.8.1 + +Compatibility metadata correction; the NVMe patch itself is unchanged. / 兼容性元数据修正;NVMe 补丁逻辑未改变。 + +## Changes / 变更 + +- The declared minimum Lilu version is now 1.6.1 instead of 1.7.2. PC711Probe's newest imported Lilu API is available with the same ABI from Lilu 1.6.1 onward. The latest Lilu release remains recommended. / 声明的 Lilu 最低版本由 1.7.2 降至 1.6.1。PC711Probe 使用的最新 Lilu API 从 1.6.1 起即已提供且 ABI 未改变,日常仍推荐使用最新版 Lilu。 +- Both standard and Force builds now verify that dependency floor during the release checks. / 标准版与 Force 版均在发布验证中检查该最低依赖。 +- Safe Mode remains unvalidated and disabled; normal, Installer, and Recovery environments remain supported. / 安全模式仍未验证且不启用;普通、Installer 与 Recovery 环境继续受支持。 + +## Downloads / 下载选择 + +- `PC711Probe-1.8.1.zip` (recommended): PCI `1C5C:174A` and NVMe class `01:08:02`. / 推荐标准版:匹配 PCI `1C5C:174A` 与 NVMe class `01:08:02`。 +- `PC711ProbeForce-1.8.1.zip` (opt-in): any Vendor/Device with NVMe class `01:08:02`. / 可选 Force 版:忽略 Vendor/Device,只匹配 NVMe class `01:08:02`。 + +Never load both variants. Device matching, macOS 11–15 support, and the MSI-X compatibility behavior are identical to v1.8.0. macOS 26 continues to use native Apple support. / 严禁同时加载两个版本。设备匹配、macOS 11–15 支持范围及 MSI-X 兼容行为均与 v1.8.0 相同;macOS 26 继续使用 Apple 原生支持。 diff --git a/SHA256SUMS.txt b/SHA256SUMS.txt index e04f234..04c0372 100644 --- a/SHA256SUMS.txt +++ b/SHA256SUMS.txt @@ -3,3 +3,5 @@ d824eff15fb20f436fb522a5a9902ab06e249e1119b7afbe582647211e662da9 PC711Probe-1.0 9e3c78cd55a301d85fb0237f7abb51be572b1e406a004459de4e096da5aa9cae PC711Probe-1.7.0.zip 20f773effb2d18144feaf84ca0f22ace195b51c720d7ae9aff38ef2d74987593 PC711Probe-1.8.0.zip dbb8ba5c53be019e8da3c811d30230d66cf195eb7e908dca5a20c33cbe2cf912 PC711ProbeForce-1.8.0.zip +42dab238872b2f9e61ac79a23bd2ebedc7e73b93a09bfe93693315509eb9d7a2 PC711Probe-1.8.1.zip +b4840c6071ec3b1c59bba6ab53f6128e62406668bf735bd3a6d5e3d72e3467e3 PC711ProbeForce-1.8.1.zip diff --git a/Scripts/build.sh b/Scripts/build.sh index 0b812b5..dbd1c39 100755 --- a/Scripts/build.sh +++ b/Scripts/build.sh @@ -9,7 +9,7 @@ if [ -f "$lilu_root/Lilu/Headers/kern_api.hpp" ]; then lilu_dir="$lilu_root/Lilu" fi build_dir="$project_dir/build/Debug" -version="1.8.0" +version="1.8.1" if [ ! -f "$sdk_dir/Headers/IOKit/pci/IOPCIDevice.h" ]; then echo "Missing Vendor/MacKernelSDK" >&2 diff --git a/Scripts/verify.sh b/Scripts/verify.sh index eb807d4..75fe53f 100755 --- a/Scripts/verify.sh +++ b/Scripts/verify.sh @@ -31,8 +31,9 @@ for artifact in "$binary" "$force_binary"; do done for metadata in "$plist" "$force_plist"; do - test "$(/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' "$metadata")" = "1.8.0" + test "$(/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' "$metadata")" = "1.8.1" test "$(/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' "$metadata")" = "com.stationk9.driver.PC711Probe" + test "$(/usr/libexec/PlistBuddy -c 'Print :OSBundleLibraries:as.vit9696.Lilu' "$metadata")" = "1.6.1" test "$(/usr/libexec/PlistBuddy -c 'Print :OSBundleLibraries:com.apple.iokit.IOPCIFamily' "$metadata")" = "2.9" done diff --git a/docs/INSTALL.en.md b/docs/INSTALL.en.md index a96794f..b53a7de 100644 --- a/docs/INSTALL.en.md +++ b/docs/INSTALL.en.md @@ -6,7 +6,7 @@ English | [简体中文](INSTALL.zh-CN.md) - Back up important data and the current EFI. - Use an independent USB EFI for the first test and retain another bootable EFI. -- Ensure Lilu is installed and ordered before PC711Probe. +- Install Lilu 1.6.1 or newer and order it before PC711Probe. The latest Lilu release is recommended. - macOS 26 drives the PC711 natively and does not need this plugin. - The standard build matches PCI `1C5C:174A` with NVMe class `01:08:02`. The Force build ignores Vendor/Device ID and affects every NVMe controller in the machine. @@ -48,3 +48,5 @@ If the machine panics, stalls, or shows unexpected devices: 3. Re-enable the SSDT that previously hid the PC711 if the original behavior is required. Use `-pc711pdbg` for diagnostics. Normal operation requires no PC711Probe boot argument other than the optional disable or debug switches. + +Safe Mode is not currently validated or enabled. Use a normal boot or Recovery for testing and rollback. diff --git a/docs/INSTALL.zh-CN.md b/docs/INSTALL.zh-CN.md index 2e90bdc..4db4386 100644 --- a/docs/INSTALL.zh-CN.md +++ b/docs/INSTALL.zh-CN.md @@ -6,7 +6,7 @@ - 备份重要数据和现有 EFI。 - 首次验证使用独立 USB EFI,并保留另一个可启动 EFI。 -- 确保 Lilu 已安装且排在 PC711Probe 前面。 +- 安装 Lilu 1.6.1 或更高版本并排在 PC711Probe 前面,仍推荐使用最新版 Lilu。 - macOS 26 已可原生驱动 PC711,不需要加载本插件。 - 标准版匹配 PCI `1C5C:174A` 与 NVMe class `01:08:02`;Force 版忽略 Vendor/Device ID,会影响机器中每一个 NVMe 控制器。 @@ -48,3 +48,5 @@ 3. 如需恢复原行为,重新启用之前隐藏 PC711 的 SSDT。 调试时可添加 `-pc711pdbg`。除关闭和调试外,正常使用不需要任何 PC711Probe 启动参数。 + +安全模式目前尚未验证,也不会启用本插件。测试与回滚请使用正常启动或 Recovery。