Cambiar de OpenCore 0.6.9 a 0.7.0

En esta ocasión la redacción de las diferencias entre versiones ha sido difícil. Los autores de OpenCore han realizado numerosos cambios. Baste decir que se han publicado más de 60 compilaciones a lo largo del mes de mayo. Algunos de los cambios son novedades reales y requieren estudio y aprendizaje para entenderlos por completo. Con todo esto, OpenCore va mejorando y actualmente ha alcanzado una madurez que nada tiene que ver con su consideración como programa en fase beta.

Nota: no te pierdas el mensaje de vit9696 como cada vez que se publica una nueva versión de OpenCore, es la mejor forma de conocer los principales cambios y mejoras aplicados.

Por mi parte, animo a todos los usuarios a leer estas instrucciones en detalle para que su hackintosh funcione mejor cada vez con las modificaciones que OpenCore va recibiendo. Algunos usuarios solo están interesados ​​en los cambios del archivo config.plist para que la nueva versión esté lista y funcionando en poco tiempo. Este es el enfoque incorrecto porque hace que los errores sean más difíciles de comprender o corregir.

OpenCanopy continúa con su gran evolución y viene con muchos y grandes cambios. Algunas de estas mejoras requieren aprendizaje y solo serán utilizadas por un número limitado de usuarios y, sobre todo, por artistas diseñadores de temas e iconos. Las mejoras de la interfaz gráfica de OpenCore han sido enormes en las últimas versiones.

El texto está dividido en secciones:
- config.plist: rotación de pantalla, sabores (flavours), SIP y otras modificaciones.
- csrutil y SIP: se han añadido 2 nuevas herramientas para tener un manejo fácil de SIP desde el picker.
- OpenCanopy: nueva estructura de la carpeta Resources/Image, temas organizados por autor, nuevo sistema Flavour (iconos personalizados en Entries y Tools), etc.

config.plist

Rotación de pantalla

  • ProtocolOverrides > añadida la clave AppleEg2Info (Boolean): reemplaza el protocolo Apple EFI Graphics 2 con una versión incluida en OpenCore. Este protocolo permite a las versiones recientes de EfiBoot (10.15 en adelante) exponer la rotación de pantalla a macOS. Puede ser False.
  • NVRAM > Add > 7C436110-AB2A-4BBB-A880-FE41995C9F82 > añadida la clave ForceDisplayRotationInEFI (Number): define la rotación de pantalla. Puede ser 0 (sin rotación) o uno de los valores 90, 180, 270 para ajustar la rotación en grados. Sólo está habilitada si AppleEg2Info=True.

Flavour

  • Misc > Boot > PickerAttributes > añadido un nuevo valor bitmask 0x0080 — OC_ATTR_USE_FLAVOUR_ICON para habilitar flavours.
  • Misc > Entries > añadida la clave Flavour (String) para configurar iconos personalizados en Entries. Puede ser Auto.
  • Misc > Tools > añadida la clave Flavour (String) para configurar iconos personalizados en Tools. Puede ser Auto.

PlatformInfo

  • PlatformInfo > Generic > AdviseWindows ha sido reemplazada por AdviseFeatures (Boolean) para actualizar FirmwareFeatures (PlatformInfo > PlatformNVRAM y PlatformInfo > SMBIOS) con los bits soportados. Puede ser False.
  • Se ha añadido un nuevo bit a FirmwareFeatures: FW_FEATURE_SUPPORTS_APFS (0x00080000) Sin este bit no es posible instalar macOS en discos APFS. En la mayoría de los firmware UEFI recientes estos bits ya vienen activados.
    Nota: La mayoría de nosotros utilizamos solamente la sección Generic de PlatformInfo y no necesitamos instalar FirmwareFeatures o FirmwareFeaturesMask. Pero todos necesitamos reemplazar AdviseWindows con AdviseFeatures.

Misc > Security

