From 46d347fb25de3742fc5a0bf05b1eb0cb835c6725 Mon Sep 17 00:00:00 2001 From: dakanji Date: Tue, 7 Jun 2022 14:04:34 +0300 Subject: [PATCH] Update for v0.13.3.AA Release --- .github/ISSUE_TEMPLATE/bug_report.yml | 3 +- .github/workflows/issue_helper_access.yml | 2 +- .github/workflows/issue_labels.yml | 2 +- .github/workflows/issues.yml | 24 +++---- NEWS.txt | 26 ++++---- README-Dev.md | 1 + README.md | 78 ++++++++++++----------- config.conf-sample | 11 ++-- include/version.h | 2 +- 9 files changed, 77 insertions(+), 72 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 748c1b10..34c3196a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -12,8 +12,7 @@ body: label: RefindPlus Version description: Which version of RefindPlus is affected? options: - - 'v0.13.2.AP Release' - - 'v0.13.2.AN Release' + - 'v0.13.3.AA Release' - 'Older Released Version' - 'Pre-Release Code Build' validations: diff --git a/.github/workflows/issue_helper_access.yml b/.github/workflows/issue_helper_access.yml index d7e50bc8..9b8d0e18 100644 --- a/.github/workflows/issue_helper_access.yml +++ b/.github/workflows/issue_helper_access.yml @@ -9,9 +9,9 @@ on: options: - 'Issue - Open' - 'Issue - Close' - - 'Issue - Comment - Delete' - 'Issue - Thread - Lock' - 'Issue - Thread - Unlock' + - 'Issue - Comment - Delete' item_id: description: 'Item ID' required: true diff --git a/.github/workflows/issue_labels.yml b/.github/workflows/issue_labels.yml index 5c56df28..c8cb5e07 100644 --- a/.github/workflows/issue_labels.yml +++ b/.github/workflows/issue_labels.yml @@ -61,7 +61,7 @@ jobs: needs: similarity_analysis runs-on: ubuntu-latest - if: github.actor != 'dakanji' && github.event.action == 'opened' && contains(github.event.comment.body, 'RefindPlus Version') && contains(github.event.comment.body, 'Device Type') && contains(github.event.comment.body, 'Problem Description') && contains(github.event.comment.body, 'Problem Point') && contains(github.event.comment.body, 'Affected Items') && contains(github.event.comment.body, 'Debug Log') && contains(github.event.comment.body, 'Additional Context') + if: github.actor != 'dakanji' && github.event.action == 'opened' steps: - uses: actions/checkout@v2 - uses: actions-ecosystem/action-add-labels@v1 diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 27632666..645164ea 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -27,7 +27,7 @@ jobs: steps: - name: Close Resolved Issues - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} stale-issue-message: '' @@ -39,7 +39,7 @@ jobs: any-of-labels: 'Resolved' - name: Flag or Close Incomplete Issues - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} stale-issue-message: > @@ -54,14 +54,14 @@ jobs: any-of-labels: 'Incomplete, Unclear' - name: Flag or Close No-Response Issues - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} stale-issue-message: > This item has been flagged for closure due to a lack of response. close-issue-message: > This item is being closed due to a lack of response. - days-before-stale: 2 + days-before-stale: 3 days-before-close: 5 exempt-assignees: 'dakanji' stale-issue-label: 'Tagged' @@ -69,7 +69,7 @@ jobs: any-of-labels: 'Queries' - name: Flag or Close Inactive Issues - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} stale-issue-message: > @@ -84,7 +84,7 @@ jobs: exempt-issue-labels: 'Parked, Help-Wanted' - name: Flag or Close Parked Issues - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} stale-issue-message: > @@ -99,7 +99,7 @@ jobs: any-of-labels: 'Parked' - name: Flag or Close Help-Wanted Issues - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} stale-issue-message: > @@ -114,7 +114,7 @@ jobs: any-of-labels: 'Help-Wanted' - name: Close Duplicate Issues - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} close-issue-message: > @@ -126,7 +126,7 @@ jobs: any-of-labels: 'Duplicate, Known-Issue' - name: Close Invalid Issues - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} close-issue-message: > @@ -138,7 +138,7 @@ jobs: any-of-labels: 'Invalid' - name: Close Wierd Issues - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} close-issue-message: > @@ -150,7 +150,7 @@ jobs: any-of-labels: 'Cannot-Replicate' - name: Close WontFix Issues - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} close-issue-message: > @@ -162,7 +162,7 @@ jobs: any-of-labels: 'WontFix' - name: Catchall Closer - uses: actions/stale@v4.1.0 + uses: actions/stale@v5.0.0 with: repo-token: ${{ github.token }} close-issue-message: > diff --git a/NEWS.txt b/NEWS.txt index ac82e563..cda81871 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -1,9 +1,9 @@ -0.13.3.AA (Pre-Release): +0.13.3.AA (06 Jun 2022): ----------------------- - Synced with Upstream v0.13.3 - Adds `EnableMacosFilter` Feature - * This feature is active by default and it enables the `ProtectNVRAM` feature (if set) on MacOS boots - * The `ProtectNVRAM` feature remains active for other OS types regardless (if set) + * This feature is active by default and activates the `ProtectNVRAM` feature, if enabled, on MacOS boots + * The `ProtectNVRAM` feature, if enabled, is activated for other applicable OS types regardless * The `EnableMacosFilter` feature can be disabled using a new `decline_macos_filter` configuration token - Adds `DisableNvramPanicLog` Feature * Sets a MacOS `nvram_paniclog=0` boot argument to disable kernel panic logging to NVRAM @@ -31,16 +31,16 @@ * Rationalises pointer priority with `EnableTouch` always having priority over `EnableMouse` - Previously depended on order of appearance in configuration file - Renames Misc Configuration Tokens - * `decline_nvramprotect` to `decline_nvram_protect` - * `decline_uefiemulate` to `decline_uefi_emulate` - * `decline_espfilter` to `decline_esp_filter` - * `decline_apfsload` to `decline_apfs_load` - * `decline_apfsmute` to `decline_apfs_mute` - * `decline_apfssync` to `decline_apfs_sync` - * `decline_nvmeload` to `decline_nvme_load` - * `decline_tagshelp` to `decline_tags_help` - * `decline_texthelp` to `decline_text_help` - * `decline_applefb` to `decline_apple_fb` + * `decline_nvramprotect` to `decline_nvram_protect` + * `decline_uefiemulate` to `decline_uefi_emulate` + * `decline_espfilter` to `decline_esp_filter` + * `decline_apfsload` to `decline_apfs_load` + * `decline_apfsmute` to `decline_apfs_mute` + * `decline_apfssync` to `decline_apfs_sync` + * `decline_nvmeload` to `decline_nvme_load` + * `decline_tagshelp` to `decline_tags_help` + * `decline_texthelp` to `decline_text_help` + * `decline_applefb` to `decline_apple_fb` 0.13.2.AP (19 Apr 2022): diff --git a/README-Dev.md b/README-Dev.md index f7b2e13d..eb251c77 100644 --- a/README-Dev.md +++ b/README-Dev.md @@ -8,6 +8,7 @@ The current development focus is on the following units: - **MacPro3,1**: Early 2008 Mac Pro - **MacPro4,1**: Early 2009 Mac Pro - **MacPro5,1**: Mid 2010 and Mid 2012 Mac Pros +- **MacPro6,1**: Late 2013 Mac Pro - **XServe2,1**: Early 2008 XServe - **XServe3,1**: Early 2009 XServe diff --git a/README.md b/README.md index c270f4b0..eb251c77 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ The current development focus is on the following units: - **MacPro3,1**: Early 2008 Mac Pro - **MacPro4,1**: Early 2009 Mac Pro - **MacPro5,1**: Mid 2010 and Mid 2012 Mac Pros +- **MacPro6,1**: Late 2013 Mac Pro - **XServe2,1**: Early 2008 XServe - **XServe3,1**: Early 2009 XServe @@ -16,7 +17,7 @@ However, the enhancements are not limited in scope to these units and may be of ## Headline Features - Maintains feature and configuration parity with the base upstream version. - Protects against damage to Mac NVRAM when booting UEFI Windows. -- Provides Pre-Boot Configuration Screen on units running GPUs without Native EFI on Macs. +- Provides Pre-Boot Configuration Screen on units running GPUs without native EFI on Macs. - Provides UGADraw on modern GOP based GPUs to permit booting legacy EfiBoot operating systems. - Provides improved support for languages that use unicode text - Emulates UEFI 2.3 on EFI 1.x units to permit running UEFI 2.x utilities on such units @@ -27,18 +28,18 @@ However, the enhancements are not limited in scope to these units and may be of - Provides NVMe capability, if required, via a built in NvmExpress driver. * Removes the need to add NVMe drivers on units without NVMe support. * Basically allows working as if NVMe is natively supported by the firmware - - Removes the need for a risky 'firmware flash' operation on units such as the MacPro3,1 + - Removes the need for a risky `firmware flash` operation on units such as the MacPro3,1 - Provides APFS filesystem capability, if required, via a built in APFS JumpStart driver. * Removes the need to add APFS drivers to run recent MacOS releases on units without APFS support. * Additionally, this ensures that matching APFS drivers for specific MacOS releases are used. * Basically allows working as if APFS is natively supported by the firmware - - Removes the need for a risky 'firmware flash' operation on units such as the MacPro3,1 + - Removes the need for a risky `firmware flash` operation on units such as the MacPro3,1 - Fully supports Apple's APFS filesystem requirements * This allows booting MacOS 11.x (Big Sur) or later from single named volumes on the main screen. - - As opposed to generic and difficult to distinguish 'PreBoot' volumes. + - As opposed to generic and difficult to distinguish `PreBoot` volumes. - Avoids potentially compromising system integrity by otherwise requiring SIP to be disabled. - * This also allows booting FileVault encrypted volumes from signle named volumes on the main screen. - - As opposed to generic and difficult to distinguish 'PreBoot' volumes. + * This also allows booting FileVault encrypted volumes from single named volumes on the main screen. + - As opposed to generic and difficult to distinguish `PreBoot` volumes. ## Installation [MyBootMgr](https://www.dakanji.com/creations/index.html), an automated implementation of a RefindPlus/OpenCore chain-loading arrangement is recommended for implementation on MacPro3,1 to MacPro5,1 as well as on XServe2,1 and XServe3,1. However, the RefindPlus efi file can function as a drop-in replacement for the upstream efi file. Hence, you can install the [rEFInd package](https://www.rodsbooks.com/refind/installing.html) first and replace the efi file with the RefindPlus efi file. (Ensure you rename the RefindPlus efi file to match). This permits implementing RefindPlus on other types of Mac as well as on other operating systems. @@ -47,7 +48,7 @@ Users may also want to replace filesystem drivers with those packaged with Refin RefindPlus will function with the upstream configuration file, `refind.conf`, but users may wish to replace this with the RefindPlus configuration file, `config.conf`, to configure the additonal options provided by RefindPlus. A sample RefindPlus configuration file is available here: [config.conf-sample](https://github.com/dakanji/RefindPlus/blob/GOPFix/config.conf-sample). RefindPlus-Specific options can also be added to a refind.conf file and used that way if preferred. -Note that if you run RefindPlus without activating the additonal options, as will be the case if using an unmodified upstream configuration file, a RefindPlus run will be equivalent to running the upstream version it is based on, currently v0.13.2. That is, the additonal options provided in RefindPlus must be actively enabled if they are required. This equivalence is subject to a few divergent items in RefindPlus as outlined under the `Divergence` section below. NB: Upstream post-release code updates are typically ported to RefindPlus as they happen and as such, RefindPlus releases are actually at the state of the upstream release version plus any such updates. +Note that if you run RefindPlus without activating the additonal options, as will be the case if using an unmodified upstream configuration file, a RefindPlus run will be equivalent to running the upstream version it is based on, currently v0.13.3. That is, the additonal options provided in RefindPlus must be actively enabled if they are required. This equivalence is subject to a few divergent items in RefindPlus as outlined under the `Divergence` section below. NB: Upstream post-release code updates are typically ported to RefindPlus as they happen and as such, RefindPlus releases are actually at the state of the upstream release version plus any such updates. ## Additional Functionality RefindPlus-Specific funtionality can be configured by adding the tokens below to the upstream configuration file. Additional information is provided in the sample RefindPlus configuration file. @@ -57,27 +58,30 @@ Token | Functionality continue_on_warning |Proceeds as if a key is pressed after screen warnings (unattended boot) csr_dynamic |Actively enables or disables the SIP Policy on Macs csr_normalise |Removes the `APPLE_INTERNAL` bit, when present, to permit OTA updates -decline_apfsload |Disables built in provision of APFS filesystem capability -decline_apfsmute |Disables supressesion of verbose APFS text on boot -decline_apfssync |Disables feature allowing direct APFS/FileVault boot (Without "PreBoot") -decline_applefb |Disables provision under some circumstances of missing AppleFramebuffers -decline_espfilter |Allows other ESPs other than the RefindPlus ESP to be scanned for loaders -decline_nvmeload |Disables the built in NvmExpress Driver -decline_nvramprotect |Disables feature that blocks UEFI Windows certificates on Apple NVRAM -decline_panicfilter |Disables feature that blocks kernel panic information on Apple NVRAM -decline_reloadgop |Disables reinstallation of UEFI 2.x GOP drivers on EFI 1.x units -decline_tagshelp |Disables feature that ensures hidden tags can always be unhidden -decline_texthelp |Disables complementary text colours if not required -decline_uefiemulate |Disables feature that emulates UEFI 2.x support on EFI 1.x units +decline_apfs_load |Disables built in provision of APFS filesystem capability +decline_apfs_mute |Disables supressesion of verbose APFS text on boot +decline_apfs_sync |Disables feature allowing direct APFS/FileVault boot (Without "PreBoot") +decline_apple_fb |Disables provision under some circumstances of missing AppleFramebuffers +decline_esp_filter |Allows other ESPs other than the RefindPlus ESP to be scanned for loaders +decline_macos_filter |Disables the `ProtectNVRAM` feature on MacOS boots +decline_nvme_load |Disables the built in NvmExpress Driver +decline_nvram_protect |Disables blocking of potentially harmful write attempts to Legacy Mac NVRAM +decline_reload_gop |Disables reinstallation of UEFI 2.x GOP drivers on EFI 1.x units +decline_tags_help |Disables feature that ensures hidden tags can always be unhidden +decline_text_help |Disables complementary text colours if not required +decline_uefi_emulate |Disables feature that emulates UEFI 2.x support on EFI 1.x units +decouple_key_f10 |Unmaps the `F10` key from native screenshots (the `\` key remains mapped) disable_amfi |Disables AMFI Checks on MacOS if required disable_compat_check |Disables Mac version compatibility checks if required +disable_nvram_paniclog|Disables MacOS kernel panic logging to NVRAM disable_rescan_dxe |Disables scanning for newly revealed DXE drivers when connecting handles force_trim |Forces `TRIM` on non-Apple SSDs on Macs if required hidden_icons_external |Allows scanning for `.VolumeIcon` icons on external volumes hidden_icons_ignore |Disables scanning for `.VolumeIcon` image icons if not required hidden_icons_prefer |Prioritises `.VolumeIcon` image icons when available -icon_row_move |Adjusts the main screen icon row positions (vertically) -icon_row_tune |Finetunes the main screen icon row positions +icon_row_move |Repositions the main screen icon rows (vertically) +icon_row_tune |Finetunes the resulting `icon_row_move` outcome +nvram_variable_limit |Limits NVRAM write attempts to the specified variable size pass_uga_through |Provides UGA instance on GOP to permit EfiBoot with modern GPUs provide_console_gop |Fixes issues with GOP on some legacy units ransom_drives |Frees partitions locked by how certain firmware load inbuilt drivers @@ -94,6 +98,7 @@ In addition to the new functionality listed above, the following upsteam tokens - **"use_graphics_for" Token:** OpenCore and Clover added as options that can be set to boot in graphics mode. - **"showtools" Token:** Additional tool added: - `clean_nvram` : Allows resetting nvram directly from RefindPlus. + - When run on Apple Firmware, RefindPlus will additionally trigger NVRAM garbage collection - **"csr_values" Token:** A value of `0` can be set as the `Enabled` value to ensure `Over The Air` (OTA) updates from Apple when running MacOS 11.x (Big Sur), or later, with SIP enabled. - This is equivalent to activating the `csr_normalise` token. - **"timeout" Token:** The default is no timeout unless explicitly set. @@ -103,29 +108,30 @@ In addition to the new functionality listed above, the following upsteam tokens * Only active on `DEBUG` and `NOOPT` builds while `RELEASE` builds remain optimised for day-to-day use. * Level 0 does not switch logging off but activates the native summary format. * Levels 1 and 2 output logs similar to the detailed upstream format. - - Level 1 is broadly equivalent to Upstream Level 4 (Upstream Levels 1 to 3 were dispensed with) + - Level 1 is broadly equivalent to upstream Level 4 (upstream Levels 1 to 3 were dispensed with) - Level 2 is only exposed on `NOOPT` builds and outputs logs at a very detailed level * Automate by passing `ALL` as a second parameter to the RefindPlus build script * The first parameter is the build branch, which also needs to be specified in such instances - - When Level 2 is not exposed, selected levels above `1` will be capped at LogLevel 1 - - When exposed, selected levels above `2` will be capped at LogLevel 2 + - When Level 2 is not exposed, selected levels above `1` will be capped at Level 1 + - When exposed, selected levels above `2` will be capped at Level 2 - **"resolution" Token:** The `max` setting is redundant in RefindPlus which always defaults to the maximum available resolution whenever the resolution is not set or is otherwise not available. ## Divergence -Implementation differences with the upstream base version v0.13.2 are: +Implementation differences with the upstream base version v0.13.3 are: - **Screenshots:** These are saved in the PNG format with a significantly smaller file size. Additionally, the file naming is slightly different and the files are always saved to the same ESP as the RefindPlus efi file. - **UI Scaling:** WQHD monitors are correctly determined not to be HiDPI monitors and UI elements are not scaled up on such monitors when the RefindPlus-Specific `scale_ui` configuration token is set to automatically detect the screen resolution. RefindPlus also takes vertically orientated screens into account. -- **Hidden Tags:** RefindPlus always makes the "hidden_tags" tool available (even when the tool is not specified in the "showtools" list). This is done to ensure that when users hide items (always possible), such items can also be unhidden (only possible when the "hidden_tags" tool is available). Users that prefer not to have this feature can activate the RefindPlus-Specific `decline_tagshelp` configuration token to switch it off. -- **GOP Driver Provision:** RefindPlus attempts to ensure that UEFI 2.x GOP drivers are available on EFI 1.x units by attempting to reload such drivers when it detects an absence of GOP on such units to permit the use of modern GPUs on legacy units. Users that prefer not to have this feature can activate the RefindPlus-Specific `decline_reloadgop` configuration token to switch it off. -- **NVMe Driver Provision:** RefindPlus installs a built in NvmExpressDxe driver when it detects an absence of NvmExpress capability on units with PCIe slots. Users that prefer not to have this feature can activate the RefindPlus-Specific `decline_nvmeload` configuration token to switch it off. -- **AppleFramebuffer Provision:** RefindPlus defaults to always providing AppleFramebuffer on Macs, when not available under certain circumstances. This is done using a built in `SupplyAppleFB` feature. Users that prefer not to have this feature can activate the RefindPlus-Specific `decline_applefb` configuration token to switch it off. -- **APFS Filesystem Provision:** RefindPlus defaults to always providing APFS Filesystem capability, when not available but is required, without a need to load an APFS driver. This is done using a built in `SupplyAPFS` feature. Users that prefer not to have this feature can activate the RefindPlus-Specific `decline_apfsload` configuration token to switch it off. -- **APFS Verbose Text Suppression:** RefindPlus defaults to always suppressesing verbose text output associated with loading APFS functionality by the built in `SupplyAPFS` feature. Users that prefer not to have this feature can activate the RefindPlus-Specific `decline_apfsmute` configuration token to switch it off. -- **APFS PreBoot Volumes:** RefindPlus always synchronises APFS System and PreBoot partitions transparently such that the Preboot partitions of APFS volumes are always used to boot APFS formatted MacOS. Hence, a single option for booting MacOS on APFS volumes is presented in RefindPlus to provide maximum APFS compatibility, consistent with Apple's implementation. Users that prefer not to have this feature can activate the RefindPlus-Specific `decline_apfssync` configuration token to switch it off. -- **Apple NVRAM Protection:** RefindPlus always prevents UEFI Windows Secure Boot from saving certificates to Apple NVRAM as this can result in damage and an inability to boot. Blocking these certificates does not impact the operation of UEFI Windows on Apple Macs. This filtering only happens when Apple firmware is detected and is not applied to other types of firmware. Users that prefer not to have this feature can activate the RefindPlus-Specific `decline_nvramprotect` configuration token to switch it off. Additionally, RefindPlus always prevents MacOS kernel panic information writes to the NVRAM as this can also result in damage and an inability to boot. This filtering similarly only happens when Apple firmware is detected and is not applied to other types of firmware. Users that prefer not to have this feature can activate the RefindPlus-Specific `decline_panicfilter` configuration token to switch it off. -- **UEFI 2.x Emulation:** RefindPlus always emulates the `CreateEventEx` feature from UEFI 2.x on EFI 1.x units and additionally modifies the EFI Revision value to `UEFI 2.3`. This often allows running UEFI 2.x utilities on legacy units since several such utilities only require CreateEventEx to function. Users that prefer not to have this feature can activate the RefindPlus-Specific `decline_uefiemulate` configuration token to switch it off. -- **ESP Scanning:** Other ESPs separate from that containing the active efi file are now also scanned for loaders by rEFInd. The earlier behaviour, where all other ESPs were treated as duplicates and ignored, has been considered an error and changed. This earlier behaviour is preferred and maintained in RefindPlus. However, users are provided an option to override this behaviour, in favour of the new upstream behaviour, by activating the RefindPlus-Specific `decline_espfilter` configuration token to switch it off. -- **Disabled Manual Stanzas:** The processing of a user configured boot stanza is halted once a `Disabled` setting is encountered and the `Entry` object returned 'as is'. The outcome is the same between rEFInd, which always proceeds to create and return a fully built object (subsequently discarded), and RefindPlus, which may return a partial object (similarly discarded). However, the approach adopted in RefindPlus allows for an optimised loading process particularly when `Disabled` tokens are placed immediately after the `menuentry` line (see examples in the [config.conf-sample](https://github.com/dakanji/RefindPlus/blob/4d066b03423e0b4d34b11fc5e17faa7db511c551/config.conf-sample#L890) file). This also applies to `submenuentry` items which can be enabled or disabled separately. +- **Hidden Tags:** RefindPlus always makes the "hidden_tags" tool available (even when the tool is not specified in the "showtools" list). This is done to ensure that when users hide items (always possible), such items can also be unhidden (only possible when the "hidden_tags" tool is available). Users that prefer not to use this feature can activate the RefindPlus-Specific `decline_tags_help` configuration token to switch it off. +- **GOP Driver Provision:** RefindPlus attempts to ensure that UEFI 2.x GOP drivers are available on EFI 1.x units by attempting to reload such drivers when it detects an absence of GOP on such units to permit the use of modern GPUs on legacy units. Users that prefer not to use this feature can activate the RefindPlus-Specific `decline_reload_gop` configuration token to switch it off. +- **NVMe Driver Provision:** RefindPlus installs a built in NvmExpressDxe driver when it detects an absence of NvmExpress capability on units with PCIe slots. Users that prefer not to use this feature can activate the RefindPlus-Specific `decline_nvme_load` configuration token to switch it off. +- **AppleFramebuffer Provision:** RefindPlus defaults to always providing Apple framebuffers on Macs, when not available under certain circumstances. This is done using a built in `SupplyAppleFB` feature. Users that prefer not to use this feature can activate the RefindPlus-Specific `decline_apple_fb` configuration token to switch it off. +- **APFS Filesystem Provision:** RefindPlus defaults to always providing APFS Filesystem capability, when not available but is required, without a need to load an APFS driver. This is done using a built in `SupplyAPFS` feature. Users that prefer not to use this feature can activate the RefindPlus-Specific `decline_apfs_load` configuration token to switch it off. +- **APFS Verbose Text Suppression:** RefindPlus defaults to always suppressesing verbose text output associated with loading APFS functionality by the built in `SupplyAPFS` feature. Users that prefer not to use this feature can activate the RefindPlus-Specific `decline_apfs_mute` configuration token to switch it off. +- **APFS PreBoot Volumes:** RefindPlus always synchronises APFS System and PreBoot partitions transparently such that the Preboot partitions of APFS volumes are always used to boot APFS formatted MacOS. Hence, a single option for booting MacOS on APFS volumes is presented in RefindPlus to provide maximum APFS compatibility, consistent with Apple's implementation. Users that prefer not to use this feature can activate the RefindPlus-Specific `decline_apfs_sync` configuration token to switch it off. +- **Apple NVRAM Protection:** RefindPlus always prevents UEFI Windows Secure Boot from saving certificates to Apple NVRAM as this can result in damage and an inability to boot. Blocking these certificates does not impact the operation of UEFI Windows on Apple Macs. This filtering only happens when Apple firmware is detected and is not applied to other types of firmware. Users that prefer not to use this feature can activate the RefindPlus-Specific `decline_nvram_protect` configuration token to switch it off. +- **UEFI 2.x Emulation:** RefindPlus always emulates the `CreateEventEx` feature from UEFI 2.x on EFI 1.x units and additionally modifies the EFI Revision value to `UEFI 2.3`. This often allows running UEFI 2.x utilities on legacy units since several such utilities only require CreateEventEx to function. Users that prefer not to use this feature can activate the RefindPlus-Specific `decline_uefi_emulate` configuration token to switch it off. +- **ESP Scanning:** Other ESPs separate from that containing the active efi file are now also scanned for loaders by rEFInd. The earlier behaviour, where all other ESPs were treated as duplicates and ignored, has been considered an error and changed. This earlier behaviour is preferred and maintained in RefindPlus. However, users have the option to override this behaviour, in favour of the new upstream behaviour, by activating the RefindPlus-Specific `decline_esp_filter` configuration token. +- **Disabled Manual Stanzas:** The processing of a user configured boot stanza is halted once a `Disabled` setting is encountered and the `Entry` object returned 'as is'. The outcome is the same as upstream, which always proceeds to create and return a fully built object in such cases (subsequently discarded), and RefindPlus, which may return a partial object (similarly discarded). However, the approach adopted in RefindPlus allows for an optimised loading process particularly when such `Disabled` tokens are placed immediately after the `menuentry` line (see examples in the [config.conf-sample](https://github.com/dakanji/RefindPlus/blob/4d066b03423e0b4d34b11fc5e17faa7db511c551/config.conf-sample#L890) file). This also applies to `submenuentry` items which can be enabled or disabled separately. +- **Pointer Priority:** The upstream implementation of pointer priority is based on how the tokens appear in the configuration file(s) when both pointer control tokens, `enable_mouse` and `enable_touch`, are active. The last token read in the main configuration file and/or any supplementary/override configuration file will be used and the other diregarded. In RefindPlus however, the `enable_mouse` token always takes priority when both tokens are active without regard to the order of appearance in the configuration file(s). This means that to use a mouse in RefindPlus, the `enable_touch` token must be disabled in addition to enabling the `enable_mouse` token. ## Roll Your Own Refer to [BUILDING.md](https://github.com/dakanji/RefindPlus/blob/GOPFix/BUILDING.md) for build instructions (x64 Only). diff --git a/config.conf-sample b/config.conf-sample index c977cabb..c36aaed7 100644 --- a/config.conf-sample +++ b/config.conf-sample @@ -36,13 +36,11 @@ # attempted removal may fail when booting into MacOS via non-standard approaches such as # RefindPlus. It is also possible that Apple will remove this remediation feature once # Mac models supporting MacOS v10.15 (Catalina) are deemed to be obsolete by Apple. +# When this token is set, RefindPlus will remove this bit from the saved +# CSR bits when booting into MacOS similar to the process undertaken in +# MacOS 11.x and later. This setting is only active on Apple Firmware. # -# When this token is set, RefindPlus will remove this bit from the saved CSR bits -# when booting into MacOS, OpenCore or Clover similar to the process undertaken -# in MacOS 11.x and later. This setting can also be used with older versions. -# NB: This option is only active on Apple Firmware. -# -# Inactive when commented out (Takes no action on "APPLE_INTERNAL" bit) +# Inactive when commented out (Takes no action on SIP/SSV settings) # #csr_normalise @@ -251,6 +249,7 @@ # is inactive by default for non-Apple SSDs in MacOS. When this option # is active however, RefindPlus will enforce MacOS "TRIM" for all types # of SSDs, including non-Apple SSDs. This setting only applies to MacOS. +# # Note that the setting will create a MacOS NVRAM entry the first time it # is triggered and that it will stay active until explicitly cleared even # if the setting is subsequently disabled. Also, note that forcing TRIM diff --git a/include/version.h b/include/version.h index 63fa821a..23a7153d 100644 --- a/include/version.h +++ b/include/version.h @@ -16,4 +16,4 @@ * Modifications distributed under the preceding terms. */ -#define REFINDPLUS_VERSION L"0.13.3.AA (Pre-Release)" +#define REFINDPLUS_VERSION L"0.13.3.AA"