Skip to content

Commit

Permalink
Update for v0.14.0.AB Release
Browse files Browse the repository at this point in the history
  • Loading branch information
dakanji committed Oct 3, 2023
1 parent 9dcd45a commit 78bf05d
Show file tree
Hide file tree
Showing 6 changed files with 208 additions and 185 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ body:
label: RefindPlus Version
description: Which version of RefindPlus is affected?
options:
- 'v0.14.0.AA Release'
- 'v0.14.0.AB Release'
- 'Older Released Version'
- 'Pre-Release Code Build'
validations:
Expand Down
2 changes: 1 addition & 1 deletion NEWS.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
0.14.0.AB (PRE-RELEASE):
0.14.0.AB (03 Oct 2023):
-----------------------
- Adds `HelpScan` Feature
* Ensures that some typically unwanted loaders are not displayed in the first row
Expand Down
2 changes: 1 addition & 1 deletion README-Dev.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ Implementation differences with the upstream v0.14.0 base are:
- **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 `disable_nvram_protect` configuration token to switch it off.
- **Secondary Configuration Files:** While the upstream documentation prohibits including tertiary configuration files from secondary configuration files, there is no mechanism enforcing this prohibition. Hence, tertiary, quaternary, quinary, and more, configuration files can in fact be included. RefindPlus enforces a limitation to secondary configuration files.
- **Included Manual Stanza Files:** The upstream implementation has an undocumented feature whereby files containing manual configuration stanzas could be `included` similar to a secondary configuration file. This is documented in the RefindPlus config file along with the documentation for including secondary configuration files. While the RefindPlus implementation also allows multiple `include` lines for such, it differs from the undocumented upstream implementation in that included manual configuration stanza files cannot include other such files in turn, similar to the implementation for secondary configuration files.
- **Disabled Manual Stanzas:** The processing of a user configured boot stanza is halted, and the `Entry` object immediately discarded, once a `Disabled` setting is encountered. The outcome is the same as upstream, which always continues to create and return a fully built object in such cases to be discarded later. 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-Dev](https://github.com/dakanji/RefindPlus/blob/27ad097947f67fbf372ac1a302ad813a029b927f/config.conf-sample-Dev#L1224-L1249) file). This also applies to `submenuentry` items which can be enabled or disabled separately.
- **Disabled Manual Stanzas:** The processing of a user configured boot stanza is halted, and the `Entry` object immediately discarded, once a `Disabled` setting is encountered. The outcome is the same as upstream, which always continues to create and return a fully built object in such cases to be discarded later. 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-Dev](https://github.com/dakanji/RefindPlus/blob/9dcd45ae85255e46719143138514575fa9bc35e8/config.conf-sample-Dev#L1306-L1331) 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 disregarded. In RefindPlus however, the `enable_touch` 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 (default) in addition to enabling the `enable_mouse` token.

## Roll Your Own
Expand Down
33 changes: 17 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,19 +57,20 @@ Token | Functionality
continue_on_warning |Proceed as if a key was pressed after screen warnings (for 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_apfs_load |Disables inbuilt provision of APFS filesystem capability
decline_apfs_mute |Disables suppression 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_help_icon |Disables feature that may improve loading speed by preferring generic icons
decline_help_tags |Disables feature that ensures hidden display entries can always be unhidden
decline_help_text |Disables complementary text colours if not required
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_help_scan |Disables feature that skips showing misc typically unwanted loaders
decouple_key_f10 |Unmaps the `F10` key from native screenshots (the `\` key remains mapped)
disable_amfi |Disables AMFI Checks on macOS if required
disable_apfs_load |Disables inbuilt provision of APFS filesystem capability
disable_apfs_mute |Disables suppression of verbose APFS text on boot
disable_apfs_sync |Disables feature allowing direct APFS/FileVault boot (Without "PreBoot")
disable_compat_check |Disables Mac version compatibility checks if required
disable_nvram_paniclog|Disables macOS kernel panic logging to NVRAM
disable_nvram_protect |Disables blocking of potentially harmful write attempts to Legacy Mac NVRAM
disable_provide_fb |Disables provision under some circumstances of missing AppleFramebuffers
disable_reload_gop |Disables reinstallation of UEFI 2.x GOP drivers on EFI 1.x units
disable_rescan_dxe |Disables scanning for newly revealed DXE drivers when connecting handles
enable_esp_filter |Prevents other ESPs other than the RefindPlus ESP being scanned for loaders
force_trim |Forces `TRIM` on non-Apple SSDs on Macs if required
Expand Down Expand Up @@ -120,21 +121,21 @@ In addition to the new functionality listed above, the following upstream tokens

## Divergence
Implementation differences with the upstream v0.14.0 base are:
- **GZipped Loaders:** RefindPlus only provides stub support for handling GZipped loaders as this is largely relevant for units on the ARM architecture. This stub support only used for debug logging in RefindPlus and can be activated using the same `support_gzipped_loaders` configuration token as upstream.
- **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 and additionally scales UI elements down when low resolution screens (less than 1025px on the longest edge) are detected.
- **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_help_tags` 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.
- **AppleFramebuffer Provision:** RefindPlus defaults to always providing Apple framebuffers on Macs, when not available under certain circumstances. This is done using an inbuilt `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 an inbuilt `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 suppresses verbose text output associated with loading APFS functionality by the inbuilt `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.
- **Hidden Tag:** 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_help_tags` configuration token to switch it off.
- **Loader Icons:** RefindPlus defaults to preferring generic icons for loaders ahead of custom icons where possible. The upstream icon search implementation involves only loading such icons after a search for custom icons has not turned anything up. Users can activate the RefindPlus-Specific `decline_help_icon` configuration token to use the upstream icon search implementation instead of the RefindPlus default.
- **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 `disable_reload_gop` 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 an inbuilt `SupplyAppleFB` feature. Users that prefer not to use this feature can activate the RefindPlus-Specific `disable_provide_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 an inbuilt `SupplyAPFS` feature. Users that prefer not to use this feature can activate the RefindPlus-Specific `disable_apfs_load` configuration token to switch it off.
- **APFS Verbose Text Suppression:** RefindPlus defaults to always suppresses verbose text output associated with loading APFS functionality by the inbuilt `SupplyAPFS` feature. Users that prefer not to use this feature can activate the RefindPlus-Specific `disable_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 `disable_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 `disable_nvram_protect` configuration token to switch it off.
- **Secondary Configuration Files:** While the upstream documentation prohibits including tertiary configuration files from secondary configuration files, there is no mechanism enforcing this prohibition. Hence, tertiary, quaternary, quinary, and more, configuration files can in fact be included. RefindPlus enforces a limitation to secondary configuration files.
- **Included Manual Stanza Files:** The upstream implementation has an undocumented feature whereby files containing manual configuration stanzas could be `included` similar to a secondary configuration file. This is documented in the RefindPlus config file along with the documentation for including secondary configuration files. While the RefindPlus implementation also allows multiple `include` lines for such, it differs from the undocumented upstream implementation in that included manual configuration stanza files cannot include other such files in turn, similar to the implementation for secondary configuration files.
- **Disabled Manual Stanzas:** The processing of a user configured boot stanza is halted, and the `Entry` object immediately discarded, once a `Disabled` setting is encountered. The outcome is the same as upstream, which always continues to create and return a fully built object in such cases to be discarded later. 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/27ad097947f67fbf372ac1a302ad813a029b927f/config.conf-sample#L1224-L1249) file). This also applies to `submenuentry` items which can be enabled or disabled separately.
- **Disabled Manual Stanzas:** The processing of a user configured boot stanza is halted, and the `Entry` object immediately discarded, once a `Disabled` setting is encountered. The outcome is the same as upstream, which always continues to create and return a fully built object in such cases to be discarded later. 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/9dcd45ae85255e46719143138514575fa9bc35e8/config.conf-sample-Dev#L1306-L1331) 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 disregarded. In RefindPlus however, the `enable_touch` 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 (default) in addition to enabling the `enable_mouse` token.
- **GZipped Loaders:** RefindPlus only provides stub support for handling GZipped loaders as this is largely relevant for units on the ARM architecture. This stub support can be activated using the same `support_gzipped_loaders` configuration token as upstream.
- **Loader Icons:** RefindPlus defaults to preferring generic icons for loaders ahead of custom icons where possible. The upstream icon search implementation involves only loading such icons after a search for custom icons has not turned anything up. Users can activate the RefindPlus-Specific `decline_help_icon` configuration token to use the upstream icon search implementation instead of the RefindPlus default.

## Roll Your Own
Refer to [BUILDING.md](https://github.com/dakanji/RefindPlus/blob/GOPFix/BUILDING.md) for build instructions (x86_64 Only).
Expand Down
Loading

0 comments on commit 78bf05d

Please sign in to comment.