Skip to content

Releases: dakanji/RefindPlus

v0.14.1.AA

04 Jun 06:09
Compare
Choose a tag to compare
  • Synced with Upstream v0.14.1
  • Adds SyncTrust Feature
    • The boot Chain of Trust may be broken on booting with 3rd-party tools on T2/TPM chipped units
    • When this happens, the unit refuses to boot the selected item and may even become unresponsive
    • This feature provides a workaround by triggering a trusted native reboot to the selected item
    • This feature can be enabled by activating a new sync_trust configuration token
  • Adds LegacySync Feature
    • RefindPlus previously assumed all Macs were capable of legacy BIOS boot
      • This was from code that went in upstream in 2012 when this was a reasonable working assumption
        • However, Macs later became UEFI certified and the last Intel Macs appear to be UEFI Class 3+
        • UEFI Class 3/3+ devices do not support legacy BIOS boot
      • This feature attempts to categorise Macs and allow/disallow legacy BIOS boot accordingly
    • Enabled by default but can be disabled using a new disable_legacy_sync configuration token
      • Disabling might be needed if a Mac is mis-categorised and legacy BIOS boot wrongly prevented
  • Adds HelpSize Feature
    • Provides option to force non-standard or otherwise unsupported screen resolutions
      • This can help work around issues where pre-boot configuration screen are not displayed
      • The issues are typically EDID related or the auto-selection of incorrect/incompatible resolutions
      • This aspect of the HelpSize feature requires booting into systems that fully support the graphics
    • An ExDPI category for screens with resolutions of 6400 x 4000 or more was created
      • UI elements are scaled up by four (4) on such screens when UI element scaling is active
      • UI elements on other HiDPI screens are still scaled up by two (2) with UI scaling active
    • Enabled by default but can be disabled using a new decline_help_size configuration token
      • The new token sets RefindPlus to only apply up to 2x UI element scaling
  • Fixes Legacy BIOS Boot on Certified UEFI Class 2 Macs
    • Optimisations for speed had potentially disabled legacy BIOS boot on some Macs
    • This bug was introduced in v0.13.3.AB (Commit 66dbed0)
  • Fixes Potential Memory Conflict
    • Some constants were passed to a function that reallocates memory
    • This bug was introduced in v0.14.0.AA (Commit 3fc36f5)
    • Extended in v0.14.0.AB (Commit 5cb1ed9)
  • Fixes Display Resolution Handling
    • User defined resolutions were not being properly handled
      • Only the default, max, resolution was considered
      • This meant that instances with defined resolutions were not properly displayed
    • Separately, the selected resolution when seeking max was not always the actual maximum
    • Additionally, a HelpSize Feature, documented separately, was introduced
  • Fixes DirectBoot Handling
    • Was not functional
  • Fixes HelpScan Handling
    • Rationalises implementation
      • Could be applied, when disabled, to some items that should be excluded
  • Improves SystemdVars Handling
  • Improves GraphicsFor Handling
    • Users can now set none under the use_graphics_for token to disable graphic mode boot
    • Users can now set everything to activate this for all boots
      • The previous option of setting use_graphics_for alone has also been fixed and remains
  • Improves HiddenTags Handling
    • Shows volumes names along with GUID where only the GUID would have previously been shown
      • Allows human friendly instance identification when viewing the Restore Entries screen
    • Breaks backward compatibility with upstream when tags are hidden in RefindPlus
      • Tags hidden upstream remain forward compatible with RefindPlus
    • Fixes situation where some loaders in ESP locations were not hidden when selected on-screen (minus key)
      • Was also the case when full paths were used in dont_scan_files
  • Improves License Presentation
    • Rationalises presentation to make clear it is on GPLv3/Later
  • Improves MemTest Handling
    • Updated exclusion from loaders (Row 1 Items)
    • Updated to handle memtest+{ARCH}.efi and memtest86+{ARCH}.efi files as per upstream
  • Improves ProtectNvram Handling
    • Now also blocks the CurrentPolicy and CurrentActivePolicy variables
  • Improves SyncNVram Handling
    • Now also clears the opencore-version variable, if present, when booting into macOS directly
      • This variable is effectively an OpenCore Present flag that is checked by the macOS kernel
      • This variable removal only applies when RefindPlus is NOT chain-loaded via OpenCore
      • This variable removal also applies to macOS installers
    • Separately, the implementation of the base feature was not functional on macOS boots and was fixed
  • Improves HelpIcon Handling
    • The following OS Icons are now cached on first load and reused as required afterwards when this feature is active
      • List is "os_mac", "os_win", "os_win8", "os_linux", "os_legacy", "os_clover", "os_opencore", "os_unknown", and "dummy image"
      • List is stored in TableBuiltinIconOS
    • Supplements the existing caching of items covered by BuiltinIconTable
      • The BuiltinIconTable item caching always happens with or without the HelpIcon feature
  • Improves CleanNvram Handling
    • Now clears CurrentPolicy and CurrentActivePolicy variables on Apple firmware
  • Improves Misc Handling
    • Restructured config file into four (4) sections
    • Completed LodePNG 20230410 update started in v0.14.0.AC
    • Renames the cd item under the scanfor config token as cdbios
      • Provides clarity that this is a BIOS scan option
      • Maintains compatibility with existing settings including upstream
    • The TimeoutSeconds item in REFIT_MENU_SCREEN was changed to INTN
      • Follow on from fix to Timeout item in REFIT_CONFIG previously changed to INTN
      • The original fix for SilentBoot/DirectBoot was incomplete (Commit 78d6138 in v0.13.2.AH)
    • Applied misc micro optimisation for speed
      • Restructured search pattern for config tokens
      • Optimised LoadDrivers function
    • Misc fixes for running in TextOnly mode
    • Adjusted AppleFramebuffer handling to eliminate unneeded cycles
  • Renames Misc Configuration Tokens
    • disable_amfi to disable_check_amfi
    • disable_compat_check to disable_check_compat

