Jump to content

Registro de Cambios de Clover


Maniac10
 Share

15 posts in this topic

Recommended Posts

Este es un hilo dedicado a traducir todos los cambios importantes que se vayan publicando en Clover Change Explanations.
 
Revisión 2759
 
Nueva función CustomLogo. Activa el dibujado del logo durante el arranque.

<key>Boot</key>
<dict>
   <key>CustomLogo</key>
   <true/> o <false/>
   o <string>Apple/Alternate/Theme/None/Path</string> 
   o <data>PNG/BMP/ICNS base64 data</data>
</dict>

Ofrece varias alternativas:

  • true - Usa el estilo predeterminado de arranque de Apple.
  • false - Desactiva el logo personalizado.
  • Apple - Usa el logo de Apple en gris sobre fondo gris.
  • Alternate - Usa el logo de Apple en blanco sobre fondo negro.
  • Theme - Usa el estilo definido por el tema gráfico - AUN NO IMPLEMENTADO.
  • None - Sin logo, solo fondo de color, gris si no se especifica en Custom Entries.
  • Path - La ruta al archivo de imagen a usar.
  • <data> - Datos de una imagen PNG, BMP, o ICNS convertida a base64.

Si no se especifica ninguna de las opciones entonces la pantalla de arranque se dibujará solo para Yosemite 10.10 o mayores, para preservar compatibilidad con versiones anteriores.
La llave CustomLogo también puede ser usada en GUI/Custom/Entries en conjunto con BootBgColor para lograr distintas pantallas para cada sistema operativo. Sin embargo, el protocolo de salida de gráficos no es modificado de ninguna manera, así que es posible que el sistema operativo sobre-escriba la pantalla y logo al arrancar.

  • Like 2
Link to comment
Share on other sites

Esta parte esta todavía en sus primeras etapas de desarrollo y puede que no funcione correctamente para todos, pero creo que el objetivo final es ofrecer la posibilidad de sobre-escribir la pantalla de arranque de todo sistema operativo que lo permita. Si semejante tarea es posible no se sabe aun, habrá que esperar a ver que sucede y reportar bugs a medida de lo posible para ayudar a darle forma.

Claro que todo esto es opcional y puedes elegir si lo quieres activar, incluso es posible personalizar la apariencia de cada entrada "custom" así tienes pantallas distintas para cada OS o usar la gráfica definida por el tema gráfico de Clover (no implementado aun).

Link to comment
Share on other sites

  • 2 weeks later...

Revisión 2782

 

Agregado controlador "Apple Image Codec" para imágenes PNG simples.

 

Por ahora, si copias el controlador en el directorio drivers64 o drivers64UEFI de Clover, puedes usar BootXChanger para cambiar el logo y color de fondo de la pantalla de arranque. Esta aplicación solo agrega "Background Color" y "Boot Logo" en /Librería/Preferences/SystemConfiguration/com.apple.Boot.plist. El cambio de logo y color de fondo funciona en las primeras dos etapas de arranque —boot.efi inicialmente y luego la carga inicial del kernel—, pero no funciona en la tercer etapa cuando toma control el controlador gráfico.

 

 

Requiere la entrada Boot->CustomLogo como "false" en el config.plist.

 

AppleImageCodec.efi.zip


Revisión 2789

 
Implementada la función ForceHPET usada en Chameleon desde 2008 pero ausente en Clover porque nunca fue requerido por los usuarios.
<key>Devices</key>
<dict>
   <key>ForceHPET</key>
   <true/>
Y en el registro de arranque de Clover se puede observar su activación:
16:231  0:014  HPET is disabled, trying to enable...
16:245  0:014  HPET is enabled
Link to comment
Share on other sites

Revisión 2793
 
Inicializador de controlador de Audio.
 
Algunos usuarios tienen problemas de inicialización del audio luego de un arranque en frío, pero que funciona luego de un reinicio o al despertar del reposo (incluso en Windows). Este parche está basado en un método aplicado en versiones recientes de VoodooHDA para solucionar el mismo problema. Este parche funciona en el arranque temprano, por lo cual afectará también a Windows.
 

