Existen proyectos públicos que ejecutan software real de iOS directamente sobre determinados móviles Android. Importan el modelo, el proyecto y la forma de arranque: HakiOS toma como referencia el POCO X5 Pro 5G; ios-sweet, el Redmi Note 10 Pro con Snapdragon. No convierten cualquier Android en un iPhone plenamente compatible.
Con un teléfono de repuesto compatible, la sesión temporal de HakiOS es un punto de partida más prudente: carga el sistema en memoria y normalmente devuelve Android al reiniciar. Pero desbloquear antes el cargador de arranque puede borrar datos. Los servicios de Apple, la carga y las funciones cotidianas siguen teniendo limitaciones importantes.
Comprobado el 5 de noviembre de 2026. Análisis técnico y reconstrucción del procedimiento público con ayuda de IA; no se hizo una instalación en un teléfono físico. Las funciones y resultados son informes de los desarrolladores. Los pasos describen el arranque temporal documentado, no garantizan todos los firmwares ni constituyen una instalación permanente probada por AirMore.
¿Es iOS real o solo una apariencia?
Los proyectos portan el núcleo XNU publicado por Apple y añaden cargador y controladores propios. Encima ejecutan programas del sistema del iPhone. En una sesión nativa no hay un núcleo Linux de Android funcionando por debajo. Un lanzador solo cambia el aspecto; un iPhone remoto transmite otra máquina; QEMU emula hardware en un ordenador.
Los ports aparecieron en la cobertura de Android Authority del 21 de octubre de 2026. La noticia no garantiza cada versión comunitaria posterior. También han quedado desactualizadas afirmaciones antiguas sobre la ausencia de código público de HakiOS: ahora hay repositorios abiertos.
Que XNU sea abierto no convierte todo iOS en software libre. Interfaz, bibliotecas y aplicaciones proceden de una imagen propietaria de restauración. El proyecto no la distribuye, no activa un iPhone ni concede derechos para redistribuir archivos de Apple.
Modelos compatibles y requisitos de Android
| Proyecto y móvil | Hardware exacto | Sistema utilizado | Efecto sobre los datos |
|---|---|---|---|
| HakiOS / POCO X5 Pro 5G | redwood, Snapdragon 778G / SM7325; código de la familia SC7280 | iPhone X iOS 16.5, 20F66; XNU 8796.121.2 | Sesión predeterminada en RAM. El desbloqueo puede borrar datos. Se escribe un pequeño registro en logdump. |
| ios-sweet / Redmi Note 10 Pro | Variante Snapdragon SM7150 / 732G compatible, sweet; comprobar placa | iPhone X iOS 16.7.16, 20H392 | Escribe el sistema raíz en userdata y borra los datos de usuario de Android. |
| Otros Android | Necesitan su propio port funcional | Depende del proyecto | No aplicar imágenes ni particiones de estos modelos. |
No se ha establecido un requisito universal como «Android 13 o posterior». Mandan la placa, el cargador, el árbol de dispositivos y el firmware del fabricante. La documentación no identifica una compilación MIUI/HyperOS que garantice todas las regiones. Guarda la versión actual y no hagas una degradación ni un flasheo regional para seguir un comentario no verificado.
El Redmi Note 10 Pro de China continental no es intercambiable con el Snapdragon global. El POCO X5 sin Pro 5G tampoco es el modelo de referencia. Incluso con nombres o procesadores parecidos, panel, controlador táctil y memoria reservada pueden requerir otro port.
El repositorio oficial de ios-sweet describe una ruta de desarrollo con Linux, compilación del núcleo en GitHub Actions con macOS, árbol de dispositivos original, IPSW del iPhone X y preparación HFS+. Su README documenta pantalla de bloqueo, Ajustes y tacto, además de carencias importantes. Es una ruta distinta y destructiva: no mezcles sus comandos de flasheo con el arranque RAM de HakiOS.