v0.14.0.AC

06 Feb 03:01
Compare
Choose a tag to compare
  • Adds SyncNVram Feature
    • Sets RefindPlus to always clear some nvRAM settings on certain boot types
      • Currently applied to Bluetooth settings for macOS
        • bluetoothInternalControllerinfo
        • bluetoothActiveControllerInfo
        • bluetoothExternalDongleFailed
    • The feature can be enabled using a new sync_nvram configuration token
  • Adds PersistBootArgs Feature
    • Outputs of macOS boot argument related settings are now written to vRAM instead of to nvRAM
      • This is to reduce wear and tear on the nvRAM storage chip
    • Enabled by default but can be disabled using a new persist_boot_args configuration token
  • Fixes HelpIcon Feature
    • The feature had been switched off by default instead of being switched on
    • This bug was introduced in v0.14.0.AB (Commit 9dcd45a)
  • Fixes Legacy MBR, including Legacy Windows, Handling
    • Negatively impacted by Volume->RootDir filtering in the DontScanVolumes check consolidation
    • This bug was introduced in v0.14.0.AB (Commit a92b376)
  • Improves Misc Handling
    • Partially back-ported LodePNG updates
    • Additional CSR scenarios are now recognised
    • Updated misc function structures to improve speed
      • Variable initialisation tweaks
      • Memory handling tweaks to prefer stack over heap where possible
    • MemLog resolution set to 1/10000 seconds (1/10 milliseconds)
      • For timing accuracy when RefindPlus loads under a second
      • Previous resolution was 1/1000 seconds (1 millisecond)
    • Extend ostype Coverage in Manual Stanzas
      • Now includes RefitVariant, OpenCore, and Clover
      • These are additional to the upstream original items
      • Manual stanzas stay in Section 3 of the config file
  • Improves Graphics Handling
    • Improvements to handling Appleframebuffer
    • Improvements to handling Graphics Pass Through
      • Misc optimisation
      • The PassGopThrough feature added in 0.13.3.AD is now user configurable
        • Enabled by default but can now be disabled using a new disable_pass_gop_thru configuration token
    • Improvements to handling misc graphics items
    • Amendments to GOP Graphics Handling
      • GOP is now provided/replaced on the ConsoleOut handle by default when required
      • Hence, the "Opt-In" provide_console_gop token is replaced by the "Opt-Out" disable_set_consolegop
  • Improves SetBootArgs Handling
    • The set_boot_args configuration token can now take a -none setting
    • This permits disabling previous settings in supplementary/theme config files
  • Improves Misc Linux Distro Handling
    • Now better labelled
  • Improves Icon File Scanning
    • Optimises VolumeIcon and VolumeBadges searches
    • These items are now only scanned for displayed volumes
    • Improves loading speed by reducing disk I/O access
  • Improves macOS Installer Handling
    • Now better identified and labelled
  • Improves RotateCSR Handling
    • Now displays a confirmation input screen before execution
    • The NormaliseCSR feature was always applied when rotating
  • Amends Non Standard Binary Handling
    • Apple 'Fat' Binary now also assumed valid on UEFI-PC
    • Consistent with upstream implementation
      • 'Plain' Binaries are assumed valid on Apple firmware
      • Upstream considers such invalid on all firmware types
  • Amends HideUIFlags Handling
    • Now aligned with behaviour of other configuration tokens
      • Existing settings are now overridden by settings in supplementary/theme config files
      • Settings in supplementary/theme config files were previously added to existing ones
    • A new flag, none, was added
      • Allows reseting the token in supplementary/theme config files
      • Takes priority over all other settings whenever present
  • Amends Ventoy Handling
    • Specific Ventoy handling is now disabled unless enabled via a new handle_ventoy configuration token
      • This eliminates time on spent on unnecessary searches
      • Also eliminates a default divergence from upstream
    • Whole Disk volumes with Legacy Bootcode were previously hidden whenever Ventoy was present
      • This was to avoid spurious/unbootable instances appearing
        • This however affected legitimate instances without a way to override the behaviour
      • Now attempts to target this when handle_ventoy is set or lets them appear instead
      • Users can hide unwanted instances if required
  • Amends SilenceAPFS Feature
    • No longer separately user configurable and subsumed into the SupplyAPFS feature
    • The associated disable_apfs_mute configuration token is now removed and ignored if set
  • Removes HelpTags Feature
    • The issue the feature was meant to fix does not actually exist
    • The associated decline_help_tags configuration token is now removed and ignored if set
  • Renames Configuration Token
    • decline_apple_fb to disable_set_applefb