<key>Devices</key>
<dict>
  <key>Audio</key>
  <dict>
    <key>ResetHDA</key>
    <true/>
Link to comment
Share on other sites

Revisión 2797
 

Desde ahora puede usar todas las funciones existentes en la sección KernelAndKextPatches en una entrada custom, de esta manera puede selectivamente aplicar parches dependiendo del sistema operativo a usar.

 

NOTA: Si bien el cambio se aplicó en la revisión 2797, es totalmente funcional solo desde la revisión 2812.

 

 

 

 

Revisión 2814

 

 

Forzar la carga de kexts (y plugins) del sistema OS X a iniciar para que pueda ser parchado.

<key>KernelAndKextPatches</key>
<dict>
   <key>ForceKextsToLoad</key>
   <array>
      <string>\System\Library\Extensions\AppleHDA.kext</string>
   </array>
</dict>
Link to comment
Share on other sites

  • 2 weeks later...

Revisión 2839

 

Cambios en Custom Entries/Legacy/Tools:

  • Ahora puede activar/desactivar una entrada con "Disabled". Si se habilita, la entrada — no el volumen relacionado — será ignorada.
  • Agregada una nueva función de la clave "Hidden". Si se habilita, la entrada se mantiene oculta pero puede des-ocultarse al presionar F3. Si se define como "Always" se mantendrá oculta siempre, incluso al presionar F3.

Mas información en la Wiki.

Link to comment
Share on other sites

  • 4 months later...

Revisión 2884

 

Nueva opción LastBootedVolume para DefaultVolume, que forza el volumen predeterminado de arranque al último volumen arrancado.

 

 

Revisión 3041

 

Añadido soporte nativo para placas de video Intel HD 5100 (0x0A2E) y 5200 (0x0D26).

 

 

Revisión 3051

 

Desde la revisión 3051 Clover puede detectar la dirección MAC de su dispositivo ethernet y usarlo como ROM. Para arranque legacy debe especificar la clave ROM como UseMacAddrX.

<key>RtVariables</key>
<dict>
    <key>ROM</key>
    <string>UseMacAddr0</string>

Revisión 3130

 

Nuevo parche KernelHaswellE que elimina el bloqueo por verificación de compatibilidad con CPUs Haswell-E.

<key>KernelAndKextPatches</key>
<dict>
    <key>KernelHaswellE</key>
    <false/>
Link to comment
Share on other sites

  • 8 months later...

Revisión 3250

 

Se requieren nuevas variables para El Capitan y Yosemite.

<key>RtVariables</key>
<dict>
    <key>CsrActiveConfig</key>
    <string>0x67</string>
    <key>BooterConfig</key>
    <string>0x28</string>
</dict>

Los bits de CsrActiveConfig se pueden ver en este post: http://www.insanelymac.com/forum/topic/284656-clover-general-discussion/?p=2170928

 

 

Para BooterConfig:

#define kBootArgsFlagRebootOnPanic    (1 << 0)
#define kBootArgsFlagHiDPI            (1 << 1)
#define kBootArgsFlagBlack            (1 << 2)
#define kBootArgsFlagCSRActiveConfig	(1 << 3)
#define kBootArgsFlagCSRPendingConfig	(1 << 4)
#define kBootArgsFlagCSRBoot          (1 << 5)
#define kBootArgsFlagBlackBg          (1 << 6)
#define kBootArgsFlagLoginUI          (1 << 7)

Los efectos en "El Capitan" serán inconclusos hasta tener acceso al código fuente.

 

EDIT: la aplicación KCPM Utility Pro permite editar ambos parámetros e inyectarlos por NVRAM o el config.plist.

Edited by Maniac10
Link to comment
Share on other sites

  • 3 months later...

Revisión 3262

 

Inyección Arbitraria de Dispositivos

 

Desde la rev 3262 se incluye un nuevo método para inyectar propiedades de dispositivos. Este ofrece un control absoluto sobre las propiedades que desee inyectar en los dispositivos y permite inyectar propiedades en dispositivos no-estándar.

 

Para su implementación primero debe observar un boot.log (bdmesg > Desktop/bootlog.txt) o preboot.log (F2 en la interfaz de Clover). Localice en este la lista de dispositivos PCI:

