Historia de este mini manual

Lo bello de React Native es que se puede desarrollar mobile solo con React en cualquier IDE, de la forma que queramos y hasta podemos compilar el distribuible de Android en una tostadora pero cuando llega el momento de hacer lo suyo con iOS… ya ahí la cosa cambia.
Hay que hacerlo en una Mac que es igual a una pc de escritorio común y corriente pero cuesta 4 veces más…
Imagen
Mi cara viendo lo que sale un MacBook Pro en Argentina

Así que decante por virtualizarlo en VMWare, porque VMWare? Que clase de monstruo pregunta eso?
De todas formas este manual aplica en gran parte para hacer lo mismo sobre una máquina real, aunque en lo que más voy a hacer hincapié es en los pasos de como hacerlo en una virtual porque tiene sus trucos y no lo vi explicado en ningún lado.


Preparando nuestro instalador

La forma más rápida que encontré para armar el iso de instalación es con gibMacOS [Enlace externo eliminado para invitados] .
El truco acá está en presionar R para ver sólo las imágenes de “recovery mode” y bajar alguna que sea del tipo “Full Install”.
Imagen
Luego de elegir la más nueva de este tipo se nos bajará automáticamente y con MakeInstall armaremos un pendrive de instalación usando la opción O.
Todo este proceso hay que hacerlo como admin para que no falle nada.
Imagen


Nota Importante: A partir de BigSur hay que bajar el instalador con el script de “macrecovery” de OpenCore. 
También hay cambios a la hora de hacer el pendrive. Para ver los pasos puedes ver la documentación de OpenCore aqui: [Enlace externo eliminado para invitados]


Configurando OpenCore
Imagen
Esta es la parte más compleja y depende mucho del hard que tengas, no hay forma segura y rápida para este paso. Para darte una idea podes buscar builds similares al tuyo y ver que parches usaron.

Primero es bajar las dos herramientas que vamos a usar:
ProperTree [Enlace externo eliminado para invitados]
GenSMBIOS [Enlace externo eliminado para invitados]

y las usamos siguiendo el manual oficial:
[Enlace externo eliminado para invitados]

si necesitamos el driver HfsPlus.efi lo podemos encontrar aquí:
[Enlace externo eliminado para invitados] 
ademas en este mismo lugar están los assets para que se vea mas linda la interfase de carga.

No voy a explicar mucho más al respecto porque hay muchos manuales hoy en día que lo hacen. Lo que si voy a hacer es dejarles estos links que les pueden ser muy útiles en el proceso
[Enlace externo eliminado para invitados]
[Enlace externo eliminado para invitados]
[Enlace externo eliminado para invitados]
[Enlace externo eliminado para invitados]
[Enlace externo eliminado para invitados]

Importante
Hay un proyecto llamado “OC Auxiliary Tools” que nos puede ayudar en este paso. También es muy útil a la hora de actualizar la versión que tenemos corriendo de OpenCore.
Puedes bajarlo desde aquí:
[Enlace externo eliminado para invitados]


Preparando VMWare

VMWare por pataleos de Apple ya no soporta MacOs en Windows así que hay que parchearlo para que nos deje usarlo. 
Para esto en git podemos encontrar varios fork de este parche, el que use fue el mas actualizado que es este [Enlace externo eliminado para invitados]
Aunque también podemos usar este [Enlace externo eliminado para invitados] o este [Enlace externo eliminado para invitados]
Imagen

Haciendo nuestra máquina virtual

El proceso de configurar la VM tiene un detalle diferente al habitual en VMWare y es editar el .vmx de nuestra nueva virtual. Esto hay que hacerlo antes de iniciarla.

El .vmx es básicamente un .ini que le dice que hacer al motor de VMWare con nuestra máquina virtual.
Lo más importante es emular un macaddress de mac válido, podemos ver algunos aquí [Enlace externo eliminado para invitados]
Imagen

Código: Seleccionar todo

### tested on catalina ###
# en mi instalación de big sur + opencore no vi diferencia en usar esto o no
smc.version = "0"
bios.bootDelay = "2000"
# recuerden comentar el addressType que ya tienen en el vmx!
#ethernet0.addressType = "generated"
ethernet0.addressType = "static"
ethernet0.Address = "00:26:BB:XX:XX:XX"
ethernet0.checkMACAddress = "FALSE"
##########################


También se pueden configurar todos los seriales para emular los de un equipo real, hay una opción en Clover Configurator (y hoy en dia con OC Auxiliary Tools) que genera este tipo de datos por nosotros y solo tenemos que copiar lo generado. 
De todas formas prefiero hacer esto desde OpenCore.