v0.14.0.AB

03 Oct 02:30
Compare
Choose a tag to compare
  1. Attached a replacement package, HotFix-01, to address misc post release issues1

  • Adds HelpScan Feature
    • Ensures that some typically unwanted loaders are not displayed in the first row
      • Enforces tools only appearing in the second row
      • Always adds program default items for exclusion to user defined ones
    • Enabled by default but can be disabled using a new decline_help_scan configuration token
      • The new token sets RefindPlus to follow the upstream implementation
  • Fixes MemTest Tool
    • The MemTest fallback loader file was not recognised as a MemTest loader
    • Hence MemTest could only be run via explicit MemTest efi files
    • This bug was introduced in v0.12.0.AN (Commit 44b53e8)
  • Improves Ventoy Handling
    • Removes multiple redundant/invalid loader options that otherwise appear
    • Displays an os_ventoy icon if present
  • Improves ScaleUI Handling
    • Eliminates extra UI scaling that may happen on main screen rescans
  • Improves SyncAPFS Handling
    • Handles synced multi instance APFS container volumes in DontScanVolumes list
    • Stores APFS Roles in volume object instead of retrieving such each time
  • Improves Misc External Screen Tool Handling
    • Some tools that run external screens, such as GDisk, may change volume device paths
    • Hence, on return, RefindPlus did not operate as it should
    • Previously fixed but re-emerged and now addressed again
  • Improves Linux Param File Handling
    • A memory conflict meant the files were not always read
  • Improves Filesystem Driver Handling
    • Resolves failure to install on some handles
  • Improves GPT Handling
    • Applies misc minor tweaks
  • Improves Comma Delimited Strings Handling
    • Now accommodates leading spaces before string elements
  • Improves Loader Icon Handling
    • Provides generic Linux fallback for some distros
    • Prevents fallback loaders with invalid architectures from being displayed
  • Improves AlsoScan Feature Handling
    • The @root/boot path was removed from the default also_scan_dirs list
    • Added in v0.13.3.AD but users should be able to add this if required
  • Renames Misc Configuration Tokens
    • decline_nvram_protect to disable_nvram_protect
    • decline_reload_gop to disable_reload_gop
    • decline_apfs_load to disable_apfs_load
    • decline_apfs_mute to disable_apfs_mute
    • decline_apfs_sync to disable_apfs_sync
    • decline_apple_fb to disable_provide_fb

  1. HotFix 01: 01 Nov 23

v0.14.0.AA