4:432  0:000  PCI (00|00:00.00) : 8086 2E30 class=060000
4:432  0:000  PCI (00|00:02.00) : 8086 2E32 class=030000
4:432  0:000  Found GFX model=Unknown
4:432  0:000  PCI (00|00:02.01) : 8086 2E33 class=038000
4:432  0:000  PCI (00|00:1B.00) : 8086 27D8 class=040300
4:432  0:000  PCI (00|00:1C.00) : 8086 27D0 class=060400
4:432  0:000  PCI (00|01:00.00) : 10DE 01D1 class=030000
4:432  0:000  Found NVidia model=Gigabyte GeForce 7300 LE
4:432  0:000  PCI (00|00:1D.00) : 8086 27C8 class=0C0300
4:432  0:000  PCI (00|00:1D.01) : 8086 27C9 class=0C0300
4:432  0:000  PCI (00|00:1D.02) : 8086 27CA class=0C0300
4:432  0:000  PCI (00|00:1D.03) : 8086 27CB class=0C0300
4:432  0:000  PCI (00|00:1D.07) : 8086 27CC class=0C0320
4:432  0:000  PCI (00|00:1E.00) : 8086 244E class=060401
4:432  0:000  PCI (00|02:05.00) : 10EC 8167 class=020000
4:432  0:000  PCI (00|00:1F.00) : 8086 27B8 class=060100
4:432  0:000  PCI (00|00:1F.02) : 8086 27C0 class=01018F
4:432  0:000  PCI (00|00:1F.03) : 8086 27DA class=0C0500
En este ejemplo inyectaremos las propiedades para la placa ethernet y video NVidia.

 

Observe por ejemplo la linea:

4:432  0:000  PCI (00|02:05.00) : 10EC 8167 class=020000
class= 020000 - Dispositivo LAN

VendorID= 10EC - Fabricante Realtek

DeviceID= 8167 - Modelo Realtek 8167/8169/8110 Gigabyte Ethernet Controller

 

Está en el bus PCI (dígitos verdes):

Bus = 02

Device = 05 

Function = 00

 

Esta localización es única para cada dispositivo en su PC. Puede tener 2 placas de video idénticas pero su localización PCI será diferente.

 

Ahora debemos crear en el config.plist, en la sección "Devices", un array llamado "Arbitrary" con 2 ítems, uno por dispositivo que quiera inyectar:

	<key>Devices</key>
	<dict>
		<key>Arbitrary</key>
		<array>
			<dict>
				<key>PciAddr</key>
				<string>02:05.00</string>
				<key>Comment</key>
				<string>Realtek LAN 8167</string>
				<key>CustomProperties</key>
				<array>
					<dict>
						<key>Key</key>
						<string>model</string>
						<key>Value</key>
						<string>Realtek 8169 Gigabit Ethernet Controller</string>
					</dict>
					<dict>
						<key>Key</key>
						<string>built-in</string>
						<key>Value</key>
						<data>AQAAAA==</data>
					</dict>
				</array>
			</dict>
			<dict>
				<key>PciAddr</key>
				<string>01:00.00</string>
				<key>Comment</key>
				<string>Nvidia Geforce card in PCIe slot</string>
				<key>CustomProperties</key>
				<array>
					<dict>
						<key>Key</key>
						<string>model</string>
						<key>Value</key>
						<string>Gigabyte GeForce 7300 LE</string>
					</dict>
					<dict>
						<key>Key</key>
						<string>AAPL,boot-device</string>
						<key>Value</key>
						<data>AQAAAA==</data>
					</dict>
				</array>
			</dict>
		</array>
NOTA: Este ejemplo de inyección de NVidia no es completamente funcional, está simplificado.

 

Las claves deben ser <string>

Los valores pueden ser <string>, <integer> o <data>.

 

Esta manera de inyectar propiedades de video lleva mucho mas trabajo que usando Inject/NVidia=true, por lo cual solo se recomienda a usuarios expertos. Pero a diferencia de los métodos de inyección automáticos de Clover, un usuario puede inyectar lo que desee, por ejemplo para 2 placas similares se puede definir AAPL,boot-device solo para una. 

 