Código: Seleccionar todo

### fake seials ###
board-id.reflectHost = "FALSE"
board-id = "Mac-7BA5B2D9EXXXXXXX"
hw.model.reflectHost = "FALSE"
hw.model = "iMacPro1,1"
serialNumber.reflectHost = "FALSE"
serialNumber = "C02DX5ZXXXXX"
smbios.reflectHost = "FALSE"
#efi.nvram.var.ROM.reflectHost = "FALSE"
#efi.nvram.var.ROM = "F80C87DXXXXX"
#efi.nvram.var.MLB.reflectHost = "FALSE"
#efi.nvram.var.MLB = "C02DX5ZXXXXX"
##########################

También podemos hacer algunos cambios para mejorar la performance:

Código: Seleccionar todo

# doesn’t use named-file — use for VMs on USB-disks or other slow disks. On Windows: useNamedFile= “FALSE” causes memory to be backed by the host’s swap space.
#mainMem.useNamedFile = "FALSE"
# fit memory into RAM. Whenever possible, avoid settings lower 100%. 
prefvmx.minVmMemPct = "100"
# by disabling MemTrimRate, memory allocation inside the guest is faster because it doesn’t take and give memory to the host os upon all requests.
MemTrimRate = "0"
priority.grabbed = "high"
priority.ungrabbed = "normal"

Atención!
Si usamos el hipervisor de microsoft la performance va a ser muy pobre! Desactiven HyperV si quieren disfrutar de una VM fluida.


Instalando todo en nuestra virtual

1) Instalo el OS

1.1 Arrancamos desde el pendrive de OpenCore
Para esto ingresamos al bios y seleccionamos “EFI USB Device”
Imagen
Para terminar de arrancar el instalador vamos a tener que seleccionar “macOS Base System (external)
Imagen
1.2 Iniciamos el disco
Para esto primero vamos a tener que preparar el disco usando Disk Utility
Imagen
Primero hay que borrarlo todo con “Erase” y para terminar “Convert to APFS
Imagen
Imagen
1.3 Instalamos
Ahora podemos instalar el OS normalmente
Imagen
Para poder completar la instalación vamos a tener que volver a arrancar desde pendrive, pero solamente para que OpenCore haga su magia y así podamos arrancar para terminarla.
Imagen
Vamos a tener que arrancar una ultima vez así al terminar la instalación, pero esta vez para arrancar el OS.
Imagen
2) Hago que nuestra pc pueda arrancar con OpenCore

2.1 Instaló MountEFI

Código: Seleccionar todo

cd Desktop
git clone https://github.com/corpnewt/MountEFI
cd MountEFI
chmod +x MountEFI.command

2.2 Monto la partición de EFI de arranque
Para esto ejecutamos MountEFI.command y presionamos B y nos tendría que decir “Volume EFI on disk0s1 mounted
Imagen
2.3 Reemplazo los contenidos
Copio la carpeta EFI de mi pendrive y la pego en la partición que acabo de montar para así poder arrancar desde esta que tiene las cosas de OpenCore
Imagen
2.4 Configuro el bios
Hay que reiniciar la virtual e ingresar al bios para poder configurar el arranque. Para esto desde el “Boot Maintenance Manager” que es igual al bios… entramos a “Enter Setup
Imagen
Luego usamos “Add boot option” y elegimos el primero que es la partición EFI
Imagen
Ahora seleccionamos el “BOOTx64.efi” que está en la ruta “EFI/BOOT” y para terminar le ponemos un nombre y le damos “Commit changes and exit”.
Solo restaría cambiar el boot order para que esto que configuramos sea lo primero del arranque.
Y después de todos estos pasos tendríamos nuestro Hackintosh funcionando…!


Comentarios Finales

El manual está hecho con Catalina porque lo hice el año pasado, Big Sur corre perfectamente con los mismos pasos.
De momento lo que va a pasar con las Hackintosh es un misterio, aunque todo indica que cuando Apple termine de matar x86 de su sistema ya existiría hard en mercado ARM para seguir jugando de estas formas.
Hay que estar atentos con el Snapdragon SC8280 y cómo lo va a adoptar el mercado y por supuesto… los usuarios!

Código: Seleccionar todo

{******************************************************************************}
{** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING  **}
{******************************************************************************}
{**                                                                          **}
{** The prototypes, declarations and information in this file has been       **}
{** compiled from various sources as well as through reverse engineering     **}
{** techniques. We make no guarantee as to the correctness of the contents.  **}
{** Caution is recommended, USE AT YOUR OWN RISK.                            **}
{**                                                                          **}
{******************************************************************************}
Responder

Volver a “Otros”