Qué funciona y qué sigue faltando
La tabla de HakiOS para el POCO informa de interfaz, tacto, botones, gráficos Adreno, Wi-Fi, altavoces, micrófono, cámaras y vibración. Son observaciones del desarrollador en su configuración, no funciones garantizadas tras descargar el repositorio. Algunas requieren firmware propio, bibliotecas adicionales o tablas de cámara generadas.
- Interfaz: abrir bloqueo, inicio y aplicaciones incluidas es un objetivo experimental; no equivale a disponer de un ecosistema de aplicaciones completo.
- Gráficos: OpenGL ES necesita Mesa dentro de la imagen, firmware GPU y argumentos adecuados. Metal es parcial. Un panel de 120 Hz no prueba 120 fps, compatibilidad con cualquier juego ni Metal completo.
- Conectividad: arrancar el módem y detectar una red no significa registro móvil, datos o llamadas fiables. Bluetooth no funciona en el estado consultado.
- Apple: el proyecto público excluye activación, Apple ID, iCloud y App Store de sus objetivos. No compres un móvil por iMessage, banca o juegos de App Store basándote en esto.
- Energía: no está implementada la carga mientras funciona HakiOS. Estar conectado por USB no significa cargar; hay que volver a Android.
La receta básica de abajo busca iniciar la interfaz, sin prometer aceleración ni todas las funciones. El extractor puede terminar después de indicar archivos ausentes; las cámaras incluyen patrones de tablas hakios_* que quizá no existan en un Android de fábrica. Son requisitos pendientes, no una invitación a usar archivos de otro móvil.
Equipo, descargas y riesgos
Necesitas un redwood de repuesto con Android operativo, cable USB de datos fiable y ordenador Linux x86-64. Se documentan unos 12 GB de espacio de trabajo; deja margen adicional para el IPSW de unos 6,2 GB, repositorios y copias. La prueba completa opcional de QEMU pide aproximadamente 7 GB de RAM libre del ordenador. No son requisitos de memoria del móvil ni validación de todas sus variantes.
Si el cargador está bloqueado
Copia fuera del teléfono fotos, archivos, códigos de recuperación de autenticadores y datos de aplicaciones. El proceso habitual de Xiaomi vincula cuenta y dispositivo en Opciones de desarrollador → Estado de Mi Unlock, y usa la herramienta oficial del PC con esa misma cuenta y el móvil en fastboot. Activa las opciones tocando repetidamente la versión de OS/MIUI; suelen aparecer en Ajustes adicionales, con nombres variables por ROM.
Utiliza el portal oficial de desbloqueo de Xiaomi. Región, cuenta, aprobación de HyperOS y espera pueden impedir el desbloqueo. Sigue el resultado mostrado para tu cuenta: no prometemos una espera fija ni que fastboot flashing unlock eluda las reglas. Si el proceso oficial rechaza tu dispositivo, aquí no hay una alternativa verificada. Tras el desbloqueo y borrado, configura Android y activa la depuración USB.
Archivos y herramientas
- repositorio oficial de HakiOS: port común, scripts, componentes abiertos precompilados y manifiesto con revisiones fijadas. Usamos
87bf4851, inspeccionada el 5 de noviembre. - SDK Platform-Tools de Google: adb se comunica con Android; fastboot, con el cargador. Añade las herramientas extraídas al PATH y comprueba ambas. Conecta solo un móvil.
- archivo de restauración iPhone X iOS 16.5/20F66 alojado por Apple:
iPhone10,3,iPhone10,6_16.5_20F66_Restore.ipsw, exactamente 6.165.698.198 bytes. No lo sustituyas por el 16.7.16 de ios-sweet. Obtén y usa firmware únicamente con los derechos necesarios.
El desbloqueo reduce la protección del arranque bloqueado y puede afectar garantía, servicio, comprobaciones de integridad y aplicaciones sensibles. El port también debilita o sustituye mecanismos de seguridad de Apple. No introduzcas cuentas personales, fotos privadas, pagos ni trabajo real. Una contraseña Wi-Fi puede quedar dentro de la imagen: no compartas imágenes ni carpetas fw-*.
Arranque temporal de HakiOS, paso a paso
Alcance: comandos de shell Linux para el teléfono de referencia, componentes públicos precompilados y tu imagen de Apple. No es un instalador probado físicamente por AirMore. El objetivo es interactuar con iOS, guardar registros y volver a Android, sin reemplazarlo permanentemente.
1. Preparar el ordenador e identificar el móvil
En Ubuntu/Debian reciente puedes instalar herramientas comunes así. Los paquetes varían; 7-Zip debe ser 23 o posterior para APFS. Platform-Tools de Google debe estar disponible en este terminal.
sudo apt update
sudo apt install git python3 build-essential clang lld make 7zip lz4 util-linux
adb version
fastboot --version Conecta Android, activa depuración USB y acepta el permiso en el móvil. Estas consultas solo leen identificación:
adb devices
adb shell getprop ro.product.device
adb shell getprop ro.product.board
adb shell getprop ro.soc.model
adb shell getprop ro.build.fingerprint Debe corresponder a redwood y SM7325; adb debe mostrar device autorizado. Guarda la huella de compilación en privado. Si no coincide, aparece unauthorized o desconoces la placa, detente. Confirma el desbloqueo real en Mi Unlock: habilitar «Desbloqueo OEM» no lo completa.
2. Obtener la revisión inspeccionada
git clone https://github.com/oosexgang/hakios-xnu-kernel.git hakios
cd hakios
git checkout 87bf4851bcc9cbb24fd79997820aa3661abe4ea5
tools/hakios-device.py sync
make doctor El manifiesto fija revisiones de dispositivo y UEFI; no las actualices por separado a versiones ajenas. Distingue avisos de SDK/QEMU opcionales en make doctor de fallos relevantes de compilador, acceso al teléfono o 7-Zip antiguo. Resuélvelos antes de seguir. Los scripts ejecutan código: utiliza la fuente oficial, no un APK anónimo de «iOS en un clic».
Si funciona 7zz pero no existe 7z, crea un nombre local en esta carpeta para el desempaquetador:
mkdir -p .host-bin
ln -s "$(command -v 7zz)" .host-bin/7z
export PATH="$PWD/.host-bin:$PATH" Solo en ese caso; no sustituyas un 7z existente. Consulta la versión de 7z antes de extraer.
3. Extraer el firmware de este teléfono
devices/redwood/pull-firmware.sh
make redwood_defconfig
make config Mantén Android funcionando durante la extracción. Revisa cada mensaje not on the phone y los archivos reales de fw-gpu, fw-wifi, fw-audio y demás carpetas. done no es una confirmación completa. Permisos denegados, tablas de cámara ausentes o placas diferentes deben resolverse antes de habilitar la función afectada.
Para probar Wi-Fi, hacen falta datos propios como bd_m20gl.elf y regdb_xiaomi.bin en fw-wifi/qca6750/. El archivo fw-wifi/network lleva SSID en la primera línea y contraseña en la segunda; fw-wifi/mac, seis bytes hexadecimales separados por dos puntos. Usa una red de invitados y reconstruye tras cambiarlo. Tener los archivos no garantiza conectividad.
4. Crear las imágenes y el cargador
Guarda el archivo exacto de Apple en Downloads y comprueba el tamaño antes de extraer:
Downloads es la ubicación del ejemplo. Si guardaste el archivo en otra carpeta, cambia la primera asignación IPSW por su ruta real y conserva las comillas.
IPSW="$HOME/Downloads/iPhone10,3,iPhone10,6_16.5_20F66_Restore.ipsw"
stat -c %s "$IPSW"
7z t "$IPSW"
sysimage/unpack.sh "$IPSW"
PREBUILT=1 REST=1 userland/build.sh
make loader
ls -lh userland/root.apfs userland/system.apfs xnuloader/loader.efi prebuilt/hakios-kernel Debe medir 6165698198 bytes. La prueba del archivo comprueba integridad, no derechos ni compatibilidad con otra versión. Se extraen archivos seleccionados y se construyen dos imágenes APFS. PREBUILT=1 evita compilar las herramientas de usuario, pero el cargador necesita clang y lld-link y obtiene la identidad del iPhone de tu IPSW. El cargador de identidad ficticia no sirve para la interfaz completa.
Mantén primero esta base. GL=1 para incluir Mesa y las opciones avanzadas de Metal son configuraciones distintas. gpu=1 no instala una biblioteca gráfica ausente, ni esta receta básica sirve para valorar el rendimiento de las demostraciones aceleradas.
5. Comprobar el cargador e iniciar una sesión vigilada
Carga antes en Android. Empieza por encima del 60 % para dejar margen sobre el mínimo del 50 % de la guía. Mantén el cable y supervisa. El repositorio del dispositivo anuncia componentes Silicium UEFI precompilados; el script los prefiere cuando existen. Si faltan, detente: U-Boot es otra configuración con limitaciones diferentes.
make doctor
make config
./xl state
XL_END=android make phone SECS=600 Antes, xl state debería indicar android. La última orden pasa por fastboot al cargador en RAM, envía system.apfs, ejecuta diez minutos y solicita volver a Android. root.apfs y el núcleo viajan en otra carga. Transferencia y arranque dependen del equipo: no reinicies repetidamente solo porque siga el logotipo de Apple.
Busca una pantalla interactiva, regreso controlado a Android y registros guardados; anota tu resultado y revisión. Un mensaje de consola acredita el núcleo, no el arranque completo de la interfaz.
En este experimento no añadas ufs_write=1 ni var_store=1, ni crees darwin, flashees un slot o cambies el activo. Aun así, se escribe un pequeño registro del cargador en logdump: temporal no significa cero escrituras.