Tenga en cuenta que la presencia de la sección "Arbitrary" cancelará todo sistema de inyección anterior. Si usa el método "Arbitrary" y "FakeID" en conjunto, este último solo afectará al DSDT. Las funciones "Inject"->… no funcionarán para todos los dispositivos y "AddProperies" no hará nada.

Link to comment
Share on other sites

  • 5 months later...

Revisión 3281

 
Clover ahora carga kexts desde 2 carpetas, primero desde la carpeta Other y luego de la específica para la versión de OS X (10.10, 10.11, etc).
 
 
Revisión 3321
 
Se añadió un ítem al menú de Clover para definir en el arranque que *-platform-id usar. Sirve tanto para ig-platform-id como snb-platform-id.

 
Revisión 3325

 
Acelera levemente el arranque al deshabilitar el escaneo de entradas Linux.

        <key>Scan</key>
        <dict>
            <key>Linux</key>
            <false/>

 
Revisión 3327
 
Desactivación de parches binarios.
 
Ahora puedes Activar/Desactivar de manera sencilla cada parche de KextToPatch.

  <dict>
    <key>Disabled</key>
    <false/>
    <key>Find</key>
    <data>
    QcYGAEiLu2g=
    </data>
    <key>Name</key>
    <string>AppleHDA</string>
    <key>Replace</key>
    <data>
    QcYGAUiLu2g=
    </data>
  </dict>

Revisión 3328

 
Función extendida a los parches DSDT.

  <dict>
      <key>Disable</key>
      <true/>
      <key>Find</key>
      <data>RXh0ZXJuYWw=</data>
      <key>Name</key>
      <string>AppleAHCIPort</string>
      <key>Replace</key>
      <data>SW50ZXJuYWw=</data>
  </dict>

 
Revisión 3365-3368

 
Introducción de una nueva tabla tipo 133 para inyectar la propiedad platform-feature en el registro. Usado por El Capitan.

    <key>SMBIOS</key>
    <dict>
        <key>PlatformFeature</key>
        <integer>3</integer>

 

Revisión 3399

 
Soluciones de video varias

BootDisplay: para el problema de la pantalla de arranque de segunda etapa (2nd stage) o pantalla negra antes del login. Rango del valor: (0 - (puertos - 1))

<key>Graphics</key>
<dict>
	<key>BootDisplay</key>
	<integer>1</integer>
</dict>

Ahora es posible inyectar un GPU integrado de Intel incluso si no se establece como primario en la BIOS usando un framebuffer vacío (mas información aquí). 

<key>Graphics</key>
<dict>
	<key>Inject</key>
	<dict>
		<key>Intel</key>
		<true/>
	</dict>
</dict>

 
Revisión 3456
 
Introducido en 2012 (pero inapropiadamente documentado), permite definir propiedades particulares para múltiples tarjetas de video, ya sean del mismo fabricante (AMD o NVIDIA) o mixtas.

<key>Graphics</key>
<dict>
	<key>NVIDIA</key>
	<array>
		<dict>
			<key>Model</key>
			<string>Quadro FX 380</string>
			<key>IOPCIPrimaryMatch</key>
			<string>0x10DE0658</string>
			<key>VRAM</key>
			<integer>256</integer>
			<key>VideoPorts</key>
			<integer>2</integer>
			<key>LoadVBios</key>
			<true/>
		</dict>
		<dict>
			<key>Model</key>
			<string>YOUR_SECOND_CARD_NAME</string>
			<key>IOPCIPrimaryMatch</key>
			<string>YOUR_SECOND_CARD_ID</string>
			<key>IOPCISubDevId</key>
			<string>YOUR_SECOND_CARD_SUB_ID</string>
			<key>VRAM</key>
			<integer>YOUR_SECOND_CARD_VRAM_SIZE</integer>
			<key>VideoPorts</key>
			<integer>YOUR_SECOND_CARD_PORTS</integer>
			<key>LoadVBios</key>
			<true/>
		</dict>
	</array>
	<key>ATI</key>
	<array>
		<dict>
			<key>Model</key>
			<string>ATI Radeon HD6670</string>
			<key>IOPCIPrimaryMatch</key>
			<string>0x6758</string>
			<key>IOPCISubDevId</key>
			<string>0x1342</string>
			<key>VRAM</key>
			<integer>2048</integer>
		</dict>
	</array>
