Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
6 changes: 3 additions & 3 deletions Driver/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.8.0</string>
<string>1.8.1</string>
<key>CFBundleVersion</key>
<string>1.8.0</string>
<string>1.8.1</string>
<key>IOKitPersonalities</key>
<dict>
<key>PC711EarlyMSIX</key>
Expand Down Expand Up @@ -54,7 +54,7 @@
<key>OSBundleLibraries</key>
<dict>
<key>as.vit9696.Lilu</key>
<string>1.7.2</string>
<string>1.6.1</string>
<key>com.apple.iokit.IOPCIFamily</key>
<string>2.9</string>
<key>com.apple.kpi.bsd</key>
Expand Down
6 changes: 3 additions & 3 deletions Driver/InfoForce.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>1.8.0</string>
<string>1.8.1</string>
<key>CFBundleVersion</key>
<string>1.8.0</string>
<string>1.8.1</string>
<key>IOKitPersonalities</key>
<dict>
<key>PC711EarlyMSIX</key>
Expand Down Expand Up @@ -54,7 +54,7 @@
<key>OSBundleLibraries</key>
<dict>
<key>as.vit9696.Lilu</key>
<string>1.7.2</string>
<string>1.6.1</string>
<key>com.apple.iokit.IOPCIFamily</key>
<string>2.9</string>
<key>com.apple.kpi.bsd</key>
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 |
|---|---|---|
Expand Down Expand Up @@ -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`
Expand All @@ -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
Expand Down
8 changes: 5 additions & 3 deletions README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -39,7 +39,7 @@ PC711Probe 目前已有一个 PC711(`SKHynix_HFS512GDE9X084N`)和两个 BC71

## 两个并列版本

v1.8.0 会构建两个互斥 Kext:
v1.8.0 及后续版本会构建两个互斥 Kext:

| Kext | 匹配方式 | 用途 |
|---|---|---|
Expand Down Expand Up @@ -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`
Expand All @@ -79,6 +79,8 @@ v1.8.0 会构建两个互斥 Kext:

紧急关闭可使用 `-pc711poff`。调试日志可使用 `-pc711pdbg`。

安全模式目前尚未验证,也不会启用本插件。测试或回滚 PC711Probe 时请使用正常启动或 Recovery。

[完整中文安装与回滚指南](docs/INSTALL.zh-CN.md)

## 构建
Expand Down
16 changes: 16 additions & 0 deletions RELEASE_NOTES_1.8.1.md
Original file line number Diff line number Diff line change
@@ -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 原生支持。
2 changes: 2 additions & 0 deletions SHA256SUMS.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion Scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion Scripts/verify.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 3 additions & 1 deletion docs/INSTALL.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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.
4 changes: 3 additions & 1 deletion docs/INSTALL.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 控制器。

Expand Down Expand Up @@ -48,3 +48,5 @@
3. 如需恢复原行为,重新启用之前隐藏 PC711 的 SSDT。

调试时可添加 `-pc711pdbg`。除关闭和调试外,正常使用不需要任何 PC711Probe 启动参数。

安全模式目前尚未验证,也不会启用本插件。测试与回滚请使用正常启动或 Recovery。
Loading