Diagnóstico y vuelta a Android
| Síntoma | Comprobación |
|---|---|
| Ausente / unauthorized | Desbloquea pantalla, acepta depuración y revisa cable y adb devices. Un cable de carga puede no transmitir datos. |
| fastboot boot rechazado | Comprueba desbloqueo real; reinstalar adb no lo desbloquea. |
| IPSW rechazado | Comprueba 20F66, nombre y bytes. No anules la protección con una versión distinta. |
| Identidad ausente / sin interfaz | Revisa extracción, make loader y ambas APFS. El cargador ficticio solo arranca el núcleo abierto. |
| Sin GPU, audio, Wi-Fi o cámara | Revisa firmware propio, tablas generadas, bibliotecas y argumentos. |
| La segunda ejecución falla | Una ejecución por sesión del cargador; recarga o reinicia entre intentos. |
| Bloqueo o calor | Termina y vuelve a Android. No confíes la seguridad a protecciones experimentales de batería o temperatura. |
Desde la misma carpeta puedes consultar estado, detener, recuperar el registro y reiniciar. Ejecuta cada línea cuando corresponda, no todas durante una sesión normal:
./xl state
./xl stop
./xl log
./xl reboot Los registros también quedan en logs/, con nombres según el ejecutor. Si no responde el control por software, la guía indica mantener Power unos 15 segundos; Power + Volumen abajo entra en fastboot. Tras esta ruta únicamente en RAM, si queda en fastboot normal, fastboot reboot solicita Android. Comprueba arranque y carga antes de repetir.
Reiniciar no revierte un desbloqueo ni recupera los datos borrados. Tampoco repara particiones cambiadas por otras guías. No vuelvas a bloquear con imágenes experimentales o particiones inciertas. Un teléfono sin acceso a fastboot o con la cadena de arranque dañada puede necesitar servicio específico.
Por qué no prometemos una instalación permanente sencilla
HakiOS describe un arranque dual con una partición darwin de 20 GiB recortada de userdata, borrado de datos, imagen de arranque en el slot A y Android en B. No equivale a arrancar en RAM; la tabla de U-Boot añade restricciones de sonido y vibración.
Hay una contradicción pendiente: una página describe operaciones realizadas, mientras el documento de seguridad mantiene etapas de almacenamiento y slots como planeadas o no verificadas. La guía resumida presupone imágenes preparadas y no es un instalador universal. No basta para presentar comandos destructivos como una receta fiable para principiantes.
ios-sweet también necesita núcleo compatible, DTB original, HFS+ y recovery adecuado. Aunque el shim arranque temporalmente, escribir la raíz en userdata destruye los datos y reiniciar no los restaura. No inventamos una imagen recovery ni un procedimiento universal de vuelta a fábrica.
Si necesitas instalación permanente sin cable, no hay base suficiente para prometer completarla con seguridad en unos pasos. Espera a disponer de artefactos exactos, variante de placa, copias verificadas y recuperación probada para tu equipo.
¿Para quién tiene sentido?
Para entusiastas: con móvil compatible de repuesto, conocimientos de Linux y registros, dispuestos a aceptar el desbloqueo y estudiar un port de núcleo y controladores. Los componentes abiertos no requieren un servicio de activación iOS de pago, pero equipo, espacio, descarga y recuperación tienen coste.
No para uso diario: no es una vía fiable para obtener App Store, llamadas, banca segura o gestión de batería garantizada en un Android barato. No compres un modelo cualquiera por ver un vídeo de iOS en Android.
El logro es ejecutar software nativo en hardware concreto. Empieza con una sesión acotada y una salida clara, manteniendo Android como sistema útil. Una demostración pública, un procedimiento documentado y tu instalación verificada son niveles distintos de evidencia.