13 Jun 19:00
Compare
Choose a tag to compare
  1. Attached a replacement package, HotFix-01, to address misc post release issues1

  • Synced with Upstream v0.14.0
  • Updates Deprecated EFI 1.x Protocols
    • Misc deprecated protocols aligned with UEFI 2.x specs
    • Some are related to filesystem drivers; for which updated versions are created accordingly
  • Adds HelpIcon Feature
    • Improves loading speed by preferring the current theme's generic/default loader icons
    • Enabled by default but can be disabled using a new decline_help_icon configuration token
  • Adds GZippedLoaders Feature
    • Stub implementation of upstream feature focused on the ARM architecture
  • Adds Misc Upstream Changes/Fixes
  • Fixes ReloadGOP Feature
    • A regression had meant that the feature was not active
    • This bug was introduced in v0.13.3.AD (Commit dc642c6)
  • Improves SupplyNVME Feature
    • Further isolated from other code
  • Improves SupplyAPFS Feature
    • Now run after device connection to ensure APFS availability
    • This should also resolve availability with some third party flashed GPUs
  • Improves AcquireGOP Feature
    • Now handles uncompressed OptionROMs
    • None encountered to date but theoretically possible
  • Improves AlsoScan Feature
    • The @root/boot path was added to the default also_scan_dirs list
  • Improves DynamicCSR Feature
    • Now also enables the RotateCSR tool if configured to be displayed
      • The tool was previously always disabled when DynamicCSR was active
    • Now attempts up to three (3) rotations
      • Some users have more than two (2) CSR settings
      • Stops at the first match of the target setting or after the third attempt
    • A screen message about NormalisedCSR was additionally suppressed
  • Improves Generic Menu Handling
    • Now provides a Return to Main Menu option on all such menus
  • Improves OpenCore Instance Handling
    • Now prevents loading OpenCore when RefindPlus is loaded via OpenCore
    • That is, prevents loading OpenCore when it is already active
  • Improves NvramProtect and NvramProtectEx Features
    • Now disabled when RefindPlus is loaded via OpenCore
  • Exposes MitigatePrimedBuffer Feature for User Configuration
    • Previously activated by default on all types of firmware
    • A limited base implementation is always active on Non-Apple firmware
    • Can now be extended on by activating a new mitigate_primed_buffer token
    • The feature does not operate on Apple firmware regardless of the token setting
  • Amends Filesystem Drivers
  • Amends Big Selection Image Size Filtering
    • The maximum Big Selection image size is increased to 512px from 320px
    • The Small Selection image maximum is maintained at 256px
  • Amends EFI File Validity Checks
    • Apple Fat Binaries are now always assumed to be valid on Apple firmware
    • This similarly applies to binaries with missing PE32+ headers

  1. HotFix 01: 22 Jul 23

v0.13.3.AD

07 Mar 11:00
Compare
Choose a tag to compare
  • Fixes Manual Stanza SubMenuEntries
    • A memory conflict meant that including such entries resulted in RefindPlus hanging
  • Fixes UGA Graphics
    • Addresses issue of UGA-Only GPUs being always forced into TextOnly mode
  • Fixes Misc Alt Build Function Duplication Issues
  • Fixes Forced Default Config Settings
    • Forced Defaults, typically based on firmware type, could be skipped under some circumstances
    • This gap has now been closed
  • Fixes Invalid ShowTools Entry Handling
    • Such invalid entries were previously only flagged and not actually handled
    • These are now additionally skipped
  • Improves DefaultSelection Feature
    • A substring match is now only attempted if an exact match fails
  • Improves CSR Handling
    • Multiple tweaks to improve handling CSR settings
    • Removes Limitation of DynamicCSR Feature to Apple Firmware
    • DynamicCSR also now runs whenever RefindPlus is loaded and not just when specific loaders are started
  • Improves System Shutdown/Restart Handling
    • Now displays a confirmation input screen before execution
  • Improves Misc Graphics Handling
    • Improves graphics related memory management
    • Improves UGA support via new PassGopThrough feature (Not user configurable)
  • Amends Selection Image Size Filtering
    • The maximum Big Selection image size is increased to 320px from 256px
    • The Small Selection image maximum is maintained at 256px
    • The default selection image is now used when a defined image cannot be found
      • Previously used a scaled version of the small image when the big one was missing
  • Amends Invalid UEFI Versions Handling
    • Now accounts for such by reducing the amendment threshold to UEFI 2.0
    • Still amends to UEFI 2.3 when UEFI amendments happen
    • No longer amends Runtime Services for UEFI amendments
    • No longer disables certain features on detecting inconsistent versions
    • No longer displays a warning message and the discrepancy is only logged
    • Fixes Memory Conflict in 'Invalid EFI Versions' Debug Logging
      • The DBG build had an invalid memory allocation instance that results in a hang when logging detection
  • Amends and Refactors Misc Items
    • General optimisation
    • Memory management improvements and fixes
    • Log file handling tweaks
  • Amends ScanAllESP Feature
    • Now aligned with upstream implementation and scans all ESPs by default
    • Hence, the "Opt-Out" decline_esp_filter token has been replaced by an "Opt-In" enable_esp_filter token
    • A previous issue where the token operated the wrong way round has been fixed

v0.13.3.AC

06 Dec 18:56
Compare
Choose a tag to compare
  • Adds NvramProtectEx Feature
    • Extends the NvramProtect feature (if set) to Mac OS and Unknown UEFI boots
    • The feature can be enabled using a new nvram_protect_ex configuration token
      • Replaces the FocusNvramFix feature which has been removed
      • Essentially restores functionality from EnableMacosFilter previously replaced by FocusNvramFix
  • Fixes QueryVariableInfo Handling
    • Now properly handled on UEFI-Mac units
    • The output is not currently presented however as Apple firmare does not return accurate information
  • Fixes Misc Static Analysis Flags
    • Some are related to filesystem drivers; for which updated versions are created accordingly
  • Improves SetVariable Hook/Event Handling
    • Misc improvements including improved memory management
    • Relevant to the NvramProtect feature
  • Improves Mac Recovery Tool Scan
    • Now skips some invalid entries such as APFS Recovery partitions
  • Improves ScreenShot Feature
    • Now clears the keystroke buffer in egScreenShot to mitigate against stuck keys
  • Improves Clean NVRAM Feature
    • Particularly regarding clearing OpenCore related variables
  • Improves Time Bound Primed Buffer Mitigation
    • Rationalises intervention threshold
  • Improves UI Element Scaling
    • Some units use a low resolution display for the boot stage that result in distorted UI
    • RefindPlus can now detect this and automatically scale UI elements down accordingly
    • Alternatively, users can use the scale_ui token to scale UI elements down
    • The threshold below which the display is considered LoRez is 1025px
    • Ensures correct icon scales are maintained on RescanAll calls
  • Amends SupplyNVME and SupplyUEFI Features
    • No longer supplied by default but when specifically activated
    • Hence, the "Opt-Out" decline_nvme_load token has been replaced by an "Opt-In" supply_nvme token
    • The "Opt-Out" decline_uefi_emulate token has also been replaced by an "Opt-In" supply_uefi token
    • A previous failure to be activated when NVME support was absent has been fixed
  • Renames Misc Configuration Tokens
    • decline_tags_help to decline_help_tags
    • decline_text_help to decline_help_text

v0.13.3.AB

06 Sep 09:41
Compare
Choose a tag to compare
  • Adds PreferUGA Feature
    • Sets RefindPlus to always use UGA for its graphics output when available
      • The default is to use GOP and to fall back on UGA when GOP is not available
    • The feature can be enabled using a new prefer_uga configuration token
  • Adds FollowSymlinks Feature
    • Allows following symbolic links to loaders
    • These are otherwise ignored to avoid misc issues but may be useful to run some Linux setups
    • The feature can be enabled using a new follow_symlinks configuration token
  • Adds FocusNvramFix Feature
    • Focuses the ProtectNVRAM feature (if set) on explicit UEFI Windows boots
    • The feature can be enabled using a new focus_nvram_fix configuration token
      • Replaces the EnableMacosFilter feature which has been removed
  • Fixes Unwanted APFS Data Volume Entries
    • APFS data volumes could sometimes appear as boot options due to inadequate filtering
  • Fixes SubScreen Boots
    • Boots from subscreens, such as after pressing F2, were handled as generic UEFI files
    • This resulted in some processes being skipped or unwanted processes being applied
    • RefindPlus now tries to make such boots specific as follows:
      • Opencore, Clover, Linux, MacOS, Windows and Misc Others
  • Fixes Apple Hardware Test Option
    • While Apple stopped providing this feature after June 2013, some users may have restored this
    • In such cases however, RefindPlus did not provide the option on APFS volumes when SyncAPFS is active
    • Now reinstated subject to not having multiple MacOS instances in any single APFS container
  • Fixes Misc Items
    • Always block UEFI Windows NVRAM items (Disregard Volatility)
    • Address misidentification of certain volume types as HFS+ volumes
    • Address misplaced Out and Return log tags
    • Eliminate excessive pointer event logging
    • Eliminate python script code smells
  • Improves System Reset Call Fix
    • Was previously always active when on system reboot calls
    • This meant such calls always required confirmation
    • Such confirmations are no longer required if keypresses had taken place before the call
    • Hence all legitimate calls now proceed without issue and buffered keystroke calls are also captured
  • Improves FS Type Handling
    • Prevents Windows Support Volumes from being offered as boot options
    • Updates Volume FS_TYPE setting to match assumed types
    • Differentiates between HFS+ types
  • Improves Time Bound Primed Buffer Mitigation
    • Reduces intervention threshold based on detection of confirmed user key presses
  • Amends the ShouldScan Function to Exclude HFS+ Recovery HD Volumes
    • This recovery functionality was meant to be handled by the Mac Recovery Tool
  • Amends the WarnIfLegacyProblems Function Run Position
    • Now runs after the SetupScreen function to ensure screen display on issues
  • Amends EFI Scan to Exclude BOOTCAMP
    • BootCamp creates HybridMBR disks and trigger redundant attempts to find EFI loaders
  • Ports Downstream Directory Scan Iteration Fix

v0.13.3.AA

07 Jun 11:06
Compare
Choose a tag to compare
  • Synced with Upstream v0.13.3
  • Adds EnableMacosFilter Feature
    • 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
    • Replaces the PanicFilter feature which has been removed
  • Adds NvramVariableLimit Feature
    • Filters NVRAM variable write attempts
    • Variables larger than a specified size are discarded
    • This is activated by a new nvram_variable_limit configuration token
  • Adds DecoupleKeyF10 Feature
    • Unlinks the F10 key from the built in screenshot feature
    • Allows the use of 3rd party screenshot tools that also map the F10 key
    • The \ (forward slash) key remains linked to the built in screenshot feature
    • This is activated by a new decouple_key_f10 configuration token
  • Fixes DisableAMFI Feature
    • The feature had been disabled under some circumstances
    • This bug was introduced in v0.13.2.AP (Commit 8705fdb)
  • Improves HandleSignedInt Function
    • Ensures the function always returns a negative value when required
  • Improves FindMenuShortcutEntry Function
    • Now initially tries a exact match of the stored string against available entries
    • A match against substrings is only tried if an exact match is not found
  • Improves Pointer Device Handling
  • 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

v0.13.2.AP

19 Apr 08:23
Compare
Choose a tag to compare

Change 01: 21 Apr 221.


  • Adds PanicFilter Feature
    • RefindPlus now discards NVRAM write attempts of kernel panic information by default
    • Can be disabled using a new decline_panicfilter configuration token
    • Currently limited to when directly booting MacOS from RefindPlus
  • Adds SupplyAppleFB Feature
    • Attempts to provide AppleFramebuffers on Macs when absent under certain circumstances
    • Can be disabled using a new decline_applefb configuration token
  • Adds TextHelp Feature
    • Uses complementary text colours to improve legibility
    • Can be disabled using a new decline_texthelp configuration token
      • Only when using a custom title banner
      • Always on when using the default title banner
  • Adds IconRowMove Feature
    • Allows repositioning the icon row position on the RefindPlus screen
      • Sometimes needed when icons block parts of custom banners
    • Base position can be specified using a new icon_row_move configuration token
  • Adds IconRowTune Feature
    • Allows adjustments to the IconRowMove position
    • Offset value can be specified using a new icon_row_tune configuration token
  • Adds RansomDrives Feature
    • Some types of firmware, notably on HP Notebooks, may lock some partitions
      • This renders them inaccessible or may even lead to RefindPlus hanging
    • Such partitions can be unlocked by setting a new ransom_drives configuration token
    • This option is currently always disabled on Apple firmware
  • Adds RescanDXE Feature
    • Controls scanning for newly revealed DXE drivers when connecting handles
      • Switch ON or OFF with a new disable_rescan_dxe configuration token
    • This was previously done by default but may negatively impact loading speed
    • Typically only required when running non-native filesystems
  • Adds DriverPriority Feature
    • Asigns a higher priority to drivers loaded by RefindPlus
    • Ensures that such are loaded when other similar drivers exist (mainly in the firmware)
    • Currently tied to the RansomDrives Feature and only activated when that feature is active
  • Adds HaltSeconds Function
    • Works as PauseSeconds does, but does not terminate on keypress
  • Fixes Unicode Collation
    • Now checks for and uses Unicode Collation Protocol instances that support English
    • Previously simply selected the first instance found (Inherited)
    • This should allow proper support for languages using unicode text
  • Improves UEFI Runtime Function Wrapping
    • The wrapped UEFI Runtime SetVariable function is now better managed
  • Improves TransientBoot Feature
    • Now removes pre-existing PreviousBoot instances when booting with this option set
  • Improves DirectBoot Feature
    • Previously failed when a keyboard was not connected
    • Minimises screen shudder when the ESC key is held down to override DirectBoot
  • Improves ScreenShot Feature
    • Properly limited to one (1) sreenshot per keypress
      • Removes limitation of the keypress not continuing beyond the on-screen message display
    • Fixes Screenshots being only functional for the main RefindPlus screen
      • This bug was introduced in v0.13.2.AN (Commit 99da7ce)
  • Improves HandleSignedInt Function
    • Removed limitation on handled values
  • Improves egDisplaymessage Function
    • Now includes option to pause in the function
      • Previously needed a separate call
    • Now erases the message after the display (if a pause is invoked)
      • Previously only properly erased when called on the main screen
      • The erasure was however also lost on the main screen when IconRowMove and/or IconRowTune is active
      • Now fixed for all screens but artefacts may result with some custom banners
  • Improves CleanNvram Feature
    • The Emulated NVRAM on the filesystem is now also cleared
    • Now triggers NVRAM garbage collection on Macs when run
      • This is an equivalent of manually setting nvram ResetNVRam=1
  • Improves ProtectNVRAM Feature
    • Adds rEFIt Variant to UEFI Loaders filtered for ProtectNVRAM
      • Made up of RefindPlus, rEFIt and rEFInd files chain-loaded from named locations
      • The ProtectNVRAM feature is not enabled for such loaders
    • Now checks new NVRAM write entries against existing entries
      • Only updates the entries when absent or different
      • Filtering these reduces NVRAM writes and associated wear and tear
    • Expands blocked SecureBoot related items
    • Now clears existing instances of blocked variables
    • Adds UnlockID and UnlockIDCopy to filtered items
      • These are not certificates but work in concert with the certificates
      • Hence, not required once certificates are filtered
      • Filtering these reduces NVRAM writes and associated wear and tear
    • Filters out the Current OEM Policy from post-block clean up
      • Removal may have negative impact on UEFI-PC
      • Not strictly needed as ProtectNVRAM is currently limited to Apple Firmware
      • Considered best to add a filter now in case that changes in future
  • Improves Identification of Linux Instances
    • vmlinuz, bzImage, and kernel loaders are now accounted for as Linux loaders
    • The ProtectNVRAM feature is now not applied to such loaders
    • The grub loader was already accounted for
  • Improves OS Boot Filtering
    • The OSType flag is now taken into account
  • Improves Load Error/Warning Display
    • The ContinueOnWarning feature is forced on temporarily if required
  • Improves Time Bound Primed Buffer Mitigation
    • Mitigates against RefindPlus spontaneously running default items
    • Intervention is based on a rising threshold based on build type and presence of Apple firmware
    • Also doubles threshold time when external disks are detected
      • The issue appears to be worse when such disks are connected
  • Removes BootKicker feature
    • The feature was added as part of attempts to provide the RefindPlus screen on MacPro5,1
    • This was ultimately achieved via other means but the feature was maintained for potential benefits
    • The feature never actually worked properly however, hence the removal
  • Amends GOP Mode Selection Preference
    • RefindPlus defaults to selecting the maximum resolution GOP Mode when a screen resolution is not specified
    • When two modes have the same resolution, the later mode was used
    • This is now changed to prefer the first mode found
  • Amends OpenProtocol Remapping on Macs without AppleFramebuffers
    • The remapping is now disabled when GOP is absent on any type of firmware
    • It is now also disabled when AppleFramebuffers are absent on Apple firmware
    • This is to avoid potential memory management issues pending further investigation
  • Amends Default Loader Scan for APFS Support Volumes
    • APFS Recovery, Update and VM volumes are now added to the DontScanVolume list by default
  • Amends Scan for .VolumeIcons and VolumeBadges
    • Volumes in the DontScanVolume list are now skipped
  • Amends System Table Reallocations
    • No longer copies memory for system table reallocations
    • Some Mac models fail to boot with this following recent firmware updates
    • Other recent changes to RefindPlus may have also affected booting 'FileVault' encrypted volumes
  • Amends HandleProtocol Stashing
    • No longer stashes and restores HandleProtocol on OcProvideConsoleGop call
  • Renames the SilentBoot Feature as DirectBoot
    • This more accurately describes the feature.
  • Renames Misc Tokens to Permit Grouping of Related Tokens
    • The uga_pass_through token is renamed as pass_uga_through
    • The XYZ_hidden_icons tokens are renamed as hidden_icons_XYZ
    • The XYZ_renderer tokens are renamed as renderer_XYZ
  • Extends fixes on Mac Recovery Implementation for MacOS on APFS
    • Adjusted to cover all MacOS instances on APFS
    • APFS Recovery Volumes are handled as Mac Recovery Tools and not as volumes with loaders
    • IMPORTANT:
      • This implementation is still a work in progress ... feedback required/welcome

  1. Updated attached files to include post release PanicFilter feature fix

v0.13.2.AN

08 Feb 06:29
Compare
Choose a tag to compare

Change 01: 23 Feb 221.


  • Multiple Misc Stability Fixes
    • Major refactoring and restructuring for improved stability
    • Also applied to filesystem drivers
  • Adds SupplyUEFI Feature
    • Adds an implementation of the CreateEventEx feature to EFI 1.x units
    • Additionally, the EFI Revision is modified to present as UEFI 2.3
    • This allows the use of UEFI 2.x tools and drivers on Legacy EFI 1.x units in many cases
    • This is particularly the case on Legacy Macs, which already have amended EFI 1.x implementations
    • This functionality can be disabled by setting the decline_uefiemulate token
    • As an aside, the RuntimeServices table is now also amended in AmendSysTable
  • Adds SilentBoot Feature
    • RefindPlus inherited a mode where a default selection was run after an instant timeout
    • A shortcut key for a loader could also be pressed to run that particular loader instead
    • This mode is activated by setting the timeout config token to -1
    • However, the RefindPlus screen was briefly loaded before the target option was run
      • This created an unwanted screen flash and also removed the BGRT logo
    • The default selection is now run without showing the screen at all instead (Based on an upstream update)
    • The mode is now truly silent as there is no video output unless overridden (BGRT logos are maintained)
      • Override is initiated by holding down the ESC key immediately after starting RefindPlus
      • Shortcut keys can also be pressed
        • In such cases, the loader associated with the key will be run instead of the default
        • There will be no video output by RefindPlus similar to the default case
  • Fixes Forced TextRenderer
    • The TextRenderer feature is forced on in certain circumstances to enable text mode support
    • This appears to have resulted in conflicts on some Macs following a firmware update
    • The firmware update appears to have made changes to screen mode settings
    • The forced activation has been amended to avoid this issue
  • Fixes SystemTable Restoration
    • The code was previously not operational
    • This has now been fixed but is now limited to when SupplyUEFI is inactive
  • Fixes Major Memory Conflict
    • An item had been wrongly freed and resulted in random crashes when running loaders
    • This bug was introduced in v0.13.2.AC (Commit 6ed58c5)
  • Fixes DontScanVolumes for Synced APFS Instances
    • Limited to Single Instance APFS Containers
  • Fixes Reported LodePNG Name Collisions
    • This apparently affected Docker builds on Linux
  • Amends Handling of Inconsistent EFI Versions
    • RefindPlus now disables all functionality involving UEFI element changes when this is detected
    • A detection of inconsistent EFI versions suggests RefindPlus has been chain-loaded
    • This is most likely to be as a result of chain-loading from OpenCore with ForgeUefiSupport set
    • The disabled features can typically also be set in OpenCore
  • Improves ProtectNVRAM Implementation
    • RefindPlus classifies UEFI Loaders into one of the following categories:
      • Opencore, Clover, Linux, MacOS, Windows and Others
    • Only security certificates generated by Windows UEFI Loaders were blocked by ProtectNVRAM
    • However, UEFI Windows installers/updaters may fall into the Others category and generate such certificates
    • Hence, certificates generated by UEFI Loaders that fall into the Others category are now also blocked
    • The feature remains only active on Apple firmware and can be disabled by setting the decline_nvramprotect token
  • Improves SyncAPFS Implementation
    • The presence of valid VolUUID and PartGUID is now taken into account
    • SyncAPFS is disabled if either has a NULL Guid value
  • Improves Screenshot Feature
    • Feedback on success/failure is given via on-screen messages
    • Each press of the F10 key now results in only one image being saved
      • This is subject to the key press not continuing beyond the on-screen message display
  • Improves Memory Management
    • Multiple memory management improvements
  • Improves Build Process
    • RELEASE builds are further optimised
      • The MDEPKG_NDEBUG EDK2 functionality is leveraged to:
        • Reduce file size
        • Ensure consistent files on different builds
          • EDK2 otherwise only guarantees functional consistency
          • This now enforces additional structural consistency
          • Builds with different file paths will now be the same
    • Calls to ASSERT, and similar, are activated on DEBUG Builds
      • Failed ASSERT calls put RefindPlus into a Deadloop
    • Enables NOOPT Build Target
      • This is a debug build with misc compile time optimisation items disabled
      • Log Level 2 is only exposed on this build target
    • The REFIT_DEBUG define has been converted to a compiler option
      • The constant is no longer defined in global.h and instead set in RefindPlus.inf
      • This change removes the need for compile time edits to set build targets
      • The requirements are now managed transparently by the build process itself
    • The various *.inf files for filesystem drivers etc, have been standardised
      • These now follow a clearer standard format
  • Renames the ignore_previous_boot config option as transient_boot
    • This more accurately describes the feature.
      • The current boot selection is not saved, it becomes transient, but any previously saved boot is set as the default

  1. Added Alt-RefindPlus_x64-001302.AN package. This includes post release fixes for failure to boot on some machines.