Se ha añadido la clave AllowToggleSip (Boolean): si es True, activa la herramienta ToggleSIP que habilita o deshabilita la protección de integridad del sistema en el picker de OpenCore. Esto alternará la variable NVRAM csr-active-config entre 0 para SIP habilitado y un valor predeterminado para SIP deshabilitado (actualmente 0x26F).
Nota: se recomienda encarecidamente no tener el hábito de ejecutar macOS con SIP desactivado.
Nota: OpenCore usa 0x26F aunque csrutil disable en Big Sur tiene 0x7F como valor predefinido.
Para cualquier otro valor de csr-active-config que necesites utilizar, es posible configurar CsrUtil.efi como herramienta TextMode y definir en config.plist un valor diferente, por ejemplo utiliza Arguments=toggle 0x67 y TextMode=True para cambiar al valor predeterminado de SIP desactivado para macOS Catalina.
Es obligatorio descargar la nueva carpeta Labels incluida en OcBinaryData de Acidanthera. Esta carpeta ahora contiene 2 nuevas etiquetas SIPEnabled y SIPDisabled, sin ellas OpenCanopy falla y OC arranca en modo texto.

UEFI > Output

GopPassThrough ha cambiado su tipo de Boolean a String. Esta opción lleva el protocolo GOP a firmwares que no lo implementan. Los valores válidos son: Enabled (implementa GOP para todos los protocolos UGA), Apple (implementa GOP para protocolos que aceptan AppleFramebufferInfo) y Disabled (no implementa GOP). El valor Failsafe es Disabled. Esta opción requiere que ProvideConsoleGop sea True.

Utilidad de comprobación de memoria

Se ha añadido la clave Flavour para MemTest y se ha actualizado la configuración recomendada de memtest86 en los archivos sample.plist.
Esto sólo interesa a quienes utilizan MemTest en sus herramientas.
Para utilizar MemTest
- Descarga memtest86 de su sitio web
- Monta el archivo memtest86-usb.img. Verás una carpeta llamada EFI que contiene otra carpeta llamada BOOT, ábrela
- Sólo nos interesan 2 archivos: BOOX64.efi (es la aplicación para 64 bits) y unifont.bin
- Guarda estos 2 archivos en una carpeta llamada memtest86 y coloca esta carpeta dentro de la carpeta Tools de OpenCore
- La clave Path de esta herramienta en config.plist debe apuntar a la aplicación memtest86/BOOTX64.efi
- De esta forma, al hacer clic en el icono MemTest del picker se ejecuta la utilidad de comprobación de memoria.

Microsoft Hyper-V

Información de la CPU para Hyper-V: Kernel > Quirks > añadida la clave ProvideCurrentCpuInfo (Boolean): lleva información de la CPU al kernel. Este quirk actualmente lleva valores TSC and FSB correctos al kernel. Está pensado para máquinas virtuales Hyper-V. Puede ser False.

csrutil y SIP

  • Añadida la herramienta ToggleSIP en el picker dentro de las opciones de sistema: ToggleSIP (Enabled) / ToggleSIP (Disabled). Esta herramienta no existe en la carpeta Tools, está incorporada en OpenCore. El funcionamiento es muy simple. La herramienta es de estilo on/off. Cada vez que pulsas en su icono el estado cambia de Enabled a Disabled y viceversa. Si la clave NVRAM csr-active-config tiene asignado un valor (no está vacía), este es el ajuste que estará activo en cada arranque. De otra manera, la acción realizada sobre ToggleSIP se guarda entre arranques.
  • Añadida la herramienta CsrUtil.efi, similar a csrutil de Apple. Existe en la carpeta Tools. Es una herramienta de argumentos: se puede pasar un argumento en config.plist (actúa en cada arranque) configurándola con TextMode=True o se puede ejecutar interactivamente desde UEFI Shell. Los argumentos disponibles en modo texto son: clear, enable value, toggle value, status.

No es necesario tener ambas herramientas habilitadas en el picker. ToggleSIP funciona bien aunque CsrUtil.efi esté deshabilitada. Y viceversa.
Los valores de SIP que pueden afectar a las actualizaciones de macOS están recogidos en los documentos de configuración de OpenCore.

OpenCanopy

  1. Añadido soporte para rotación de pantalla (0, 90, 180, 270).
  2. El directorio Image ahora acepta subdirectorios.
  3. Se ha cambiado el tema de iconos preferido a Acidanthera\GoldenGate (antes llamado tema Modern).
  4. Se ha implementado el sistema Flavour para Entries y Tools.

Estructura del directorio Image

Se ha definido una estructura nueva para la carpeta Resources/Image, ahora puede contener subcarpetas con temas de iconos. Se ajusta en Misc > Boot > PickerVariant.

Un conjunto de iconos es una ruta a una carpeta incluida en \EFI\OC\Resources\Image conteniendo los iconos, en el formato Creator\Set. OcBinaryData contiene ahora estos conjuntos de iconos:

  • Acidanthera\GoldenGate - estilo macOS 11.
  • Acidanthera\Syrah - estilo macOS 10.10.
  • Acidanthera\Chardonnay - estilo macOS 10.4.

Existen 2 maneras de asignar valor a PickerVariant:

  • Enlaces predefinidos:
    1. Default: automáticamente selecciona Acidanthera\GoldenGate.
    2. Auto: automáticamente selecciona un conjunto de iconos basándose en el color de DefaultBackgroundColor: Acidanthera\GoldenGate si es Black y Acidanthera\Chardonnay si es Light Gray.
  • Conjuntos de iconos incluidos en su propia carpeta (como se ha mencionado más arriba) escribiendo el valor Autor\Nombredeltema (nombre de la carpeta con los iconos) en PickerVariant. Por ejemplo, tenemos 3 conjuntos de iconos creados por 3 autores diferentes:
    • EFI\OC\Resources\Image\Acidanthera\GoldenGate\Apple.icns, AppleRecv.icns, ApleTM.icns, BtnFocus.icns...
    • EFI\OC\Resources\Image\Blackosx\BsxM1\Apple.icns, AppleRecv.icns, ApleTM.icns, BtnFocus.icns...
    • EFI\OC\Resources\Image\Chris1111\Apple-BnW\Apple.icns, AppleRecv.icns, ApleTM.icns, BtnFocus.icns....

Dependiendo del valor de PickerVariant:

  1. PickerVariant=Default > GoldenGate es el tema elegido
  2. PickerVariant=Blackosx\BsxM1 > BsxM1 es el tema elegido
  3. PickerVariant=Chris1111\Apple-BnW > Apple-BnW es el tema elegido.

PickerVariant acepta \ o / como separador de rutas, ej. Blackosx\BsxM1 o Blackosx/BsxM1. Nota: los prefijos de los nombres de iconos han de ser eliminados.

Flavour: iconos personalizados en Entries y Tools

Hay un nuevo sistema de flavours (sabores) para definir iconos personalizados en Entries y Tools. Se ajusta en Misc > Boot > PickerAttributes.

Un nuevo valor 0x0080 — OC_ATTR_USE_FLAVOUR_ICON ha sido añadido a PickerAttributes. Podemos habilitar sabores cuando PickerAttributes=144 (0x90 hex) que es la suma de:
(0x0010 - OC_ATTR_USE_POINTER_CONTROL)
(0x0080 - OC_ATTR_USE_FLAVOUR_ICON) .
10 + 80 = 90 hex = 144 decimal.
Si se activa sabores, es conveniente desactivar: (0x0001 - OC_ATTR_USE_VOLUME_ICON).

Flavour es una nueva clave (String) añadida en Misc > Entries y Misc > Tools. Su valor es una sucesión de elementos separados por : (dos puntos) hasta un máximo de 5 elementos. El primer ítem tiene la prioridad más alta y el último ítem tiene la más baja.
Por defecto, Flavour=Auto.
Cuando Flavour tiene un valor personalizado en una entrada o en una herramienta, OpenCanopy busca en la carpeta del tema activo el icono cuyo nombre coincida con el valor de Flavour. Si no existe un icono cuyo nombre coincida con el primer ítem de Flavour, se busca otro cuyo nombre coincida con el segundo ítem y así sucesivamente. Si no existen iconos con alguno de los nombres definidos en Flavours, OpenCanopy selecciona el icono por defecto que se corresponda con el tipo de entrada o herramienta.

Un ejemplo de Flavour podría ser Windows10:Windows en una entrada personalizada para un sistema con Windows 10. Si hay un icono Windows10.icns, este es el que se muestra en la entrada pero, si no existe, se busca un icono llamado Windows.icns y, si este tampoco existe, se carga el icono predeterminado para Entries que es HardDrive.icns. De esta forma es más sencillo configurar iconos personalizados para entradas y herramientas, simplemente hay que incluir los iconos en la carpeta del tema y ajustar la clave Flavour.

Ejemplo: ¿Cómo ajustar Flavours para Big Sur, Catalina y Windows 10?

  1. Escribe el valor 144 (0x90 hex) en PickerAttributes.
  2. Coloca los iconos necesarios en la carpeta del tema. En este ejemplo vamos a utilizar Apple11.icns + ExtApple11.icns (Big Sur), Apple1015.icns + ExtApple1015.icns (Catalina) y Windows10.icns + ExtWindows10.icns. Si faltan los iconos con prefijo Ext no funciona, al menos en las pruebas que yo he realizado.
  3. Las entradas de macOS sólo necesitan los iconos, nada más; OpenCore configura para macOS su propio sabor automáticamente y elegirá el icono adecuado según el valor de PickerVariant; de esta forma es posible tener iconos diferentes para versiones diferentes del sistema operativo.
  4. Las entradas de Windows necesitan Flavour=Windows10:Windows.

Nota: Los autores de Opencore tienen la intención de preparar una lista de herramientas lo suficientemente comunes de forma que los artistas de iconos y temas puedan aportar iconos específicos para ellas, por ejemplo ToggleSIP.icns. Algunos bootloaders bien conocidos (OpenCore por supuesto, Grub2, etc.) también tienen asignado automáticamente su propio sabor de forma que la clave Flavour permitirá mostrar un icono personalizado (si existe) para esos elementos.

¿Hay que utilizar Flavour en todos los casos? Respuesta breve: no.

  1. macOS no requiere la propiedad Flavour en config.plist porque macOS (incluidas las versiones) es detectado por OpenCore y el icono correcto es seleccionado automáticamente.
  2. La propiedad Flavour ha de ser utilizada cuando OpenCore no elige automáticamente el icono para un elemento, específicamente entradas o herramientas.
  3. No hay necesidad de crear una entrada para aplicar un sabor; si necesitas aplicar un sabor y no hay una entrada personalizada, debes usar el método del archivo .contentFlavour.
  4. No necesitas usar Flavour en todos los casos, por lo general los temas y los conjuntos de iconos son suficiente para personalizar el picker a tu gusto, reservando Flavour para usos más específicos.

.contentFlavour file

Otra forma de tener sabores es colocando un archivo .contentFlavour junto al bootloader del sistema operativo. esta es la opción indicada cuando este sistema operativo no tiene una entrada propia en config.plist.
Por ejemplo, para un sistema Windows el archivo .contentFlavour ha de estar colocado en la carpeta /EFI/Microsoft/Boot/ de la partición EFI de Windows. El contenido de .contentFlavour es igual que el de la clave Flavour, Windows10:Windows, asumiendo que hay un icono Windows10.icns en la carpeta del tema activo.
Es otra manera de tener sabores pero más compleja que usando la propiedad Flavour en una entrada.

Algoritmo utilizado para determinar el sabor

  • Para una herramienta, el valor se lee desde la clave Flavour.
  • Si Flavour=Auto y no hay archivo .contentFlavour, el sabor para esta entrada se elige en base al tipo de entrada (ej. Windows automáticamente obtiene sabor Windows).
  • Para una entrada detectada automáticamente por OpenCore, se lee desde el archivo .contentFlavour junto al bootloader, si existe.
  • Si existe .VolumeIcon.icns (colocado en la raíz del volumen Preboot en macOS o en la raíz del volumen principal para otros sistemas) esto tiene precedencia sobre el archivo .contentFlavour.
  • Para una entrada personalizada:
    • se lee desde el archivo .contentFlavour junto al bootloader si Flavour es Auto
    • en cualquier otro caso se lee desde la clave Flavour.

Nota: para comprender mejor la característica nueva de los sabores, es recomendable leer el texto de Mike Beaton definiendo listas de sabores.

Kexts

Se recomienda cambiar a las versiones nuevas de las kexts que han sido modificadas y actualizadas:

  • RestrictEvents 1.0.2
  • AppleALC 1.6.1
  • NVMeFix 1.0.8
  • VirtualSMC 1.2.4
  • BrightnessKeys 1.0.2
  • WhateverGreen 1.5.0
  • SidecarFixup 1.0.1
  • BrcmPatchRAM 2.5.9
  • MacHyperVSupport 0.5
  • gfxutil 1.81b.

Reemplaza solamente las que utilizas habitualmente.
Nota: AppleALC se acompaña de una nueva variante llamada AppleALCU.kext destinada a sistemas que tienen audio digital (USB) solamente.

Deja una respuesta

No dejes en blanco el campo Nombre (puedes escribir un apodo).