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, 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 Flavour.
  • 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 configurar 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. 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 tienen MemTest entre las 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 Flavour 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 Flavour 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 Flavour, 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 Flavour, 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 Flavour para Big Sur, Catalina, Monterey y Windows?

  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), Apple12.icns + ExtApple12.icns (Monterey), Apple10_15.icns + ExtApple10_15.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.

Gracias a Blackosx por los bonitos iconos de discos con imágenes.

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 Flavour; si necesitas aplicarlo 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 Flavour 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 Flavour pero más compleja que usando la propiedad Flavour en una entrada.

Algoritmo utilizado para determinar Flavour

  • 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 Flavour, es recomendable leer el texto de Mike Beaton.

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.

10 comentarios en «Cambiar de OpenCore 0.6.9 a 0.7.0»

  1. 7C436110-AB2A-4BBB-A880-FE41995C9F82: ForceDisplayRotationInEFI 32-bit integer defining display rotation. Can be 0 for no rotation or any of 90, 180, 270 for matching rotation in degrees.
    Sigo preguntándote, como sabes tengo un canal donde realizo los vídeos intentando explicar de forma sencilla cómo funcionan los hack.
    En esto no me quedó claro el tema aunque creo que se refiere al inicio de OpenCore, el menú de arranque en monitor por ejemplo en horizontal ya sea arranque GUI o de texto.

    Responder
    • Es así, la rotación de la pantalla desde el menú de OpenCore. Si trabajas con el monitor en vertical, hasta ahora OpenCore arrancaba “de lado” pero con esta opción ya es posible que OpenCore arranque con la misma rotación que macOS.

      Responder
        • Me parece muy bien.
          Te hago una anotación. ForceDisplayRotationInEFI define el ángulo de rotación de la pantalla en grados (0/90/180/270) pero, para que pueda tener lugar, es recomendable activar True AppleEg2Info en UEFI >> Output.
          En la documentación de OpenCore se puede leer:

          AppleEg2Info
          Type: plist boolean
          Failsafe: false
          Description: Replaces the Apple EFI Graphics 2 protocol with a builtin version.
          Note 1: This protocol allows newer EfiBoot versions (at least 10.15) to expose screen rotation to macOS. Refer to ForceDisplayRotationInEFI variable description on how to set screen rotation angle
          .

        • Gracias, también hay una anotación para equipos no compatibles, el vídeo ya esta publicado, gracias por aclararme las dudas.

  2. Hola, amigo perez987, una consulta, tú podrías ayudarme a poner el modo GUI en OpenCore 0.7.0 para poder botear desde Windows10, ya que es algo complicado OpenCore, viniendo de Clover jajaja que es un poco más simple de configurar.

    De antemano, muchas gracias.

    Responder
    • Antes de nada una duda. ¿Me dices que quieres poner GUI, picker en modo gráfico, porque ahora lo tienes en modo texto? ¿O ya lo tienes en modo gráfico con iconos y lo que quieres es que se muestre el icono de Windows y arranque desde allí? Ambas opciones tienen que ser fáciles de implementar. Como hay más de una forma de hacerlo y me dices que eres recién llegado a OpenCore, responde primero mi duda y después hablamos. Y busca una manera de subir a algún sitio tu archivo config.plist para que pongas aquí su enlace de descarga y yo lo pueda estudiar.

      Responder
      • Te explico, cuando te hice la pregunta estaba buscando la manera de cómo tener el boot menu de OpenCore en modo gráfico ya que solo estaba en modo texto. Bueno, conseguí entrar en modo GUI OpenCore y escoger el icono correspondiente al sistema con el cual arrancar. Lo conseguí actualizando los Drivers de OpenCore 0.7.0 por los de la versión 0.7.1 y me funcionó el arranque gráfico. El problema que tenía era que no pude lograr arrancar Windows 10 desde OpenCore, estando allí en el menú para seleccionarlo y me tiraba a una pantalla azul de Windows donde salía el siguiente RECUPERACION El equipo o dispositivo necesita reparación
        Código de error 0xc000000d.
        No logré dar con alguna solución del por qué me producía ese error al seleccionar Windows al arrancar. Solo podía directamente de la BIOS de mi equipo F12 y escoger WindowsBootManager y solamente así lograba arrancar Windows sin problemas.
        Muchas gracias por tu respuesta y tu tiempo, de igual forma si tienes alguna idea de por qué me sucede ese error te agradecería si me ayudaras a cómo resolverlo por favor.

        Responder
        • 1. Cuando arranques Windows, haz un chequeo de disco para comprobar que no tiene errores.
          2. En el menú gráfico de OpenCore, el icono de Windows está antes o después de macOS?
          3. Dime en el archivo config.plist de tu carpeta EFI/OC el valor que tienes puesto a la propiedad Misc > Security > ScanPolicy.

Responder a pol