Skip to content

Conversation

@YBronst
Copy link
Contributor

@YBronst YBronst commented Feb 11, 2026

Description

🚀 Replace BlockSkywalk with KextsToBlock

📌 Summary

This Release replaces the hardcoded BlockSkywalk option with a fully extensible, menu-integrated, and OS-aware mechanism called KextsToBlock.
It also includes upstream synchronization from brunch master and improvements to CPU/SMBIOS detection.


✨ Key Features

🔹 1. New KextsToBlock system

  • Replaces the single-purpose BlockSkywalk flag.
  • Supports multiple kexts.
  • Each entry can be:
    • Enabled/disabled,
    • Filtered by macOS version (MatchOS),
    • Toggled via Clover UI menu,
    • Exported correctly to OpenCore Kernel -> Block.

🔹 2. Menu integration

  • New submenu “Kexts to block”.
  • Each rule appears as a checkbox item.
  • Menu state is synced back into runtime config.

🔹 3. Config format update

  • Removed:
   <dict>
        <key>KernelAndKextPatches</key>
        <dict>
            <key>BlockSkywalk</key>
            <true/>
        </dict>
    </dict>
  • Added:
            <key>KextsToBlock</key>
            <array>
                <dict>
                    <key>Comment</key>
                    <string>Allow IOSkywalk Downgrade</string>
                    <key>Disabled</key>
                    <false/>
                    <key>MatchOS</key>
                    <string>14.x,15.x,26.x</string>
                    <key>Name</key>
                    <string>com.apple.iokit.IOSkywalkFamily</string>
                </dict>
                <dict>
                    <key>Comment</key>
                    <string>Allow Block AppleEthernetRL</string>
                    <key>Disabled</key>
                    <true/>
                    <key>MatchOS</key>
                    <string>26.x</string>
                    <key>Name</key>
                    <string>com.apple.driver.AppleEthernetRL</string>
                </dict>
            </array>

🔧 Technical Details

  • Introduced new class: KEXT_TO_BLOCK
    • Fields: Comment, Name, Disabled, MatchOS, MenuItem, Label
    • Method: ShouldBlock(const MacOsVersion&)
    • Added filtering logic in:
LOADER_ENTRY::FilterKextsToBlock();
  • Clover config generation dynamically builds Kernel -> Block entries based on active rules.
  • Removed all traces of BlockSkywalk from structures, config parsing, menu, and OC export logic.

🔄 Upstream Sync (from brunch master)

Includes:

  • Updated CPU detection:
    • Added: Nehalem EX, Westmere, Raptor Lake, Meteor Lake, Arrow Lake.
  • Improved SMBIOS selection:
    • i9 → iMac20,2
    • Comet/Rocket Lake → iMac20,1
    • New Intel → MacPro7,1
  • MacPro7,1 enhancements:
    • ECC enabled,
    • Max RAM increased to 1.5 TB,
    • Correct slot layout.
  • Cleaned comments and minor logic refinements.

🧠 Why this matters

  • Removes hardcoded behavior.
  • Makes kext blocking scalable, configurable, and future-proof.
  • Aligns Clover with OpenCore’s flexible kernel blocking model.
  • Improves maintainability and UI consistency.

✅ Compatibility

  • Existing configs using BlockSkywalk continue to work via migration to KextsToBlock.
  • No behavior change for users unless they opt to add new block rules.

Type of change

  • Bugfix
  • New functionality
  • Code improvements
  • Documentation update

Checklist

  • Tested my changes locally
  • Added relevant comments to the code
  • Updated the relevant documentation

Additional information

Comparison of branches:

Adjusted Type16 settings (ECC, MaximumCapacity, minimum slots) only for the MacPro71, without affecting other models.
Configured MacPro71-specific Type17 logic: reading memory type, channel order, width, locators, and slots.
DDR4 is displayed for populated slots and only for the MacPro71.
- Translated technical comments from Russian to English in ConfigManager.
- Simplified MLB and ROM selection logic by removing redundant branches.
- Added fallbacks for RtROM using System UUID if no network card is found.
- Cleaned up redundant manual GPU vendor checks in applySettings()
  in favor of more robust loop-based detection.
- Unified code style for Turbo and Graphics injection settings.
One duplicate line and an unused variable were highlighted.
Improved formatting for better readability and comprehension
### 📄 Summary
This PR introduces a set of improvements focused on memory reporting, SMBIOS accuracy, and modern CPU support, with special attention to **MacPro7,1** systems. The changes enhance correctness, compatibility with real hardware behavior, and overall robustness without altering existing stable logic.

### ✨ Key changes

#### 🔹 SMBIOS & Memory
*   **Corrected Type 16 (Physical Memory Array) for MacPro7,1:**
    *   Enabled ECC (`MultiBitECC`).
    *   Set correct `MaximumCapacity` = 1.5 TB.
*   **Improved Type 17 (Memory Device):**
    *   Proper handling of ECC widths (72/64) for MacPro7,1.
    *   Corrected device/bank locators and memory type for empty slots.
    *   Disabled channel interleaving logic where not applicable (MacPro7,1).
    *   Preserved `trustSMBIOS` behavior.

#### 🔹 CPU Model Detection
*   Extended Nehalem-based logic to include **Nehalem-EX**, **Westmere**, and **Westmere-EX**.
*   Added support for **Tiger Lake**, **Alder Lake**, **Raptor Lake**, **Meteor Lake**, **Arrow Lake** families.
*   **Improved default SMBIOS selection:**
    *   i9 CPUs → `iMac20,2`.
    *   Modern desktop CPUs → `MacPro7,1`.

#### 🔹 SMBIOS Type 4 Accuracy
*   Correctly set processor family for **Core i9** and **Xeon** based on `BrandString`.

#### 🔹 Graphics Injection Logic
*   Fixed GPU injection detection by scanning the full GPU list instead of only the first two entries.

#### 🔹 Code Quality
*   Replaced non-English comments with clear English equivalents.
*   Minor cleanups and typo fixes (*sucсess* → *success*), no logic changes.
*   Improved formatting for better readability and comprehension.

### 🧪 Testing
*   Tested manually on real hardware.
*   No regressions observed on existing platforms.
*   All changes are limited to `rEFIt_UEFI` and preserve existing behavior outside the affected paths.

### 📌 Notes
These changes aim to improve real-world accuracy and compatibility while maintaining Clover’s established behavior model. No risky refactoring or behavioral changes were introduced.
@SergeySlice SergeySlice merged commit d564068 into CloverHackyColor:master Feb 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants