Cambiar de OpenCore 0.6.5 a 0.6.6

LauncherOption en lugar de Bootstrap.efi: en OpenCore 0.6.6 hay un cambio importante respecto a las versiones anteriores. Hasta ahora OpenCore era un driver EFI y necesitaba un cargador. Bootstrap.efi o BOOTx64.efi realizaban esta función. Pero ahora OpenCore es una aplicación y ya no necesita un cargador. Ello mejora la compatibilidad con firmwares UEFI.

El usuario final notará este cambio en la desaparición de la carpeta Bootstrap y la substitución en config.plist de la clave Misc > Security > BootProtect por las claves LauncherOption y LauncherPath, ambas en Misc > Boot.

En la guía de Dortania explican este cambio pero en resumen el proceso puede ser similar a este:

  • Entrar en la sección Boot de la configuración de BIOS para borrar las entradas que contengan la palabra OpenCore, colocando el disco de macOS como primera opción
  • ResetNVRAM en el menú de OpenCore
  • Preparar la carpeta EFI de OpenCore 0.6.6
  • Configurar LauncherOption y LauncherPath
    • LauncherOption=Disabled
    • LauncherPath= Default
  • Reiniciar volviendo a eliminar las entradas OpenCore en BIOS y limpiando NVRAM.

A partir de aquí hay 2 maneras de funcionar.

  • LauncherOption=Disabled (equivale a BootProtect=None en OpenCore 0.6.5): el menú de arranque del ordenador muestra los discos conectados pero OpenCore no graba una entrada propia en BIOS
  • LauncherOption=Full (equivale a BootProtect=Bootstrap en OpenCore 0.6.5): OpenCore graba una entrada en BIOS apuntando directamente a OpenCore.efi y el menú de arranque del ordenador muestra OpenCore y los discos conectados.

LauncherOption=Full ha de ir acompañado por RequestBootVarRouting=True en UEFI > Quirks .

Cambios en config.plist

  • Kernel > Quirks > se añade SetApfsTrimTimeout (number) para mejorar el comando trim en discos APFS, puede ser -1
  • Misc > Boot > se añade LauncherOption (string) and LauncherPath (string)
  • Misc > Security > se elimina BootProtect
  • Platform > Generic > se añade MaxBIOSVersion (boolean), para ser utilizada en modelos obsoletos de Mac, puede ser False
  • Platform > se añade UseRawUuidEncoding (boolean) para elegir el estilo de codificación de SMBIOS UUID, puede ser False
  • UEFI > Audio > PlayChime (string) no puede estar vacía
  • UEFI > Input > KeySupportMode (string) no puede estar vacía, el valor por defecto as Auto
  • UEFI > Input > PointerSupportMode (string) no puede estar vacía si PointerSupport está activado
  • UEFI > Quirks > se añade DisableSecurityPolicy (boolean) para deshabilitar varias medidas de seguridad en el firmware eliminando la posibilidad de tener Secure Boot. Puede ser False. No debe ser True si se utiliza UEFI Secure Boot.

Cambios en archivos y carpetas

  • La carpeta Bootstrap ha sido eliminada.
  • El driver VBoxHfs.efi ha sido reemplazado por OpenHfsPlus.efi derivado del driver propietario de Apple, todavía no alcanza el rendimiento de HfsPlus.efi pero supera a VBoxHfs.efi.
  • El driver OpenPartitionDxe.efi ha sido añadido incorporando el esquema de particiones de Apple (Apple Partition Management scheme) para dar soporte a sistemas antiguos (mac OS 10.8 y 10.9).
  • La herramienta ocvalidate ha sido mejorada en las secciones Misc, NVRAM y UEFI
  • El driver OpenCanopy.efi ha sido mejorado.

OpenCanopy

Se han añadido 2 iconos, Left.icns y Right.icns, sin ellos el picker se muestra en modo texto. También se ha añadido la posibilidad de utilizar una imagen como fondo, la imagen ha de estar en formato icns con unas especificaciones de tamaño y calidad. La imagen de fondo es opcional.

En Misc > Boot la clave PickerVariant puede tener diferentes valores (Auto, Default, Old, Modern) y la carpeta Images puede tener sets de iconos de diferentes grupos: sin prefijo (se usan con el valor Default), con el prefijo Modern (tienen diseño más actual) y con el prefijo Old (diseño más antiguo).
La opción Auto de PickerVariant elige el set de iconos dependiendo de la variable DefaultBackgroundColor de NVRAM, para Light Gray elige el prefijo Old, para cualquier otro color elige el set sin prefijo.
Aparte de esas opciones, puedes darle a PickerVariant otro valor cualquiera a condición de que los iconos tengan ese valor como prefijo.
Acidanthera tiene su propio paquete para utilizar con OpeCanopy pero hay 2 programadores, Blackosx y Chris1111, que tienen en sus sitios de GitHub varios temas bien diseñados.

En ocasiones vemos el icono Tool.icns en lugar de Shell.icns para la herramienta OpenShell.efi. Esto tiene que ver con el valor de la clave Name de la herramienta en config.plist:

1.- Si añades OpenShell.efi desde ProperTree (Cmd + R o Cmd + Shift + R) escribe OpenShell.efi en el nombre de la herramienta

2.- Si añades OpenShell.efi desde OpenCore Configurator escribe OpenShell en el nombre de la herramienta

3.- El archivo Sample.plist de OpenCore tiene UEFI Shell como nombre de la herramienta, esta es la única manera de que el icono de OpenShell.efi sea Shell.icns en lugar de Tool.icns.

Para quienes desean saber la causa de este comportamiento, está en el código de OpenCore (gracias a Blackosx por esta información). El archivo OcBootManagementLib.h define los textos que se muestran al usuario.

/*OpenCorePkg/Include/Acidanthera/Library/OcBootManagementLib.h*/
/**
  Default strings for use in the interfaces.
**/
#define OC_MENU_BOOT_MENU            L"OpenCore Boot Menu"
#define OC_MENU_RESET_NVRAM_ENTRY    L"Reset NVRAM"
#define OC_MENU_UEFI_SHELL_ENTRY     L"UEFI Shell"

El archivo BootPicker.c define el icono que se mostrará. En él se define que el icono Shell solamente se vea si el nombre de la herramienta es UEFI Shell.

/*OpenCorePkg/Platform/OpenCanopy/Views/BootPicker.c*/
else if (StrStr (Entry->Name, OC_MENU_UEFI_SHELL_ENTRY) != NULL) {
SuggestedIcon = &GuiContext->Icons[ICON_SHELL][IconTypeIndex];

Nota: recuerda que, si arrancas Windows desde OpenCore, para impedir que OpenCore inyecte valores SMBIOS hay que actuar sobre estas claves de config.plist:

  • Kernel > Quirks > CustomSMBIOSGuid > True (por defecto es False)
  • PlatformInfo > UpdateSMBIOSMode > Custom (por defecto es Create).

Como ayuda extra, aquí tienes mi archivo config.plist de OpenCore 0.6.6 con los números de serie modificados.

4 comentarios en «Cambiar de OpenCore 0.6.5 a 0.6.6»

  1. Buenas tardes, estoy en opencore 0.6.9 pero no me deja iniciar en windows desde el menú de opencore, me dice que windows está dañado pero no es así ya que si lo inicio normalmente arranca sin problemas, ya modifiqué el config.plist como indicas pero sigue igual. Me podrías ayudar, qué puede estar mal? Gracias.

    Responder
  2. Perfecto, me ayudó mucho que con este cambio de versión, estaba perdido, a ver si encuentro un tema que me guste.

    Gracias como siempre.

    Responder
    • Gracias por el comentario. En los sitios de Blackosx y Chris1111 (y otros) tienes bastantes temas para elegir. Recuerda que para OC 0.6.6 han de tener Left.icns y Right.icns, que antes no se utilizaban.

      Responder

Responder a MiguelG Cancelar la respuesta