</dict>

Revisión 3536

 

Añadido mensaje de F1 - Help en la esquina inferior izquierda en la interfaz de Clover. Se puede ajustar en cada theme.plist.

<key>Theme</key>
<dict>
	<key>Components</key>
	<dict>
		<key>Help</key>
		<false/>
	</dict>
</dict>

Añadido sub-menú "System Variables" en la interfaz de Clover. Contiene BooterConfig y CsrActiveConfig. Si habilita ExposeSysVariables se mostrarán mas entradas como MLB, ROM, CustomUUID e InjectSystemID.

<key>SystemParameters</key>
<dict>
	<key>ExposeSysVariables</key>
	<true/>
</dict>

post-158318-0-18853400-1466376556_thumb.png post-158318-0-54056000-1466376560_thumb.png

Link to comment
Share on other sites

  • 3 weeks later...

Revisión 3594

 

Nueva propiedad MatchOS en KextsToPatch permite aplicar los parches dependiendo de la versión de macOS detectada, desarrollado por Micky1979.

            <dict>
                <key>Find</key>
                <data>SGVhZHBob25lcwA=</data>
                <key>Name</key>
                <string>VoodooHDA</string>
                <key>Replace</key>
                <data>VGVsZXBob25lcwA=</data>
                <key>Disabled</key>
                <false/>
                <key>MatchOS</key>
                <string>10.11.6,10.12</string>
            </dict>

Puede especificar versiones generales para aplicar el parche a todas sus sub-versiones. Ej: 10.9 incluirá 10.9.1, 10.9.2, etc. En cambio si se especifica una sub-versión (10.11.6) solo se aplicará a esta.

 

Si la clave no esta presente se aplica el parche a todo OS (sistema anterior) y si la clave existe pero esta vacía se desactiva el parche.

 

Discusión sobre el tema desde el post #880.

 

 

 

Revisión 3586

 

 

Ajustes para permitir un tema visual similar al estilo BootCamp de Macs reales, implementado por Needy.

 

En la sección Theme del archivo theme.plist del tema, añadir la entrada:

<key>BootCampStyle</key>
<true/>

Y en la sección Selection puede especificar una imagen para el indicador (flecha debajo del texto). Debe ser de 52x52 pixeles.

<key>Indicator</key>
<string>selection_indicator.png</string> 

* La imagen debe colocarse en la raíz de la carpeta del tema.

* Esta implementación funciona solamente en menús estilo horizontal.
 

 

Post inicial y discusión desde el comentario #485.

 

 

post-158318-0-80594700-1468009063_thumb.jpgpost-158318-0-22233300-1468009068_thumb.jpg
Link to comment
Share on other sites

  • 2 weeks later...

Revisión 3636

 

Introducción de la sección KernelToPatch, que permite añadir parches personalizados al kernel (Clover ya incluye algunos embebidos, como KernelHaswellE) y filtrarlos según la versión de SO:

<key>KernelAndKextPatches</key>
<dict>
  <key>KernelToPatch</key>
  <array>
    <dict>
      <key>Comment</key>
      <string>startupExt 10.12 DP2</string>
      <key>Disabled</key>
      <false/>
      <key>Find</key>
      <data>
      6CUAAADrBeh+BQAA
      </data>
      <key>MatchOS</key>
      <string>10.12</string>
      <key>Replace</key>
      <data>
      6CUAAACQkOh+BQAA
      </data>
    </dict>
    <dict>
      <key>Comment</key>
      <string>rootlessKext 10.12</string>
      <key>Disabled</key>
      <false/>
      <key>Find</key>
      <data>
      w0iF23RxSIsDSInf/1AoSA==
      </data>
      <key>Replace</key>
      <data>
      w0iF2+sSSIsDSInf/1AoSA==
      </data>
      <key>Count</key>
      <integer>1</integer>
    </dict>
  </array>
</dict>

La explicación de cada clave es similar a las de KextsToPatch.

Link to comment
Share on other sites

 Share

×
×
  • Create New...